function ov(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function Ar(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var dp={exports:{}},Ss={},fp={exports:{}},V={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Fi=Symbol.for("react.element"),sv=Symbol.for("react.portal"),av=Symbol.for("react.fragment"),lv=Symbol.for("react.strict_mode"),cv=Symbol.for("react.profiler"),uv=Symbol.for("react.provider"),dv=Symbol.for("react.context"),fv=Symbol.for("react.forward_ref"),pv=Symbol.for("react.suspense"),hv=Symbol.for("react.memo"),mv=Symbol.for("react.lazy"),Eu=Symbol.iterator;function gv(e){return e===null||typeof e!="object"?null:(e=Eu&&e[Eu]||e["@@iterator"],typeof e=="function"?e:null)}var pp={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},hp=Object.assign,mp={};function Rr(e,t,n){this.props=e,this.context=t,this.refs=mp,this.updater=n||pp}Rr.prototype.isReactComponent={};Rr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Rr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function gp(){}gp.prototype=Rr.prototype;function tc(e,t,n){this.props=e,this.context=t,this.refs=mp,this.updater=n||pp}var nc=tc.prototype=new gp;nc.constructor=tc;hp(nc,Rr.prototype);nc.isPureReactComponent=!0;var ju=Array.isArray,yp=Object.prototype.hasOwnProperty,rc={current:null},vp={key:!0,ref:!0,__self:!0,__source:!0};function xp(e,t,n){var r,i={},o=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)yp.call(t,r)&&!vp.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,$=j[M];if(0>>1;Mi(qn,O))Ge<$&&0>i(Tn,qn)?(j[M]=Tn,j[Ge]=O,M=Ge):(j[M]=qn,j[He]=O,M=He);else if(Ge<$&&0>i(Tn,O))j[M]=Tn,j[Ge]=O,M=Ge;else break e}}return R}function i(j,R){var O=j.sortIndex-R.sortIndex;return O!==0?O:j.id-R.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,a=s.now();e.unstable_now=function(){return s.now()-a}}var l=[],c=[],u=1,f=null,p=3,g=!1,x=!1,v=!1,T=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(j){for(var R=n(c);R!==null;){if(R.callback===null)r(c);else if(R.startTime<=j)r(c),R.sortIndex=R.expirationTime,t(l,R);else break;R=n(c)}}function S(j){if(v=!1,m(j),!x)if(n(l)!==null)x=!0,B(C);else{var R=n(c);R!==null&&de(S,R.startTime-j)}}function C(j,R){x=!1,v&&(v=!1,y(P),P=-1),g=!0;var O=p;try{for(m(R),f=n(l);f!==null&&(!(f.expirationTime>R)||j&&!H());){var M=f.callback;if(typeof M=="function"){f.callback=null,p=f.priorityLevel;var $=M(f.expirationTime<=R);R=e.unstable_now(),typeof $=="function"?f.callback=$:f===n(l)&&r(l),m(R)}else r(l);f=n(l)}if(f!==null)var Q=!0;else{var He=n(c);He!==null&&de(S,He.startTime-R),Q=!1}return Q}finally{f=null,p=O,g=!1}}var b=!1,k=null,P=-1,L=5,I=-1;function H(){return!(e.unstable_now()-Ij||125M?(j.sortIndex=O,t(c,j),n(l)===null&&j===n(c)&&(v?(y(P),P=-1):v=!0,de(S,O-M))):(j.sortIndex=$,t(l,j),x||g||(x=!0,B(C))),j},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(j){var R=p;return function(){var O=p;p=R;try{return j.apply(this,arguments)}finally{p=O}}}})(bp);kp.exports=bp;var Ev=kp.exports;/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var jv=w,Ze=Ev;function E(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_a=Object.prototype.hasOwnProperty,Nv=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Au={},Ru={};function Av(e){return _a.call(Ru,e)?!0:_a.call(Au,e)?!1:Nv.test(e)?Ru[e]=!0:(Au[e]=!0,!1)}function Rv(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Lv(e,t,n,r){if(t===null||typeof t>"u"||Rv(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ze(e,t,n,r,i,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var Ce={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ce[e]=new ze(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ce[t]=new ze(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ce[e]=new ze(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ce[e]=new ze(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ce[e]=new ze(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ce[e]=new ze(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ce[e]=new ze(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ce[e]=new ze(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ce[e]=new ze(e,5,!1,e.toLowerCase(),null,!1,!1)});var oc=/[\-:]([a-z])/g;function sc(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(oc,sc);Ce[t]=new ze(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(oc,sc);Ce[t]=new ze(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(oc,sc);Ce[t]=new ze(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ce[e]=new ze(e,1,!1,e.toLowerCase(),null,!1,!1)});Ce.xlinkHref=new ze("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ce[e]=new ze(e,1,!1,e.toLowerCase(),null,!0,!0)});function ac(e,t,n,r){var i=Ce.hasOwnProperty(t)?Ce[t]:null;(i!==null?i.type!==0:r||!(2a||i[s]!==o[a]){var l=` `+i[s].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=s&&0<=a);break}}}finally{Xs=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Xr(e):""}function Iv(e){switch(e.tag){case 5:return Xr(e.type);case 16:return Xr("Lazy");case 13:return Xr("Suspense");case 19:return Xr("SuspenseList");case 0:case 2:case 15:return e=Zs(e.type,!1),e;case 11:return e=Zs(e.type.render,!1),e;case 1:return e=Zs(e.type,!0),e;default:return""}}function Ua(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Jn:return"Fragment";case Zn:return"Portal";case Va:return"Profiler";case lc:return"StrictMode";case Fa:return"Suspense";case Ba:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case jp:return(e.displayName||"Context")+".Consumer";case Ep:return(e._context.displayName||"Context")+".Provider";case cc:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case uc:return t=e.displayName||null,t!==null?t:Ua(e.type)||"Memo";case Gt:t=e._payload,e=e._init;try{return Ua(e(t))}catch{}}return null}function Mv(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ua(t);case 8:return t===lc?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function fn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ap(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function zv(e){var t=Ap(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(s){r=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function eo(e){e._valueTracker||(e._valueTracker=zv(e))}function Rp(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Ap(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Vo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $a(e,t){var n=t.checked;return le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Iu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=fn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Lp(e,t){t=t.checked,t!=null&&ac(e,"checked",t,!1)}function Wa(e,t){Lp(e,t);var n=fn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ha(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ha(e,t.type,fn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Mu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ha(e,t,n){(t!=="number"||Vo(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Zr=Array.isArray;function hr(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=to.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ni={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Dv=["Webkit","ms","Moz","O"];Object.keys(ni).forEach(function(e){Dv.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ni[t]=ni[e]})});function Dp(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ni.hasOwnProperty(e)&&ni[e]?(""+t).trim():t+"px"}function Op(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=Dp(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Ov=le({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ka(e,t){if(t){if(Ov[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(E(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(E(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(E(61))}if(t.style!=null&&typeof t.style!="object")throw Error(E(62))}}function qa(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ya=null;function dc(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Xa=null,mr=null,gr=null;function Ou(e){if(e=$i(e)){if(typeof Xa!="function")throw Error(E(280));var t=e.stateNode;t&&(t=Es(t),Xa(e.stateNode,e.type,t))}}function _p(e){mr?gr?gr.push(e):gr=[e]:mr=e}function Vp(){if(mr){var e=mr,t=gr;if(gr=mr=null,Ou(e),t)for(e=0;e>>=0,e===0?32:31-(Kv(e)/qv|0)|0}var no=64,ro=4194304;function Jr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $o(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,s=n&268435455;if(s!==0){var a=s&~i;a!==0?r=Jr(a):(o&=s,o!==0&&(r=Jr(o)))}else s=n&~i,s!==0?r=Jr(s):o!==0&&(r=Jr(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Bi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-yt(t),e[t]=n}function Jv(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=ii),Gu=String.fromCharCode(32),Qu=!1;function oh(e,t){switch(e){case"keyup":return E0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function sh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var er=!1;function N0(e,t){switch(e){case"compositionend":return sh(t);case"keypress":return t.which!==32?null:(Qu=!0,Gu);case"textInput":return e=t.data,e===Gu&&Qu?null:e;default:return null}}function A0(e,t){if(er)return e==="compositionend"||!xc&&oh(e,t)?(e=rh(),Eo=gc=Xt=null,er=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Xu(n)}}function uh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?uh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function dh(){for(var e=window,t=Vo();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Vo(e.document)}return t}function wc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function V0(e){var t=dh(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&uh(n.ownerDocument.documentElement,n)){if(r!==null&&wc(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=Zu(n,o);var s=Zu(n,r);i&&s&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,tr=null,rl=null,si=null,il=!1;function Ju(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;il||tr==null||tr!==Vo(r)||(r=tr,"selectionStart"in r&&wc(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),si&&Ci(si,r)||(si=r,r=Go(rl,"onSelect"),0ir||(e.current=ul[ir],ul[ir]=null,ir--)}function K(e,t){ir++,ul[ir]=e.current,e.current=t}var pn={},je=yn(pn),Fe=yn(!1),Dn=pn;function Sr(e,t){var n=e.type.contextTypes;if(!n)return pn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Be(e){return e=e.childContextTypes,e!=null}function Ko(){X(Fe),X(je)}function sd(e,t,n){if(je.current!==pn)throw Error(E(168));K(je,t),K(Fe,n)}function wh(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(E(108,Mv(e)||"Unknown",i));return le({},n,r)}function qo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pn,Dn=je.current,K(je,e),K(Fe,Fe.current),!0}function ad(e,t,n){var r=e.stateNode;if(!r)throw Error(E(169));n?(e=wh(e,t,Dn),r.__reactInternalMemoizedMergedChildContext=e,X(Fe),X(je),K(je,e)):X(Fe),K(Fe,n)}var At=null,js=!1,fa=!1;function Th(e){At===null?At=[e]:At.push(e)}function X0(e){js=!0,Th(e)}function vn(){if(!fa&&At!==null){fa=!0;var e=0,t=G;try{var n=At;for(G=1;e>=s,i-=s,Rt=1<<32-yt(t)+i|n<P?(L=k,k=null):L=k.sibling;var I=p(y,k,m[P],S);if(I===null){k===null&&(k=L);break}e&&k&&I.alternate===null&&t(y,k),h=o(I,h,P),b===null?C=I:b.sibling=I,b=I,k=L}if(P===m.length)return n(y,k),ne&&kn(y,P),C;if(k===null){for(;PP?(L=k,k=null):L=k.sibling;var H=p(y,k,I.value,S);if(H===null){k===null&&(k=L);break}e&&k&&H.alternate===null&&t(y,k),h=o(H,h,P),b===null?C=H:b.sibling=H,b=H,k=L}if(I.done)return n(y,k),ne&&kn(y,P),C;if(k===null){for(;!I.done;P++,I=m.next())I=f(y,I.value,S),I!==null&&(h=o(I,h,P),b===null?C=I:b.sibling=I,b=I);return ne&&kn(y,P),C}for(k=r(y,k);!I.done;P++,I=m.next())I=g(k,y,P,I.value,S),I!==null&&(e&&I.alternate!==null&&k.delete(I.key===null?P:I.key),h=o(I,h,P),b===null?C=I:b.sibling=I,b=I);return e&&k.forEach(function(z){return t(y,z)}),ne&&kn(y,P),C}function T(y,h,m,S){if(typeof m=="object"&&m!==null&&m.type===Jn&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Ji:e:{for(var C=m.key,b=h;b!==null;){if(b.key===C){if(C=m.type,C===Jn){if(b.tag===7){n(y,b.sibling),h=i(b,m.props.children),h.return=y,y=h;break e}}else if(b.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Gt&&ud(C)===b.type){n(y,b.sibling),h=i(b,m.props),h.ref=Ur(y,b,m),h.return=y,y=h;break e}n(y,b);break}else t(y,b);b=b.sibling}m.type===Jn?(h=Mn(m.props.children,y.mode,S,m.key),h.return=y,y=h):(S=zo(m.type,m.key,m.props,null,y.mode,S),S.ref=Ur(y,h,m),S.return=y,y=S)}return s(y);case Zn:e:{for(b=m.key;h!==null;){if(h.key===b)if(h.tag===4&&h.stateNode.containerInfo===m.containerInfo&&h.stateNode.implementation===m.implementation){n(y,h.sibling),h=i(h,m.children||[]),h.return=y,y=h;break e}else{n(y,h);break}else t(y,h);h=h.sibling}h=wa(m,y.mode,S),h.return=y,y=h}return s(y);case Gt:return b=m._init,T(y,h,b(m._payload),S)}if(Zr(m))return x(y,h,m,S);if(Or(m))return v(y,h,m,S);uo(y,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,h!==null&&h.tag===6?(n(y,h.sibling),h=i(h,m),h.return=y,y=h):(n(y,h),h=xa(m,y.mode,S),h.return=y,y=h),s(y)):n(y,h)}return T}var kr=bh(!0),Ph=bh(!1),Zo=yn(null),Jo=null,ar=null,kc=null;function bc(){kc=ar=Jo=null}function Pc(e){var t=Zo.current;X(Zo),e._currentValue=t}function pl(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function vr(e,t){Jo=e,kc=ar=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ve=!0),e.firstContext=null)}function ct(e){var t=e._currentValue;if(kc!==e)if(e={context:e,memoizedValue:t,next:null},ar===null){if(Jo===null)throw Error(E(308));ar=e,Jo.dependencies={lanes:0,firstContext:e}}else ar=ar.next=e;return t}var Nn=null;function Ec(e){Nn===null?Nn=[e]:Nn.push(e)}function Eh(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ec(t)):(n.next=i.next,i.next=n),t.interleaved=n,Vt(e,r)}function Vt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Qt=!1;function jc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jh(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Mt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function on(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,W&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Vt(e,n)}return i=r.interleaved,i===null?(t.next=t,Ec(r)):(t.next=i.next,i.next=t),r.interleaved=t,Vt(e,n)}function No(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,pc(e,n)}}function dd(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var s={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=s:o=o.next=s,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function es(e,t,n,r){var i=e.updateQueue;Qt=!1;var o=i.firstBaseUpdate,s=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var l=a,c=l.next;l.next=null,s===null?o=c:s.next=c,s=l;var u=e.alternate;u!==null&&(u=u.updateQueue,a=u.lastBaseUpdate,a!==s&&(a===null?u.firstBaseUpdate=c:a.next=c,u.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;s=0,u=c=l=null,a=o;do{var p=a.lane,g=a.eventTime;if((r&p)===p){u!==null&&(u=u.next={eventTime:g,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var x=e,v=a;switch(p=t,g=n,v.tag){case 1:if(x=v.payload,typeof x=="function"){f=x.call(g,f,p);break e}f=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=v.payload,p=typeof x=="function"?x.call(g,f,p):x,p==null)break e;f=le({},f,p);break e;case 2:Qt=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[a]:p.push(a))}else g={eventTime:g,lane:p,tag:a.tag,payload:a.payload,callback:a.callback,next:null},u===null?(c=u=g,l=f):u=u.next=g,s|=p;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;p=a,a=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);if(u===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=u,t=i.shared.interleaved,t!==null){i=t;do s|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Vn|=s,e.lanes=s,e.memoizedState=f}}function fd(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ha.transition;ha.transition={};try{e(!1),t()}finally{G=n,ha.transition=r}}function Hh(){return ut().memoizedState}function tx(e,t,n){var r=an(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Gh(e))Qh(t,n);else if(n=Eh(e,t,n,r),n!==null){var i=Ie();vt(n,e,r,i),Kh(n,t,r)}}function nx(e,t,n){var r=an(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Gh(e))Qh(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,a=o(s,n);if(i.hasEagerState=!0,i.eagerState=a,xt(a,s)){var l=t.interleaved;l===null?(i.next=i,Ec(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=Eh(e,t,i,r),n!==null&&(i=Ie(),vt(n,e,r,i),Kh(n,t,r))}}function Gh(e){var t=e.alternate;return e===ae||t!==null&&t===ae}function Qh(e,t){ai=ns=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Kh(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,pc(e,n)}}var rs={readContext:ct,useCallback:ke,useContext:ke,useEffect:ke,useImperativeHandle:ke,useInsertionEffect:ke,useLayoutEffect:ke,useMemo:ke,useReducer:ke,useRef:ke,useState:ke,useDebugValue:ke,useDeferredValue:ke,useTransition:ke,useMutableSource:ke,useSyncExternalStore:ke,useId:ke,unstable_isNewReconciler:!1},rx={readContext:ct,useCallback:function(e,t){return Tt().memoizedState=[e,t===void 0?null:t],e},useContext:ct,useEffect:hd,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ro(4194308,4,Fh.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ro(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ro(4,2,e,t)},useMemo:function(e,t){var n=Tt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Tt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tx.bind(null,ae,e),[r.memoizedState,e]},useRef:function(e){var t=Tt();return e={current:e},t.memoizedState=e},useState:pd,useDebugValue:Dc,useDeferredValue:function(e){return Tt().memoizedState=e},useTransition:function(){var e=pd(!1),t=e[0];return e=ex.bind(null,e[1]),Tt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ae,i=Tt();if(ne){if(n===void 0)throw Error(E(407));n=n()}else{if(n=t(),we===null)throw Error(E(349));_n&30||Lh(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,hd(Mh.bind(null,r,o,e),[e]),r.flags|=2048,Ri(9,Ih.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Tt(),t=we.identifierPrefix;if(ne){var n=Lt,r=Rt;n=(r&~(1<<32-yt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Ni++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[St]=t,e[Pi]=r,im(e,t,!1,!1),t.stateNode=e;e:{switch(s=qa(n,r),n){case"dialog":Y("cancel",e),Y("close",e),i=r;break;case"iframe":case"object":case"embed":Y("load",e),i=r;break;case"video":case"audio":for(i=0;iEr&&(t.flags|=128,r=!0,$r(o,!1),t.lanes=4194304)}else{if(!r)if(e=ts(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),$r(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!ne)return be(t),null}else 2*fe()-o.renderingStartTime>Er&&n!==1073741824&&(t.flags|=128,r=!0,$r(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(n=o.last,n!==null?n.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=fe(),t.sibling=null,n=ie.current,K(ie,r?n&1|2:n&1),t):(be(t),null);case 22:case 23:return Uc(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ke&1073741824&&(be(t),t.subtreeFlags&6&&(t.flags|=8192)):be(t),null;case 24:return null;case 25:return null}throw Error(E(156,t.tag))}function dx(e,t){switch(Sc(t),t.tag){case 1:return Be(t.type)&&Ko(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return br(),X(Fe),X(je),Rc(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Ac(t),null;case 13:if(X(ie),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(E(340));Cr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return X(ie),null;case 4:return br(),null;case 10:return Pc(t.type._context),null;case 22:case 23:return Uc(),null;case 24:return null;default:return null}}var po=!1,Ee=!1,fx=typeof WeakSet=="function"?WeakSet:Set,N=null;function lr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ce(e,t,r)}else n.current=null}function Sl(e,t,n){try{n()}catch(r){ce(e,t,r)}}var bd=!1;function px(e,t){if(ol=Wo,e=dh(),wc(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var s=0,a=-1,l=-1,c=0,u=0,f=e,p=null;t:for(;;){for(var g;f!==n||i!==0&&f.nodeType!==3||(a=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(g=f.firstChild)!==null;)p=f,f=g;for(;;){if(f===e)break t;if(p===n&&++c===i&&(a=s),p===o&&++u===r&&(l=s),(g=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=g}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(sl={focusedElem:e,selectionRange:n},Wo=!1,N=t;N!==null;)if(t=N,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,N=e;else for(;N!==null;){t=N;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var v=x.memoizedProps,T=x.memoizedState,y=t.stateNode,h=y.getSnapshotBeforeUpdate(t.elementType===t.type?v:pt(t.type,v),T);y.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(E(163))}}catch(S){ce(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,N=e;break}N=t.return}return x=bd,bd=!1,x}function li(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&Sl(t,n,o)}i=i.next}while(i!==r)}}function Rs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Cl(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function am(e){var t=e.alternate;t!==null&&(e.alternate=null,am(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[St],delete t[Pi],delete t[cl],delete t[q0],delete t[Y0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lm(e){return e.tag===5||e.tag===3||e.tag===4}function Pd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||lm(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function kl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Qo));else if(r!==4&&(e=e.child,e!==null))for(kl(e,t,n),e=e.sibling;e!==null;)kl(e,t,n),e=e.sibling}function bl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(bl(e,t,n),e=e.sibling;e!==null;)bl(e,t,n),e=e.sibling}var Te=null,ht=!1;function $t(e,t,n){for(n=n.child;n!==null;)cm(e,t,n),n=n.sibling}function cm(e,t,n){if(Ct&&typeof Ct.onCommitFiberUnmount=="function")try{Ct.onCommitFiberUnmount(Cs,n)}catch{}switch(n.tag){case 5:Ee||lr(n,t);case 6:var r=Te,i=ht;Te=null,$t(e,t,n),Te=r,ht=i,Te!==null&&(ht?(e=Te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Te.removeChild(n.stateNode));break;case 18:Te!==null&&(ht?(e=Te,n=n.stateNode,e.nodeType===8?da(e.parentNode,n):e.nodeType===1&&da(e,n),Ti(e)):da(Te,n.stateNode));break;case 4:r=Te,i=ht,Te=n.stateNode.containerInfo,ht=!0,$t(e,t,n),Te=r,ht=i;break;case 0:case 11:case 14:case 15:if(!Ee&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&Sl(n,t,s),i=i.next}while(i!==r)}$t(e,t,n);break;case 1:if(!Ee&&(lr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){ce(n,t,a)}$t(e,t,n);break;case 21:$t(e,t,n);break;case 22:n.mode&1?(Ee=(r=Ee)||n.memoizedState!==null,$t(e,t,n),Ee=r):$t(e,t,n);break;default:$t(e,t,n)}}function Ed(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new fx),t.forEach(function(r){var i=Sx.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function dt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=s),r&=~o}if(r=i,r=fe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*mx(r/1960))-r,10e?16:e,Zt===null)var r=!1;else{if(e=Zt,Zt=null,ss=0,W&6)throw Error(E(331));var i=W;for(W|=4,N=e.current;N!==null;){var o=N,s=o.child;if(N.flags&16){var a=o.deletions;if(a!==null){for(var l=0;lfe()-Fc?In(e,0):Vc|=n),Ue(e,t)}function ym(e,t){t===0&&(e.mode&1?(t=ro,ro<<=1,!(ro&130023424)&&(ro=4194304)):t=1);var n=Ie();e=Vt(e,t),e!==null&&(Bi(e,t,n),Ue(e,n))}function Tx(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ym(e,n)}function Sx(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(E(314))}r!==null&&r.delete(t),ym(e,n)}var vm;vm=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Fe.current)Ve=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ve=!1,cx(e,t,n);Ve=!!(e.flags&131072)}else Ve=!1,ne&&t.flags&1048576&&Sh(t,Xo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Lo(e,t),e=t.pendingProps;var i=Sr(t,je.current);vr(t,n),i=Ic(null,t,r,e,i,n);var o=Mc();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Be(r)?(o=!0,qo(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,jc(t),i.updater=As,t.stateNode=i,i._reactInternals=t,ml(t,r,e,n),t=vl(null,t,r,!0,o,n)):(t.tag=0,ne&&o&&Tc(t),Re(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Lo(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=kx(r),e=pt(r,e),i){case 0:t=yl(null,t,r,e,n);break e;case 1:t=Sd(null,t,r,e,n);break e;case 11:t=wd(null,t,r,e,n);break e;case 14:t=Td(null,t,r,pt(r.type,e),n);break e}throw Error(E(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pt(r,i),yl(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pt(r,i),Sd(e,t,r,i,n);case 3:e:{if(tm(t),e===null)throw Error(E(387));r=t.pendingProps,o=t.memoizedState,i=o.element,jh(e,t),es(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Pr(Error(E(423)),t),t=Cd(e,t,r,n,i);break e}else if(r!==i){i=Pr(Error(E(424)),t),t=Cd(e,t,r,n,i);break e}else for(Ye=rn(t.stateNode.containerInfo.firstChild),Xe=t,ne=!0,mt=null,n=Ph(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Cr(),r===i){t=Ft(e,t,n);break e}Re(e,t,r,n)}t=t.child}return t;case 5:return Nh(t),e===null&&fl(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,s=i.children,al(r,i)?s=null:o!==null&&al(r,o)&&(t.flags|=32),em(e,t),Re(e,t,s,n),t.child;case 6:return e===null&&fl(t),null;case 13:return nm(e,t,n);case 4:return Nc(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=kr(t,null,r,n):Re(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pt(r,i),wd(e,t,r,i,n);case 7:return Re(e,t,t.pendingProps,n),t.child;case 8:return Re(e,t,t.pendingProps.children,n),t.child;case 12:return Re(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,K(Zo,r._currentValue),r._currentValue=s,o!==null)if(xt(o.value,s)){if(o.children===i.children&&!Fe.current){t=Ft(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){s=o.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Mt(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var u=c.pending;u===null?l.next=l:(l.next=u.next,u.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),pl(o.return,n,t),a.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(E(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),pl(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}Re(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,vr(t,n),i=ct(i),r=r(i),t.flags|=1,Re(e,t,r,n),t.child;case 14:return r=t.type,i=pt(r,t.pendingProps),i=pt(r.type,i),Td(e,t,r,i,n);case 15:return Zh(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pt(r,i),Lo(e,t),t.tag=1,Be(r)?(e=!0,qo(t)):e=!1,vr(t,n),qh(t,r,i),ml(t,r,i,n),vl(null,t,r,!0,e,n);case 19:return rm(e,t,n);case 22:return Jh(e,t,n)}throw Error(E(156,t.tag))};function xm(e,t){return Gp(e,t)}function Cx(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function at(e,t,n,r){return new Cx(e,t,n,r)}function Wc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function kx(e){if(typeof e=="function")return Wc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===cc)return 11;if(e===uc)return 14}return 2}function ln(e,t){var n=e.alternate;return n===null?(n=at(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zo(e,t,n,r,i,o){var s=2;if(r=e,typeof e=="function")Wc(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case Jn:return Mn(n.children,i,o,t);case lc:s=8,i|=8;break;case Va:return e=at(12,n,t,i|2),e.elementType=Va,e.lanes=o,e;case Fa:return e=at(13,n,t,i),e.elementType=Fa,e.lanes=o,e;case Ba:return e=at(19,n,t,i),e.elementType=Ba,e.lanes=o,e;case Np:return Is(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ep:s=10;break e;case jp:s=9;break e;case cc:s=11;break e;case uc:s=14;break e;case Gt:s=16,r=null;break e}throw Error(E(130,e==null?e:typeof e,""))}return t=at(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Mn(e,t,n,r){return e=at(7,e,r,t),e.lanes=n,e}function Is(e,t,n,r){return e=at(22,e,r,t),e.elementType=Np,e.lanes=n,e.stateNode={isHidden:!1},e}function xa(e,t,n){return e=at(6,e,null,t),e.lanes=n,e}function wa(e,t,n){return t=at(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function bx(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ea(0),this.expirationTimes=ea(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ea(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Hc(e,t,n,r,i,o,s,a,l){return e=new bx(e,t,n,a,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=at(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},jc(o),e}function Px(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Cm)}catch(e){console.error(e)}}Cm(),Cp.exports=tt;var _s=Cp.exports;const Rx=Ar(_s);var zd=_s;Oa.createRoot=zd.createRoot,Oa.hydrateRoot=zd.hydrateRoot;/** * @remix-run/router v1.23.0 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Ii(){return Ii=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function km(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Ix(){return Math.random().toString(36).substr(2,8)}function Od(e,t){return{usr:e.state,key:e.key,idx:t}}function Al(e,t,n,r){return n===void 0&&(n=null),Ii({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Mr(t):t,{state:n,key:t&&t.key||r||Ix()})}function cs(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Mr(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Mx(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,s=i.history,a=Jt.Pop,l=null,c=u();c==null&&(c=0,s.replaceState(Ii({},s.state,{idx:c}),""));function u(){return(s.state||{idx:null}).idx}function f(){a=Jt.Pop;let T=u(),y=T==null?null:T-c;c=T,l&&l({action:a,location:v.location,delta:y})}function p(T,y){a=Jt.Push;let h=Al(v.location,T,y);n&&n(h,T),c=u()+1;let m=Od(h,c),S=v.createHref(h);try{s.pushState(m,"",S)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;i.location.assign(S)}o&&l&&l({action:a,location:v.location,delta:1})}function g(T,y){a=Jt.Replace;let h=Al(v.location,T,y);n&&n(h,T),c=u();let m=Od(h,c),S=v.createHref(h);s.replaceState(m,"",S),o&&l&&l({action:a,location:v.location,delta:0})}function x(T){let y=i.location.origin!=="null"?i.location.origin:i.location.href,h=typeof T=="string"?T:cs(T);return h=h.replace(/ $/,"%20"),pe(y,"No window.location.(origin|href) available to create URL for href: "+h),new URL(h,y)}let v={get action(){return a},get location(){return e(i,s)},listen(T){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Dd,f),l=T,()=>{i.removeEventListener(Dd,f),l=null}},createHref(T){return t(i,T)},createURL:x,encodeLocation(T){let y=x(T);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:p,replace:g,go(T){return s.go(T)}};return v}var _d;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(_d||(_d={}));function zx(e,t,n){return n===void 0&&(n="/"),Dx(e,t,n,!1)}function Dx(e,t,n,r){let i=typeof t=="string"?Mr(t):t,o=qc(i.pathname||"/",n);if(o==null)return null;let s=bm(e);Ox(s);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};l.relativePath.startsWith("/")&&(pe(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=cn([r,l.relativePath]),u=n.concat(l);o.children&&o.children.length>0&&(pe(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),bm(o.children,t,u,c)),!(o.path==null&&!o.index)&&t.push({path:c,score:Wx(c,o.index),routesMeta:u})};return e.forEach((o,s)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))i(o,s);else for(let l of Pm(o.path))i(o,s,l)}),t}function Pm(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return i?[o,""]:[o];let s=Pm(r.join("/")),a=[];return a.push(...s.map(l=>l===""?o:[o,l].join("/"))),i&&a.push(...s),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function Ox(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Hx(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const _x=/^:[\w-]+$/,Vx=3,Fx=2,Bx=1,Ux=10,$x=-2,Vd=e=>e==="*";function Wx(e,t){let n=e.split("/"),r=n.length;return n.some(Vd)&&(r+=$x),t&&(r+=Fx),n.filter(i=>!Vd(i)).reduce((i,o)=>i+(_x.test(o)?Vx:o===""?Bx:Ux),r)}function Hx(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function Gx(e,t,n){n===void 0&&(n=!1);let{routesMeta:r}=e,i={},o="/",s=[];for(let a=0;a{let{paramName:p,isOptional:g}=u;if(p==="*"){let v=a[f]||"";s=o.slice(0,o.length-v.length).replace(/(.)\/+$/,"$1")}const x=a[f];return g&&!x?c[p]=void 0:c[p]=(x||"").replace(/%2F/g,"/"),c},{}),pathname:o,pathnameBase:s,pattern:e}}function Qx(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),km(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function Kx(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return km(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function qc(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function qx(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Mr(e):e;return{pathname:n?n.startsWith("/")?n:Yx(n,t):t,search:Jx(r),hash:ew(i)}}function Yx(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Ta(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Xx(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Yc(e,t){let n=Xx(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Xc(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Mr(e):(i=Ii({},e),pe(!i.pathname||!i.pathname.includes("?"),Ta("?","pathname","search",i)),pe(!i.pathname||!i.pathname.includes("#"),Ta("#","pathname","hash",i)),pe(!i.search||!i.search.includes("#"),Ta("#","search","hash",i)));let o=e===""||i.pathname==="",s=o?"/":i.pathname,a;if(s==null)a=n;else{let f=t.length-1;if(!r&&s.startsWith("..")){let p=s.split("/");for(;p[0]==="..";)p.shift(),f-=1;i.pathname=p.join("/")}a=f>=0?t[f]:"/"}let l=qx(i,a),c=s&&s!=="/"&&s.endsWith("/"),u=(o||s===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}const cn=e=>e.join("/").replace(/\/\/+/g,"/"),Zx=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Jx=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,ew=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function tw(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Em=["post","put","patch","delete"];new Set(Em);const nw=["get",...Em];new Set(nw);/** * React Router v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Mi(){return Mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),w.useCallback(function(c,u){if(u===void 0&&(u={}),!a.current)return;if(typeof c=="number"){r.go(c);return}let f=Xc(c,JSON.parse(s),o,u.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:cn([t,f.pathname])),(u.replace?r.replace:r.push)(f,u.state,u)},[t,r,s,o,e])}const sw=w.createContext(null);function aw(e){let t=w.useContext(Pt).outlet;return t&&w.createElement(sw.Provider,{value:e},t)}function Jc(){let{matches:e}=w.useContext(Pt),t=e[e.length-1];return t?t.params:{}}function Rm(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=w.useContext(xn),{matches:i}=w.useContext(Pt),{pathname:o}=Dr(),s=JSON.stringify(Yc(i,r.v7_relativeSplatPath));return w.useMemo(()=>Xc(e,JSON.parse(s),o,n==="path"),[e,s,o,n])}function lw(e,t){return cw(e,t)}function cw(e,t,n,r){zr()||pe(!1);let{navigator:i}=w.useContext(xn),{matches:o}=w.useContext(Pt),s=o[o.length-1],a=s?s.params:{};s&&s.pathname;let l=s?s.pathnameBase:"/";s&&s.route;let c=Dr(),u;if(t){var f;let T=typeof t=="string"?Mr(t):t;l==="/"||(f=T.pathname)!=null&&f.startsWith(l)||pe(!1),u=T}else u=c;let p=u.pathname||"/",g=p;if(l!=="/"){let T=l.replace(/^\//,"").split("/");g="/"+p.replace(/^\//,"").split("/").slice(T.length).join("/")}let x=zx(e,{pathname:g}),v=hw(x&&x.map(T=>Object.assign({},T,{params:Object.assign({},a,T.params),pathname:cn([l,i.encodeLocation?i.encodeLocation(T.pathname).pathname:T.pathname]),pathnameBase:T.pathnameBase==="/"?l:cn([l,i.encodeLocation?i.encodeLocation(T.pathnameBase).pathname:T.pathnameBase])})),o,n,r);return t&&v?w.createElement(Vs.Provider,{value:{location:Mi({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Jt.Pop}},v):v}function uw(){let e=vw(),t=tw(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"},o=null;return w.createElement(w.Fragment,null,w.createElement("h2",null,"Unexpected Application Error!"),w.createElement("h3",{style:{fontStyle:"italic"}},t),n?w.createElement("pre",{style:i},n):null,o)}const dw=w.createElement(uw,null);class fw extends w.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?w.createElement(Pt.Provider,{value:this.props.routeContext},w.createElement(jm.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function pw(e){let{routeContext:t,match:n,children:r}=e,i=w.useContext(Zc);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),w.createElement(Pt.Provider,{value:t},r)}function hw(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let s=e,a=(i=n)==null?void 0:i.errors;if(a!=null){let u=s.findIndex(f=>f.route.id&&(a==null?void 0:a[f.route.id])!==void 0);u>=0||pe(!1),s=s.slice(0,Math.min(s.length,u+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u=0?s=s.slice(0,c+1):s=[s[0]];break}}}return s.reduceRight((u,f,p)=>{let g,x=!1,v=null,T=null;n&&(g=a&&f.route.id?a[f.route.id]:void 0,v=f.route.errorElement||dw,l&&(c<0&&p===0?(ww("route-fallback",!1),x=!0,T=null):c===p&&(x=!0,T=f.route.hydrateFallbackElement||null)));let y=t.concat(s.slice(0,p+1)),h=()=>{let m;return g?m=v:x?m=T:f.route.Component?m=w.createElement(f.route.Component,null):f.route.element?m=f.route.element:m=u,w.createElement(pw,{match:f,routeContext:{outlet:u,matches:y,isDataRoute:n!=null},children:m})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?w.createElement(fw,{location:n.location,revalidation:n.revalidation,component:v,error:g,children:h(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):h()},null)}var Lm=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Lm||{}),us=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(us||{});function mw(e){let t=w.useContext(Zc);return t||pe(!1),t}function gw(e){let t=w.useContext(rw);return t||pe(!1),t}function yw(e){let t=w.useContext(Pt);return t||pe(!1),t}function Im(e){let t=yw(),n=t.matches[t.matches.length-1];return n.route.id||pe(!1),n.route.id}function vw(){var e;let t=w.useContext(jm),n=gw(us.UseRouteError),r=Im(us.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function xw(){let{router:e}=mw(Lm.UseNavigateStable),t=Im(us.UseNavigateStable),n=w.useRef(!1);return Nm(()=>{n.current=!0}),w.useCallback(function(i,o){o===void 0&&(o={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,Mi({fromRouteId:t},o)))},[e,t])}const Bd={};function ww(e,t,n){!t&&!Bd[e]&&(Bd[e]=!0)}function Tw(e,t){e==null||e.v7_startTransition,(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||t.v7_relativeSplatPath),t&&(t.v7_fetcherPersist,t.v7_normalizeFormMethod,t.v7_partialHydration,t.v7_skipActionErrorRevalidation)}function eu(e){let{to:t,replace:n,state:r,relative:i}=e;zr()||pe(!1);let{future:o,static:s}=w.useContext(xn),{matches:a}=w.useContext(Pt),{pathname:l}=Dr(),c=Am(),u=Xc(t,Yc(a,o.v7_relativeSplatPath),l,i==="path"),f=JSON.stringify(u);return w.useEffect(()=>c(JSON.parse(f),{replace:n,state:r,relative:i}),[c,f,i,n,r]),null}function Sw(e){return aw(e.context)}function Qe(e){pe(!1)}function Cw(e){let{basename:t="/",children:n=null,location:r,navigationType:i=Jt.Pop,navigator:o,static:s=!1,future:a}=e;zr()&&pe(!1);let l=t.replace(/^\/*/,"/"),c=w.useMemo(()=>({basename:l,navigator:o,static:s,future:Mi({v7_relativeSplatPath:!1},a)}),[l,a,o,s]);typeof r=="string"&&(r=Mr(r));let{pathname:u="/",search:f="",hash:p="",state:g=null,key:x="default"}=r,v=w.useMemo(()=>{let T=qc(u,l);return T==null?null:{location:{pathname:T,search:f,hash:p,state:g,key:x},navigationType:i}},[l,u,f,p,g,x,i]);return v==null?null:w.createElement(xn.Provider,{value:c},w.createElement(Vs.Provider,{children:n,value:v}))}function kw(e){let{children:t,location:n}=e;return lw(Rl(t),n)}new Promise(()=>{});function Rl(e,t){t===void 0&&(t=[]);let n=[];return w.Children.forEach(e,(r,i)=>{if(!w.isValidElement(r))return;let o=[...t,i];if(r.type===w.Fragment){n.push.apply(n,Rl(r.props.children,o));return}r.type!==Qe&&pe(!1),!r.props.index||!r.props.children||pe(!1);let s={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(s.children=Rl(r.props.children,o)),n.push(s)}),n}/** * React Router DOM v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Ll(){return Ll=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function Pw(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Ew(e,t){return e.button===0&&(!t||t==="_self")&&!Pw(e)}const jw=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Nw="6";try{window.__reactRouterVersion=Nw}catch{}const Aw="startTransition",Ud=Tp[Aw];function Rw(e){let{basename:t,children:n,future:r,window:i}=e,o=w.useRef();o.current==null&&(o.current=Lx({window:i,v5Compat:!0}));let s=o.current,[a,l]=w.useState({action:s.action,location:s.location}),{v7_startTransition:c}=r||{},u=w.useCallback(f=>{c&&Ud?Ud(()=>l(f)):l(f)},[l,c]);return w.useLayoutEffect(()=>s.listen(u),[s,u]),w.useEffect(()=>Tw(r),[r]),w.createElement(Cw,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:s,future:r})}const Lw=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Iw=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ge=w.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:o,replace:s,state:a,target:l,to:c,preventScrollReset:u,viewTransition:f}=t,p=bw(t,jw),{basename:g}=w.useContext(xn),x,v=!1;if(typeof c=="string"&&Iw.test(c)&&(x=c,Lw))try{let m=new URL(window.location.href),S=c.startsWith("//")?new URL(m.protocol+c):new URL(c),C=qc(S.pathname,g);S.origin===m.origin&&C!=null?c=C+S.search+S.hash:v=!0}catch{}let T=iw(c,{relative:i}),y=Mw(c,{replace:s,state:a,target:l,preventScrollReset:u,relative:i,viewTransition:f});function h(m){r&&r(m),m.defaultPrevented||y(m)}return w.createElement("a",Ll({},p,{href:x||T,onClick:v||o?r:h,ref:n,target:l}))});var $d;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})($d||($d={}));var Wd;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Wd||(Wd={}));function Mw(e,t){let{target:n,replace:r,state:i,preventScrollReset:o,relative:s,viewTransition:a}=t===void 0?{}:t,l=Am(),c=Dr(),u=Rm(e,{relative:s});return w.useCallback(f=>{if(Ew(f,n)){f.preventDefault();let p=r!==void 0?r:cs(c)===cs(u);l(e,{replace:p,state:i,preventScrollReset:o,relative:s,viewTransition:a})}},[c,l,u,r,i,n,e,o,s,a])}const Mm=w.createContext(),We=()=>{const e=w.useContext(Mm);if(!e)throw new Error("useLanguage must be used within a LanguageProvider");return e},go={en:{home:"Home",games:"Games",analysis:"Analysis",blog:"Blog",about:"About",privacy:"Privacy Policy",terms:"Terms of Service",cookies:"Cookies Policy",heroTitle:"Where Mechanics Meet Magic",heroSubtitle:"Gameplay is design. Input is language.",exploreGames:"Explore Games",readAnalysis:"Read Analysis",whyInputMatters:"Why Input Matters",whyInputDescription:"Every tap, swipe, and click shapes the player experience. Great games are felt before they are understood.",chickenRoadHighlight:"Chicken Road: A Masterclass in Timing",chickenRoadDescription:"Discover how simple mechanics create profound engagement through perfect timing windows.",featuredGames:"Featured Games",featuredGamesSubtitle:"Experience the craft of input design through our carefully curated collection.",viewAllGames:"View All Games",inputFeatures:{instantResponse:{title:"Instant Response",description:"Every input creates immediate, satisfying feedback that connects player to game."},preciseControl:{title:"Precise Control",description:"Carefully tuned mechanics that reward skill and create flow states."},perfectTiming:{title:"Perfect Timing",description:"Windows of opportunity that create tension and release in perfect harmony."}},gamesTitle:"Interactive Experiences",gamesSubtitle:"Explore our collection of carefully crafted HTML5 games that showcase the art of input design.",playNow:"Play Now",learnMore:"Learn More",timing:"Timing",oneTap:"One-Tap",strategy:"Strategy",reflex:"Reflex",precision:"Precision",chickenReflexDesc:"Test your reflexes as you guide a chicken across increasingly busy roads. Master the art of perfect timing.",tapDriftDesc:"Control a drifting car with just one button. Feel the rhythm of momentum and timing in this minimalist racer.",signalLinkDesc:"Synchronize signal pulses to unlock pathways. A puzzle game about timing and pattern recognition.",analysisTitle:"Deep Dive into Game Feel",analysisSubtitle:"Exploring the invisible mechanics that make games feel magical.",illusionOfAgency:"The Illusion of Agency in Simple Games",timingWindows:"Timing Windows: Hidden Art of One-Tap Design",chickenRoadBlueprint:"The Chicken Road Blueprint",backToAnalysis:"Back to Analysis",readArticle:"Read Article",interactiveAnalysisTools:"Interactive Analysis Tools",interactiveAnalysisToolsDesc:"Coming soon: Interactive graphs, tap-response visualizers, and timing diagrams to help you understand the mechanics behind great game feel.",analysisPost:{"illusion-of-agency":{title:"The Illusion of Agency in Simple Games",excerpt:"How simple games create the feeling of meaningful choice through carefully designed constraints."},"timing-windows":{title:"Timing Windows: Hidden Art of One-Tap Design",excerpt:"The invisible art of creating perfect timing mechanics that feel natural and rewarding."},"chicken-road-blueprint":{title:"The Chicken Road Blueprint",excerpt:"A deep breakdown of how Chicken Road works mechanically and psychologically."}},blogTitle:"Insights & Observations",blogSubtitle:"Thoughts on design, mechanics, and the craft of creating engaging interactions.",readMore:"Read More",backToBlog:"Back to Blog",blogPost:{"chicken-road-and-the-rise-of-micro-runners":{title:"Chicken Road and the Rise of Micro-Runners",excerpt:"How a simple crossing game sparked a revolution in minimalist arcade design and influenced countless mobile games."},"why-one-button-is-sometimes-enough":{title:"Why One Button Is Sometimes Enough",excerpt:"Exploring the elegance of single-input games and how constraints can lead to more engaging experiences."},"the-feel-factor-how-games-trick-our-senses":{title:"The Feel Factor: How Games Trick Our Senses",excerpt:"The psychology behind game feel and how developers use subtle tricks to make digital interactions feel physical."},"from-tap-to-flow-designing-reactive-loops":{title:"From Tap to Flow: Designing Reactive Loops",excerpt:"Creating feedback systems that respond instantly to player input and maintain engagement through flow states."}},aboutTitle:"About Input Craft",aboutDescription:"Input Craft was born from a fascination with how it feels to play. Every bounce, tap, drift or dodge is the result of careful input design. We highlight games where mechanics are not just systems, but sensations.",aboutQuote:"Great games are felt before they are understood.",ourFocus:"Our Focus",ourApproach:"Our Approach",inputSchematics:"Input Schematics",focusPoints:{one:"Input design and game feel",two:"Timing mechanics and flow states",three:"Minimalist game design",four:"Player psychology and engagement"},approachPoints:{one:"Hands-on experimentation",two:"Deep mechanical analysis",three:"Interactive demonstrations",four:"Community-driven insights"},schematicTypes:{touch:"Touch Input",keyboard:"Keyboard Input",controller:"Controller Input"},sitemap:"Sitemap",legal:"Legal",language:"Language",footerRights:"© 2025 Input Craft. All rights reserved.",lastUpdated:"Last updated: January 10, 2025",privacyIntro:"At Input Craft, we respect your privacy and are committed to protecting your personal information. This privacy policy explains how we collect, use, and safeguard your data when you use our website and games.",termsIntro:"Welcome to Input Craft. These terms and conditions outline the rules and regulations for the use of Input Craft's website and services.",cookiesIntro:"This cookie policy explains how Input Craft uses cookies and similar technologies to recognize you when you visit our website and use our games.",contactUsAboutCookies:"Contact Us About Cookies",contactUsAboutCookiesDesc:"If you have any questions about our use of cookies or other technologies, please contact us at cookies@inputcraft.com.",privacySections:{infoCollect:{title:"Information We Collect",content:"We collect information you provide directly to us, such as when you create an account, use our games, or contact us for support. This may include your name, email address, and gameplay data."},infoUse:{title:"How We Use Your Information",content:"We use the information we collect to provide, maintain, and improve our services, communicate with you, and analyze usage patterns to enhance the gaming experience."},infoShare:{title:"Information Sharing",content:"We do not sell, trade, or otherwise transfer your personal information to third parties without your consent, except as described in this policy or as required by law."},dataSecurity:{title:"Data Security",content:"We implement appropriate security measures to protect your personal information against unauthorized access, alteration, disclosure, or destruction."},cookiesTracking:{title:"Cookies and Tracking",content:"We use cookies and similar technologies to enhance your experience, analyze usage, and provide personalized content. You can control cookie settings through your browser."},yourRights:{title:"Your Rights",content:"You have the right to access, update, or delete your personal information. You may also opt out of certain communications from us."},policyChanges:{title:"Changes to This Policy",content:"We may update this privacy policy from time to time. We will notify you of any changes by posting the new policy on this page."},contactUs:{title:"Contact Us",content:"If you have any questions about this privacy policy, please contact us at privacy@inputcraft.com."}},termsSections:{acceptance:{title:"Acceptance of Terms",content:"By accessing and using Input Craft, you accept and agree to be bound by the terms and provision of this agreement."},useLicense:{title:"Use License",content:"Permission is granted to temporarily access the materials on Input Craft for personal, non-commercial transitory viewing only."},disclaimer:{title:"Disclaimer",content:'The materials on Input Craft are provided on an "as is" basis. Input Craft makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.'},limitations:{title:"Limitations",content:"In no event shall Input Craft or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Input Craft, even if Input Craft or an authorized representative has been notified orally or in writing of the possibility of such damage."},accuracy:{title:"Accuracy of Materials",content:"The materials appearing on Input Craft could include technical, typographical, or photographic errors. Input Craft does not warrant that any of the materials on its website are accurate, complete, or current."},links:{title:"Links",content:"Input Craft has not reviewed all of the sites linked to our website and is not responsible for the contents of any such linked site."},modifications:{title:"Modifications",content:"Input Craft may revise these terms of service for its website at any time without notice. By using this website, you are agreeing to be bound by the then current version of these terms of service."},governingLaw:{title:"Governing Law",content:"These terms and conditions are governed by and construed in accordance with the laws and you irrevocably submit to the exclusive jurisdiction of the courts in that state or location."}},cookiesSections:{whatAre:{title:"What Are Cookies",content:"Cookies are small text files that are placed on your computer or mobile device when you visit a website. They are widely used to make websites work more efficiently and provide information to website owners."},howWeUse:{title:"How We Use Cookies",content:"We use cookies to enhance your experience on our website, analyze usage patterns, remember your preferences, and provide personalized content. This helps us improve our games and services."},types:{title:"Types of Cookies We Use",content:"We use both session cookies (which expire when you close your browser) and persistent cookies (which remain on your device for a set period). We also use first-party cookies (set by us) and third-party cookies (set by our partners)."},essential:{title:"Essential Cookies",content:"These cookies are necessary for the website to function properly. They enable basic functions like page navigation, access to secure areas, and game functionality. The website cannot function properly without these cookies."},analytics:{title:"Analytics Cookies",content:"These cookies help us understand how visitors interact with our website by collecting and reporting information anonymously. This helps us improve our website and games."},preference:{title:"Preference Cookies",content:"These cookies allow our website to remember information that changes the way the website behaves or looks, such as your preferred language or the region you are in."},managing:{title:"Managing Cookies",content:"You can control and/or delete cookies as you wish. You can delete all cookies that are already on your computer and you can set most browsers to prevent them from being placed."},thirdParty:{title:"Third-Party Cookies",content:"Some of our pages may contain content from third parties (such as embedded videos or social media plugins) which may set their own cookies. We do not control these cookies."}},comingSoon:"🚧 This feature isn't implemented yet—but don't worry! You can request it in your next prompt! 🚀",loading:"Loading...",error:"Something went wrong"},it:{home:"Home",games:"Giochi",analysis:"Analisi",blog:"Blog",about:"Chi Siamo",privacy:"Privacy Policy",terms:"Termini di Servizio",cookies:"Cookie Policy",heroTitle:"Dove la Meccanica Incontra la Magia",heroSubtitle:"Il gameplay è design. L'input è linguaggio.",exploreGames:"Esplora i Giochi",readAnalysis:"Leggi le Analisi",whyInputMatters:"Perché l'Input è Importante",whyInputDescription:"Ogni tocco, swipe e click modella l'esperienza del giocatore. I grandi giochi si sentono prima di essere compresi.",chickenRoadHighlight:"Chicken Road: Un Capolavoro di Timing",chickenRoadDescription:"Scopri come meccaniche semplici creano coinvolgimento profondo attraverso finestre di timing perfette.",featuredGames:"Giochi in Evidenza",featuredGamesSubtitle:"Sperimenta l'arte del design dell'input attraverso la nostra collezione attentamente curata.",viewAllGames:"Vedi Tutti i Giochi",inputFeatures:{instantResponse:{title:"Risposta Istantanea",description:"Ogni input crea un feedback immediato e soddisfacente che connette il giocatore al gioco."},preciseControl:{title:"Controllo Preciso",description:"Meccaniche attentamente calibrate che premiano l'abilità e creano stati di flusso."},perfectTiming:{title:"Timing Perfetto",description:"Finestre di opportunità che creano tensione e rilascio in perfetta armonia."}},gamesTitle:"Esperienze Interattive",gamesSubtitle:"Esplora la nostra collezione di giochi HTML5 realizzati con cura che mostrano l'arte del design dell'input.",playNow:"Gioca Ora",learnMore:"Scopri di Più",timing:"Timing",oneTap:"Un Tocco",strategy:"Strategia",reflex:"Riflessi",precision:"Precisione",chickenReflexDesc:"Metti alla prova i tuoi riflessi guidando un pollo attraverso strade sempre più trafficate. Padroneggia l'arte del timing perfetto.",tapDriftDesc:"Controlla un'auto che drifta con un solo pulsante. Senti il ritmo del momentum e del timing in questo racer minimalista.",signalLinkDesc:"Sincronizza gli impulsi del segnale per sbloccare i percorsi. Un puzzle game su timing e riconoscimento di pattern.",analysisTitle:"Analisi Approfondita del Game Feel",analysisSubtitle:"Esplorando le meccaniche invisibili che rendono magici i giochi.",illusionOfAgency:"L'Illusione dell'Agenzia nei Giochi Semplici",timingWindows:"Finestre di Timing: L'Arte Nascosta del Design One-Tap",chickenRoadBlueprint:"Il Blueprint di Chicken Road",backToAnalysis:"Torna alle Analisi",readArticle:"Leggi l'Articolo",interactiveAnalysisTools:"Strumenti di Analisi Interattivi",interactiveAnalysisToolsDesc:"Prossimamente: Grafici interattivi, visualizzatori di risposta al tocco e diagrammi di timing per aiutarti a comprendere le meccaniche alla base di un ottimo game feel.",analysisPost:{"illusion-of-agency":{title:"L'Illusione dell'Agenzia nei Giochi Semplici",excerpt:"Come i giochi semplici creano la sensazione di una scelta significativa attraverso vincoli attentamente progettati."},"timing-windows":{title:"Finestre di Timing: L'Arte Nascosta del Design One-Tap",excerpt:"L'arte invisibile di creare meccaniche di timing perfette che sembrano naturali e gratificanti."},"chicken-road-blueprint":{title:"Il Blueprint di Chicken Road",excerpt:"Un'analisi approfondita di come funziona Chicken Road dal punto di vista meccanico e psicologico."}},blogTitle:"Intuizioni e Osservazioni",blogSubtitle:"Riflessioni su design, meccaniche e l'arte di creare interazioni coinvolgenti.",readMore:"Leggi di Più",backToBlog:"Torna al Blog",blogPost:{"chicken-road-and-the-rise-of-micro-runners":{title:"Chicken Road e l'Ascesa dei Micro-Runner",excerpt:"Come un semplice gioco di attraversamento ha scatenato una rivoluzione nel design arcade minimalista e influenzato innumerevoli giochi mobile."},"why-one-button-is-sometimes-enough":{title:"Perché a Volte Basta un Pulsante",excerpt:"Esplorando l'eleganza dei giochi a singolo input e come i limiti possano portare a esperienze più coinvolgenti."},"the-feel-factor-how-games-trick-our-senses":{title:"Il Fattore Feel: Come i Giochi Ingannano i Nostri Sensi",excerpt:'La psicologia dietro al "game feel" e come gli sviluppatori usano trucchi sottili per rendere fisiche le interazioni digitali.'},"from-tap-to-flow-designing-reactive-loops":{title:"Dal Tocco al Flusso: Progettare Loop Reattivi",excerpt:"Creare sistemi di feedback che rispondono istantaneamente all'input del giocatore e mantengono il coinvolgimento attraverso stati di flusso."}},aboutTitle:"Chi è Input Craft",aboutDescription:"Input Craft è nato da una fascinazione per come ci si sente a giocare. Ogni rimbalzo, tocco, drift o schivata è il risultato di un design dell'input accurato. Mettiamo in evidenza giochi dove le meccaniche non sono solo sistemi, ma sensazioni.",aboutQuote:"I grandi giochi si sentono prima di essere compresi.",ourFocus:"Il Nostro Focus",ourApproach:"Il Nostro Approccio",inputSchematics:"Schemi di Input",focusPoints:{one:"Design dell'input e game feel",two:"Meccaniche di timing e stati di flusso",three:"Game design minimalista",four:"Psicologia del giocatore e coinvolgimento"},approachPoints:{one:"Sperimentazione pratica",two:"Analisi meccanica approfondita",three:"Dimostrazioni interattive",four:"Intuizioni guidate dalla community"},schematicTypes:{touch:"Input Tattile",keyboard:"Input da Tastiera",controller:"Input da Controller"},sitemap:"Mappa del Sito",legal:"Legale",language:"Lingua",footerRights:"© 2025 Input Craft. Tutti i diritti riservati.",lastUpdated:"Ultimo aggiornamento: 10 gennaio 2025",privacyIntro:"In Input Craft, rispettiamo la tua privacy e ci impegniamo a proteggere le tue informazioni personali. Questa politica sulla privacy spiega come raccogliamo, utilizziamo e proteggiamo i tuoi dati quando utilizzi il nostro sito web e i nostri giochi.",termsIntro:"Benvenuto in Input Craft. Questi termini e condizioni delineano le regole e i regolamenti per l'uso del sito web e dei servizi di Input Craft.",cookiesIntro:"Questa politica sui cookie spiega come Input Craft utilizza i cookie e tecnologie simili per riconoscerti quando visiti il nostro sito web e utilizzi i nostri giochi.",contactUsAboutCookies:"Contattaci Riguardo ai Cookie",contactUsAboutCookiesDesc:"Se hai domande sul nostro uso dei cookie o di altre tecnologie, ti preghiamo di contattarci a cookies@inputcraft.com.",privacySections:{infoCollect:{title:"Informazioni che Raccogliamo",content:"Raccogliamo le informazioni che ci fornisci direttamente, ad esempio quando crei un account, utilizzi i nostri giochi o ci contatti per supporto. Ciò può includere il tuo nome, indirizzo email e dati di gioco."},infoUse:{title:"Come Utilizziamo le Tue Informazioni",content:"Utilizziamo le informazioni che raccogliamo per fornire, mantenere e migliorare i nostri servizi, comunicare con te e analizzare i modelli di utilizzo per migliorare l'esperienza di gioco."},infoShare:{title:"Condivisione delle Informazioni",content:"Non vendiamo, scambiamo o trasferiamo in altro modo le tue informazioni personali a terzi senza il tuo consenso, salvo quanto descritto in questa politica o richiesto dalla legge."},dataSecurity:{title:"Sicurezza dei Dati",content:"Implementiamo misure di sicurezza appropriate per proteggere le tue informazioni personali da accessi non autorizzati, alterazioni, divulgazioni o distruzioni."},cookiesTracking:{title:"Cookie e Tracciamento",content:"Utilizziamo cookie e tecnologie simili per migliorare la tua esperienza, analizzare l'utilizzo e fornire contenuti personalizzati. Puoi controllare le impostazioni dei cookie tramite il tuo browser."},yourRights:{title:"I Tuoi Diritti",content:"Hai il diritto di accedere, aggiornare o eliminare le tue informazioni personali. Puoi anche scegliere di non ricevere determinate comunicazioni da parte nostra."},policyChanges:{title:"Modifiche a Questa Politica",content:"Potremmo aggiornare questa politica sulla privacy di tanto in tanto. Ti informeremo di eventuali modifiche pubblicando la nuova politica su questa pagina."},contactUs:{title:"Contattaci",content:"Se hai domande su questa politica sulla privacy, ti preghiamo di contattarci a privacy@inputcraft.com."}},termsSections:{acceptance:{title:"Accettazione dei Termini",content:"Accedendo e utilizzando Input Craft, accetti di essere vincolato dai termini e dalle disposizioni di questo accordo."},useLicense:{title:"Licenza d'Uso",content:"È concesso il permesso di accedere temporaneamente ai materiali su Input Craft solo per una visione transitoria personale e non commerciale."},disclaimer:{title:"Dichiarazione di Non Responsabilità",content:'I materiali su Input Craft sono forniti "così come sono". Input Craft non fornisce alcuna garanzia, espressa o implicita, e con la presente declina e nega tutte le altre garanzie, incluse, senza limitazioni, le garanzie implicite o le condizioni di commerciabilità, idoneità per uno scopo particolare o non violazione della proprietà intellettuale o altra violazione dei diritti.'},limitations:{title:"Limitazioni",content:"In nessun caso Input Craft o i suoi fornitori saranno responsabili per eventuali danni (inclusi, senza limitazioni, danni per perdita di dati o profitto, o dovuti a interruzione dell'attività) derivanti dall'uso o dall'impossibilità di utilizzare i materiali su Input Craft, anche se Input Craft o un rappresentante autorizzato è stato informato oralmente o per iscritto della possibilità di tali danni."},accuracy:{title:"Accuratezza dei Materiali",content:"I materiali che appaiono su Input Craft potrebbero includere errori tecnici, tipografici o fotografici. Input Craft non garantisce che nessuno dei materiali sul suo sito web sia accurato, completo o attuale."},links:{title:"Link",content:"Input Craft non ha esaminato tutti i siti collegati al nostro sito web e non è responsabile per i contenuti di tali siti collegati."},modifications:{title:"Modifiche",content:"Input Craft può rivedere questi termini di servizio per il suo sito web in qualsiasi momento senza preavviso. Utilizzando questo sito web, accetti di essere vincolato dalla versione allora corrente di questi termini di servizio."},governingLaw:{title:"Legge Applicabile",content:"Questi termini e condizioni sono regolati e interpretati in conformità con le leggi e ti sottometti irrevocabilmente alla giurisdizione esclusiva dei tribunali di quello stato o località."}},cookiesSections:{whatAre:{title:"Cosa Sono i Cookie",content:"I cookie sono piccoli file di testo che vengono inseriti nel tuo computer o dispositivo mobile quando visiti un sito web. Sono ampiamente utilizzati per far funzionare i siti web in modo più efficiente e fornire informazioni ai proprietari dei siti web."},howWeUse:{title:"Come Utilizziamo i Cookie",content:"Utilizziamo i cookie per migliorare la tua esperienza sul nostro sito web, analizzare i modelli di utilizzo, ricordare le tue preferenze e fornire contenuti personalizzati. Questo ci aiuta a migliorare i nostri giochi e servizi."},types:{title:"Tipi di Cookie che Utilizziamo",content:"Utilizziamo sia cookie di sessione (che scadono quando chiudi il browser) sia cookie persistenti (che rimangono sul tuo dispositivo per un periodo di tempo prestabilito). Utilizziamo anche cookie di prima parte (impostati da noi) e cookie di terze parti (impostati dai nostri partner)."},essential:{title:"Cookie Essenziali",content:"Questi cookie sono necessari per il corretto funzionamento del sito web. Abilitano funzioni di base come la navigazione della pagina, l'accesso ad aree sicure e la funzionalità di gioco. Il sito web non può funzionare correttamente senza questi cookie."},analytics:{title:"Cookie Analitici",content:"Questi cookie ci aiutano a capire come i visitatori interagiscono con il nostro sito web raccogliendo e riportando informazioni in modo anonimo. Questo ci aiuta a migliorare il nostro sito web e i nostri giochi."},preference:{title:"Cookie di Preferenza",content:"Questi cookie consentono al nostro sito web di ricordare informazioni che cambiano il modo in cui il sito web si comporta o appare, come la tua lingua preferita o la regione in cui ti trovi."},managing:{title:"Gestione dei Cookie",content:"Puoi controllare e/o eliminare i cookie come desideri. Puoi eliminare tutti i cookie che sono già sul tuo computer e puoi impostare la maggior parte dei browser per impedire che vengano inseriti."},thirdParty:{title:"Cookie di Terze Parti",content:"Alcune delle nostre pagine possono contenere contenuti di terze parti (come video incorporati o plugin di social media) che possono impostare i propri cookie. Non controlliamo questi cookie."}},comingSoon:"🚧 Questa funzionalità non è ancora implementata—ma non preoccuparti! Puoi richiederla nel tuo prossimo prompt! 🚀",loading:"Caricamento...",error:"Qualcosa è andato storto"}},zw=({children:e})=>{const[t,n]=w.useState("en");w.useEffect(()=>{const o=localStorage.getItem("inputcraft-language");o&&go[o]&&n(o)},[]);const r=o=>{go[o]&&(n(o),localStorage.setItem("inputcraft-language",o))},i=(o,s)=>{const a=o.split(".");let l=go[t];for(let c=0;ce,isStatic:!1,reducedMotion:"never"}),Fs=w.createContext({}),tu=w.createContext(null),Bs=typeof document<"u",Dw=Bs?w.useLayoutEffect:w.useEffect,Dm=w.createContext({strict:!1}),nu=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),Ow="framerAppearId",Om="data-"+nu(Ow);function _w(e,t,n,r){const{visualElement:i}=w.useContext(Fs),o=w.useContext(Dm),s=w.useContext(tu),a=w.useContext(zm).reducedMotion,l=w.useRef();r=r||o.renderer,!l.current&&r&&(l.current=r(e,{visualState:t,parent:i,props:n,presenceContext:s,blockInitialAnimation:s?s.initial===!1:!1,reducedMotionConfig:a}));const c=l.current;w.useInsertionEffect(()=>{c&&c.update(n,s)});const u=w.useRef(!!(n[Om]&&!window.HandoffComplete));return Dw(()=>{c&&(c.render(),u.current&&c.animationState&&c.animationState.animateChanges())}),w.useEffect(()=>{c&&(c.updateFeatures(),!u.current&&c.animationState&&c.animationState.animateChanges(),u.current&&(u.current=!1,window.HandoffComplete=!0))}),c}function ur(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function Vw(e,t,n){return w.useCallback(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ur(n)&&(n.current=r))},[t])}function zi(e){return typeof e=="string"||Array.isArray(e)}function Us(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const ru=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],iu=["initial",...ru];function $s(e){return Us(e.animate)||iu.some(t=>zi(e[t]))}function _m(e){return!!($s(e)||e.variants)}function Fw(e,t){if($s(e)){const{initial:n,animate:r}=e;return{initial:n===!1||zi(n)?n:void 0,animate:zi(r)?r:void 0}}return e.inherit!==!1?t:{}}function Bw(e){const{initial:t,animate:n}=Fw(e,w.useContext(Fs));return w.useMemo(()=>({initial:t,animate:n}),[Hd(t),Hd(n)])}function Hd(e){return Array.isArray(e)?e.join(" "):e}const Gd={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"]},Di={};for(const e in Gd)Di[e]={isEnabled:t=>Gd[e].some(n=>!!t[n])};function Uw(e){for(const t in e)Di[t]={...Di[t],...e[t]}}const Vm=w.createContext({}),Fm=w.createContext({}),$w=Symbol.for("motionComponentSymbol");function Ww({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){e&&Uw(e);function o(a,l){let c;const u={...w.useContext(zm),...a,layoutId:Hw(a)},{isStatic:f}=u,p=Bw(a),g=r(a,f);if(!f&&Bs){p.visualElement=_w(i,g,u,t);const x=w.useContext(Fm),v=w.useContext(Dm).strict;p.visualElement&&(c=p.visualElement.loadFeatures(u,v,e,x))}return w.createElement(Fs.Provider,{value:p},c&&p.visualElement?w.createElement(c,{visualElement:p.visualElement,...u}):null,n(i,a,Vw(g,p.visualElement,l),g,f,p.visualElement))}const s=w.forwardRef(o);return s[$w]=i,s}function Hw({layoutId:e}){const t=w.useContext(Vm).id;return t&&e!==void 0?t+"-"+e:e}function Gw(e){function t(r,i={}){return Ww(e(r,i))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(r,i)=>(n.has(i)||n.set(i,t(i)),n.get(i))})}const Qw=["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 ou(e){return typeof e!="string"||e.includes("-")?!1:!!(Qw.indexOf(e)>-1||/[A-Z]/.test(e))}const ds={};function Kw(e){Object.assign(ds,e)}const Hi=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Hn=new Set(Hi);function Bm(e,{layout:t,layoutId:n}){return Hn.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!ds[e]||e==="opacity")}const $e=e=>!!(e&&e.getVelocity),qw={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Yw=Hi.length;function Xw(e,{enableHardwareAcceleration:t=!0,allowTransformNone:n=!0},r,i){let o="";for(let s=0;st=>typeof t=="string"&&t.startsWith(e),$m=Um("--"),Il=Um("var(--"),Zw=/var\s*\(\s*--[\w-]+(\s*,\s*(?:(?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)+)?\s*\)/g,Jw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,hn=(e,t,n)=>Math.min(Math.max(n,e),t),Gn={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},di={...Gn,transform:e=>hn(0,1,e)},yo={...Gn,default:1},fi=e=>Math.round(e*1e5)/1e5,Ws=/(-)?([\d]*\.?[\d])+/g,Wm=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,e1=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Gi(e){return typeof e=="string"}const Qi=e=>({test:t=>Gi(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Ht=Qi("deg"),bt=Qi("%"),D=Qi("px"),t1=Qi("vh"),n1=Qi("vw"),Qd={...bt,parse:e=>bt.parse(e)/100,transform:e=>bt.transform(e*100)},Kd={...Gn,transform:Math.round},Hm={borderWidth:D,borderTopWidth:D,borderRightWidth:D,borderBottomWidth:D,borderLeftWidth:D,borderRadius:D,radius:D,borderTopLeftRadius:D,borderTopRightRadius:D,borderBottomRightRadius:D,borderBottomLeftRadius:D,width:D,maxWidth:D,height:D,maxHeight:D,size:D,top:D,right:D,bottom:D,left:D,padding:D,paddingTop:D,paddingRight:D,paddingBottom:D,paddingLeft:D,margin:D,marginTop:D,marginRight:D,marginBottom:D,marginLeft:D,rotate:Ht,rotateX:Ht,rotateY:Ht,rotateZ:Ht,scale:yo,scaleX:yo,scaleY:yo,scaleZ:yo,skew:Ht,skewX:Ht,skewY:Ht,distance:D,translateX:D,translateY:D,translateZ:D,x:D,y:D,z:D,perspective:D,transformPerspective:D,opacity:di,originX:Qd,originY:Qd,originZ:D,zIndex:Kd,fillOpacity:di,strokeOpacity:di,numOctaves:Kd};function su(e,t,n,r){const{style:i,vars:o,transform:s,transformOrigin:a}=e;let l=!1,c=!1,u=!0;for(const f in t){const p=t[f];if($m(f)){o[f]=p;continue}const g=Hm[f],x=Jw(p,g);if(Hn.has(f)){if(l=!0,s[f]=x,!u)continue;p!==(g.default||0)&&(u=!1)}else f.startsWith("origin")?(c=!0,a[f]=x):i[f]=x}if(t.transform||(l||r?i.transform=Xw(e.transform,n,u,r):i.transform&&(i.transform="none")),c){const{originX:f="50%",originY:p="50%",originZ:g=0}=a;i.transformOrigin=`${f} ${p} ${g}`}}const au=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Gm(e,t,n){for(const r in t)!$e(t[r])&&!Bm(r,n)&&(e[r]=t[r])}function r1({transformTemplate:e},t,n){return w.useMemo(()=>{const r=au();return su(r,t,{enableHardwareAcceleration:!n},e),Object.assign({},r.vars,r.style)},[t])}function i1(e,t,n){const r=e.style||{},i={};return Gm(i,r,e),Object.assign(i,r1(e,t,n)),e.transformValues?e.transformValues(i):i}function o1(e,t,n){const r={},i=i1(e,t,n);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,i.userSelect=i.WebkitUserSelect=i.WebkitTouchCallout="none",i.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=i,r}const s1=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function fs(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||s1.has(e)}let Qm=e=>!fs(e);function a1(e){e&&(Qm=t=>t.startsWith("on")?!fs(t):e(t))}try{a1(require("@emotion/is-prop-valid").default)}catch{}function l1(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(Qm(i)||n===!0&&fs(i)||!t&&!fs(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function qd(e,t,n){return typeof e=="string"?e:D.transform(t+n*e)}function c1(e,t,n){const r=qd(t,e.x,e.width),i=qd(n,e.y,e.height);return`${r} ${i}`}const u1={offset:"stroke-dashoffset",array:"stroke-dasharray"},d1={offset:"strokeDashoffset",array:"strokeDasharray"};function f1(e,t,n=1,r=0,i=!0){e.pathLength=1;const o=i?u1:d1;e[o.offset]=D.transform(-r);const s=D.transform(t),a=D.transform(n);e[o.array]=`${s} ${a}`}function lu(e,{attrX:t,attrY:n,attrScale:r,originX:i,originY:o,pathLength:s,pathSpacing:a=1,pathOffset:l=0,...c},u,f,p){if(su(e,c,u,p),f){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:g,style:x,dimensions:v}=e;g.transform&&(v&&(x.transform=g.transform),delete g.transform),v&&(i!==void 0||o!==void 0||x.transform)&&(x.transformOrigin=c1(v,i!==void 0?i:.5,o!==void 0?o:.5)),t!==void 0&&(g.x=t),n!==void 0&&(g.y=n),r!==void 0&&(g.scale=r),s!==void 0&&f1(g,s,a,l,!1)}const Km=()=>({...au(),attrs:{}}),cu=e=>typeof e=="string"&&e.toLowerCase()==="svg";function p1(e,t,n,r){const i=w.useMemo(()=>{const o=Km();return lu(o,t,{enableHardwareAcceleration:!1},cu(r),e.transformTemplate),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};Gm(o,e.style,e),i.style={...o,...i.style}}return i}function h1(e=!1){return(n,r,i,{latestValues:o},s)=>{const l=(ou(n)?p1:o1)(r,o,s,n),u={...l1(r,typeof n=="string",e),...l,ref:i},{children:f}=r,p=w.useMemo(()=>$e(f)?f.get():f,[f]);return w.createElement(n,{...u,children:p})}}function qm(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const o in n)e.style.setProperty(o,n[o])}const Ym=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"]);function Xm(e,t,n,r){qm(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(Ym.has(i)?i:nu(i),t.attrs[i])}function uu(e,t){const{style:n}=e,r={};for(const i in n)($e(n[i])||t.style&&$e(t.style[i])||Bm(i,e))&&(r[i]=n[i]);return r}function Zm(e,t){const n=uu(e,t);for(const r in e)if($e(e[r])||$e(t[r])){const i=Hi.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;n[i]=e[r]}return n}function du(e,t,n,r={},i={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,i)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,r,i)),t}function m1(e){const t=w.useRef(null);return t.current===null&&(t.current=e()),t.current}const ps=e=>Array.isArray(e),g1=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),y1=e=>ps(e)?e[e.length-1]||0:e;function Do(e){const t=$e(e)?e.get():e;return g1(t)?t.toValue():t}function v1({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,i,o){const s={latestValues:x1(r,i,o,e),renderState:t()};return n&&(s.mount=a=>n(r,a,s)),s}const Jm=e=>(t,n)=>{const r=w.useContext(Fs),i=w.useContext(tu),o=()=>v1(e,t,r,i);return n?o():m1(o)};function x1(e,t,n,r){const i={},o=r(e,{});for(const p in o)i[p]=Do(o[p]);let{initial:s,animate:a}=e;const l=$s(e),c=_m(e);t&&c&&!l&&e.inherit!==!1&&(s===void 0&&(s=t.initial),a===void 0&&(a=t.animate));let u=n?n.initial===!1:!1;u=u||s===!1;const f=u?a:s;return f&&typeof f!="boolean"&&!Us(f)&&(Array.isArray(f)?f:[f]).forEach(g=>{const x=du(e,g);if(!x)return;const{transitionEnd:v,transition:T,...y}=x;for(const h in y){let m=y[h];if(Array.isArray(m)){const S=u?m.length-1:0;m=m[S]}m!==null&&(i[h]=m)}for(const h in v)i[h]=v[h]}),i}const ue=e=>e;class Yd{constructor(){this.order=[],this.scheduled=new Set}add(t){if(!this.scheduled.has(t))return this.scheduled.add(t),this.order.push(t),!0}remove(t){const n=this.order.indexOf(t);n!==-1&&(this.order.splice(n,1),this.scheduled.delete(t))}clear(){this.order.length=0,this.scheduled.clear()}}function w1(e){let t=new Yd,n=new Yd,r=0,i=!1,o=!1;const s=new WeakSet,a={schedule:(l,c=!1,u=!1)=>{const f=u&&i,p=f?t:n;return c&&s.add(l),p.add(l)&&f&&i&&(r=t.order.length),l},cancel:l=>{n.remove(l),s.delete(l)},process:l=>{if(i){o=!0;return}if(i=!0,[t,n]=[n,t],n.clear(),r=t.order.length,r)for(let c=0;c(f[p]=w1(()=>n=!0),f),{}),s=f=>o[f].process(i),a=()=>{const f=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(f-i.timestamp,T1),1),i.timestamp=f,i.isProcessing=!0,vo.forEach(s),i.isProcessing=!1,n&&t&&(r=!1,e(a))},l=()=>{n=!0,r=!0,i.isProcessing||e(a)};return{schedule:vo.reduce((f,p)=>{const g=o[p];return f[p]=(x,v=!1,T=!1)=>(n||l(),g.schedule(x,v,T)),f},{}),cancel:f=>vo.forEach(p=>o[p].cancel(f)),state:i,steps:o}}const{schedule:Z,cancel:Bt,state:Pe,steps:Sa}=S1(typeof requestAnimationFrame<"u"?requestAnimationFrame:ue,!0),C1={useVisualState:Jm({scrapeMotionValuesFromProps:Zm,createRenderState:Km,onMount:(e,t,{renderState:n,latestValues:r})=>{Z.read(()=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}}),Z.render(()=>{lu(n,r,{enableHardwareAcceleration:!1},cu(t.tagName),e.transformTemplate),Xm(t,n)})}})},k1={useVisualState:Jm({scrapeMotionValuesFromProps:uu,createRenderState:au})};function b1(e,{forwardMotionProps:t=!1},n,r){return{...ou(e)?C1:k1,preloadedFeatures:n,useRender:h1(t),createVisualElement:r,Component:e}}function It(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const eg=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function Hs(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const P1=e=>t=>eg(t)&&e(t,Hs(t));function zt(e,t,n,r){return It(e,t,P1(n),r)}const E1=(e,t)=>n=>t(e(n)),un=(...e)=>e.reduce(E1);function tg(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const Xd=tg("dragHorizontal"),Zd=tg("dragVertical");function ng(e){let t=!1;if(e==="y")t=Zd();else if(e==="x")t=Xd();else{const n=Xd(),r=Zd();n&&r?t=()=>{n(),r()}:(n&&n(),r&&r())}return t}function rg(){const e=ng(!0);return e?(e(),!1):!0}class wn{constructor(t){this.isMounted=!1,this.node=t}update(){}}function Jd(e,t){const n="pointer"+(t?"enter":"leave"),r="onHover"+(t?"Start":"End"),i=(o,s)=>{if(o.pointerType==="touch"||rg())return;const a=e.getProps();e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",t),a[r]&&Z.update(()=>a[r](o,s))};return zt(e.current,n,i,{passive:!e.getProps()[r]})}class j1 extends wn{mount(){this.unmount=un(Jd(this.node,!0),Jd(this.node,!1))}unmount(){}}class N1 extends wn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!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=un(It(this.node.current,"focus",()=>this.onFocus()),It(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const ig=(e,t)=>t?e===t?!0:ig(e,t.parentElement):!1;function Ca(e,t){if(!t)return;const n=new PointerEvent("pointer"+e);t(n,Hs(n))}class A1 extends wn{constructor(){super(...arguments),this.removeStartListeners=ue,this.removeEndListeners=ue,this.removeAccessibleListeners=ue,this.startPointerPress=(t,n)=>{if(this.isPressing)return;this.removeEndListeners();const r=this.node.getProps(),o=zt(window,"pointerup",(a,l)=>{if(!this.checkPressEnd())return;const{onTap:c,onTapCancel:u,globalTapTarget:f}=this.node.getProps();Z.update(()=>{!f&&!ig(this.node.current,a.target)?u&&u(a,l):c&&c(a,l)})},{passive:!(r.onTap||r.onPointerUp)}),s=zt(window,"pointercancel",(a,l)=>this.cancelPress(a,l),{passive:!(r.onTapCancel||r.onPointerCancel)});this.removeEndListeners=un(o,s),this.startPress(t,n)},this.startAccessiblePress=()=>{const t=o=>{if(o.key!=="Enter"||this.isPressing)return;const s=a=>{a.key!=="Enter"||!this.checkPressEnd()||Ca("up",(l,c)=>{const{onTap:u}=this.node.getProps();u&&Z.update(()=>u(l,c))})};this.removeEndListeners(),this.removeEndListeners=It(this.node.current,"keyup",s),Ca("down",(a,l)=>{this.startPress(a,l)})},n=It(this.node.current,"keydown",t),r=()=>{this.isPressing&&Ca("cancel",(o,s)=>this.cancelPress(o,s))},i=It(this.node.current,"blur",r);this.removeAccessibleListeners=un(n,i)}}startPress(t,n){this.isPressing=!0;const{onTapStart:r,whileTap:i}=this.node.getProps();i&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),r&&Z.update(()=>r(t,n))}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!rg()}cancelPress(t,n){if(!this.checkPressEnd())return;const{onTapCancel:r}=this.node.getProps();r&&Z.update(()=>r(t,n))}mount(){const t=this.node.getProps(),n=zt(t.globalTapTarget?window:this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),r=It(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=un(n,r)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const Ml=new WeakMap,ka=new WeakMap,R1=e=>{const t=Ml.get(e.target);t&&t(e)},L1=e=>{e.forEach(R1)};function I1({root:e,...t}){const n=e||document;ka.has(n)||ka.set(n,{});const r=ka.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(L1,{root:e,...t})),r[i]}function M1(e,t,n){const r=I1(t);return Ml.set(e,n),r.observe(e),()=>{Ml.delete(e),r.unobserve(e)}}const z1={some:0,all:1};class D1 extends wn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:o}=t,s={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:z1[i]},a=l=>{const{isIntersecting:c}=l;if(this.isInView===c||(this.isInView=c,o&&!c&&this.hasEnteredView))return;c&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",c);const{onViewportEnter:u,onViewportLeave:f}=this.node.getProps(),p=c?u:f;p&&p(l)};return M1(this.node.current,s,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(O1(t,n))&&this.startObserver()}unmount(){}}function O1({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const _1={inView:{Feature:D1},tap:{Feature:A1},focus:{Feature:N1},hover:{Feature:j1}};function og(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rt[r]=n.get()),t}function F1(e){const t={};return e.values.forEach((n,r)=>t[r]=n.getVelocity()),t}function Gs(e,t,n){const r=e.getProps();return du(r,t,n!==void 0?n:r.custom,V1(e),F1(e))}let B1=ue,fu=ue;const dn=e=>e*1e3,Dt=e=>e/1e3,U1={current:!1},sg=e=>Array.isArray(e)&&typeof e[0]=="number";function ag(e){return!!(!e||typeof e=="string"&&lg[e]||sg(e)||Array.isArray(e)&&e.every(ag))}const ti=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,lg={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ti([0,.65,.55,1]),circOut:ti([.55,0,1,.45]),backIn:ti([.31,.01,.66,-.59]),backOut:ti([.33,1.53,.69,.99])};function cg(e){if(e)return sg(e)?ti(e):Array.isArray(e)?e.map(cg):lg[e]}function $1(e,t,n,{delay:r=0,duration:i,repeat:o=0,repeatType:s="loop",ease:a,times:l}={}){const c={[t]:n};l&&(c.offset=l);const u=cg(a);return Array.isArray(u)&&(c.easing=u),e.animate(c,{delay:r,duration:i,easing:Array.isArray(u)?"linear":u,fill:"both",iterations:o+1,direction:s==="reverse"?"alternate":"normal"})}function W1(e,{repeat:t,repeatType:n="loop"}){const r=t&&n!=="loop"&&t%2===1?0:e.length-1;return e[r]}const ug=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,H1=1e-7,G1=12;function Q1(e,t,n,r,i){let o,s,a=0;do s=t+(n-t)/2,o=ug(s,r,i)-e,o>0?n=s:t=s;while(Math.abs(o)>H1&&++aQ1(o,0,1,e,n);return o=>o===0||o===1?o:ug(i(o),t,r)}const K1=Ki(.42,0,1,1),q1=Ki(0,0,.58,1),dg=Ki(.42,0,.58,1),Y1=e=>Array.isArray(e)&&typeof e[0]!="number",fg=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,pg=e=>t=>1-e(1-t),pu=e=>1-Math.sin(Math.acos(e)),hg=pg(pu),X1=fg(pu),mg=Ki(.33,1.53,.69,.99),hu=pg(mg),Z1=fg(hu),J1=e=>(e*=2)<1?.5*hu(e):.5*(2-Math.pow(2,-10*(e-1))),eT={linear:ue,easeIn:K1,easeInOut:dg,easeOut:q1,circIn:pu,circInOut:X1,circOut:hg,backIn:hu,backInOut:Z1,backOut:mg,anticipate:J1},ef=e=>{if(Array.isArray(e)){fu(e.length===4);const[t,n,r,i]=e;return Ki(t,n,r,i)}else if(typeof e=="string")return eT[e];return e},mu=(e,t)=>n=>!!(Gi(n)&&e1.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),gg=(e,t,n)=>r=>{if(!Gi(r))return r;const[i,o,s,a]=r.match(Ws);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(s),alpha:a!==void 0?parseFloat(a):1}},tT=e=>hn(0,255,e),ba={...Gn,transform:e=>Math.round(tT(e))},Rn={test:mu("rgb","red"),parse:gg("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+ba.transform(e)+", "+ba.transform(t)+", "+ba.transform(n)+", "+fi(di.transform(r))+")"};function nT(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const zl={test:mu("#"),parse:nT,transform:Rn.transform},dr={test:mu("hsl","hue"),parse:gg("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+bt.transform(fi(t))+", "+bt.transform(fi(n))+", "+fi(di.transform(r))+")"},Ne={test:e=>Rn.test(e)||zl.test(e)||dr.test(e),parse:e=>Rn.test(e)?Rn.parse(e):dr.test(e)?dr.parse(e):zl.parse(e),transform:e=>Gi(e)?e:e.hasOwnProperty("red")?Rn.transform(e):dr.transform(e)},se=(e,t,n)=>-n*e+n*t+e;function Pa(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function rT({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,s=0;if(!t)i=o=s=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=Pa(l,a,e+1/3),o=Pa(l,a,e),s=Pa(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(s*255),alpha:r}}const Ea=(e,t,n)=>{const r=e*e;return Math.sqrt(Math.max(0,n*(t*t-r)+r))},iT=[zl,Rn,dr],oT=e=>iT.find(t=>t.test(e));function tf(e){const t=oT(e);let n=t.parse(e);return t===dr&&(n=rT(n)),n}const yg=(e,t)=>{const n=tf(e),r=tf(t),i={...n};return o=>(i.red=Ea(n.red,r.red,o),i.green=Ea(n.green,r.green,o),i.blue=Ea(n.blue,r.blue,o),i.alpha=se(n.alpha,r.alpha,o),Rn.transform(i))};function sT(e){var t,n;return isNaN(e)&&Gi(e)&&(((t=e.match(Ws))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(Wm))===null||n===void 0?void 0:n.length)||0)>0}const vg={regex:Zw,countKey:"Vars",token:"${v}",parse:ue},xg={regex:Wm,countKey:"Colors",token:"${c}",parse:Ne.parse},wg={regex:Ws,countKey:"Numbers",token:"${n}",parse:Gn.parse};function ja(e,{regex:t,countKey:n,token:r,parse:i}){const o=e.tokenised.match(t);o&&(e["num"+n]=o.length,e.tokenised=e.tokenised.replace(t,r),e.values.push(...o.map(i)))}function hs(e){const t=e.toString(),n={value:t,tokenised:t,values:[],numVars:0,numColors:0,numNumbers:0};return n.value.includes("var(--")&&ja(n,vg),ja(n,xg),ja(n,wg),n}function Tg(e){return hs(e).values}function Sg(e){const{values:t,numColors:n,numVars:r,tokenised:i}=hs(e),o=t.length;return s=>{let a=i;for(let l=0;ltypeof e=="number"?0:e;function lT(e){const t=Tg(e);return Sg(e)(t.map(aT))}const mn={test:sT,parse:Tg,createTransformer:Sg,getAnimatableNone:lT},Cg=(e,t)=>n=>`${n>0?t:e}`;function kg(e,t){return typeof e=="number"?n=>se(e,t,n):Ne.test(e)?yg(e,t):e.startsWith("var(")?Cg(e,t):Pg(e,t)}const bg=(e,t)=>{const n=[...e],r=n.length,i=e.map((o,s)=>kg(o,t[s]));return o=>{for(let s=0;s{const n={...e,...t},r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=kg(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}},Pg=(e,t)=>{const n=mn.createTransformer(t),r=hs(e),i=hs(t);return r.numVars===i.numVars&&r.numColors===i.numColors&&r.numNumbers>=i.numNumbers?un(bg(r.values,i.values),n):Cg(e,t)},Oi=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},nf=(e,t)=>n=>se(e,t,n);function uT(e){return typeof e=="number"?nf:typeof e=="string"?Ne.test(e)?yg:Pg:Array.isArray(e)?bg:typeof e=="object"?cT:nf}function dT(e,t,n){const r=[],i=n||uT(e[0]),o=e.length-1;for(let s=0;st[0];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const s=dT(t,r,i),a=s.length,l=c=>{let u=0;if(a>1)for(;ul(hn(e[0],e[o-1],c)):l}function fT(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=Oi(0,t,r);e.push(se(n,1,i))}}function pT(e){const t=[0];return fT(t,e.length-1),t}function hT(e,t){return e.map(n=>n*t)}function mT(e,t){return e.map(()=>t||dg).splice(0,e.length-1)}function ms({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=Y1(r)?r.map(ef):ef(r),o={done:!1,value:t[0]},s=hT(n&&n.length===t.length?n:pT(t),e),a=Eg(s,t,{ease:Array.isArray(i)?i:mT(t,i)});return{calculatedDuration:e,next:l=>(o.value=a(l),o.done=l>=e,o)}}function jg(e,t){return t?e*(1e3/t):0}const gT=5;function Ng(e,t,n){const r=Math.max(t-gT,0);return jg(n-e(r),t-r)}const Na=.001,yT=.01,rf=10,vT=.05,xT=1;function wT({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let i,o;B1(e<=dn(rf));let s=1-t;s=hn(vT,xT,s),e=hn(yT,rf,Dt(e)),s<1?(i=c=>{const u=c*s,f=u*e,p=u-n,g=Dl(c,s),x=Math.exp(-f);return Na-p/g*x},o=c=>{const f=c*s*e,p=f*n+n,g=Math.pow(s,2)*Math.pow(c,2)*e,x=Math.exp(-f),v=Dl(Math.pow(c,2),s);return(-i(c)+Na>0?-1:1)*((p-g)*x)/v}):(i=c=>{const u=Math.exp(-c*e),f=(c-n)*e+1;return-Na+u*f},o=c=>{const u=Math.exp(-c*e),f=(n-c)*(e*e);return u*f});const a=5/e,l=ST(i,o,a);if(e=dn(e),isNaN(l))return{stiffness:100,damping:10,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:s*2*Math.sqrt(r*c),duration:e}}}const TT=12;function ST(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function bT(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!of(e,kT)&&of(e,CT)){const n=wT(e);t={...t,...n,mass:1},t.isResolvedFromDuration=!0}return t}function Ag({keyframes:e,restDelta:t,restSpeed:n,...r}){const i=e[0],o=e[e.length-1],s={done:!1,value:i},{stiffness:a,damping:l,mass:c,duration:u,velocity:f,isResolvedFromDuration:p}=bT({...r,velocity:-Dt(r.velocity||0)}),g=f||0,x=l/(2*Math.sqrt(a*c)),v=o-i,T=Dt(Math.sqrt(a/c)),y=Math.abs(v)<5;n||(n=y?.01:2),t||(t=y?.005:.5);let h;if(x<1){const m=Dl(T,x);h=S=>{const C=Math.exp(-x*T*S);return o-C*((g+x*T*v)/m*Math.sin(m*S)+v*Math.cos(m*S))}}else if(x===1)h=m=>o-Math.exp(-T*m)*(v+(g+T*v)*m);else{const m=T*Math.sqrt(x*x-1);h=S=>{const C=Math.exp(-x*T*S),b=Math.min(m*S,300);return o-C*((g+x*T*v)*Math.sinh(b)+m*v*Math.cosh(b))/m}}return{calculatedDuration:p&&u||null,next:m=>{const S=h(m);if(p)s.done=m>=u;else{let C=g;m!==0&&(x<1?C=Ng(h,m,S):C=0);const b=Math.abs(C)<=n,k=Math.abs(o-S)<=t;s.done=b&&k}return s.value=s.done?o:S,s}}}function sf({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:o=500,modifyTarget:s,min:a,max:l,restDelta:c=.5,restSpeed:u}){const f=e[0],p={done:!1,value:f},g=P=>a!==void 0&&Pl,x=P=>a===void 0?l:l===void 0||Math.abs(a-P)-v*Math.exp(-P/r),m=P=>y+h(P),S=P=>{const L=h(P),I=m(P);p.done=Math.abs(L)<=c,p.value=p.done?y:I};let C,b;const k=P=>{g(p.value)&&(C=P,b=Ag({keyframes:[p.value,x(p.value)],velocity:Ng(m,P,p.value),damping:i,stiffness:o,restDelta:c,restSpeed:u}))};return k(0),{calculatedDuration:null,next:P=>{let L=!1;return!b&&C===void 0&&(L=!0,S(P),k(P)),C!==void 0&&P>C?b.next(P-C):(!L&&S(P),p)}}}const PT=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Z.update(t,!0),stop:()=>Bt(t),now:()=>Pe.isProcessing?Pe.timestamp:performance.now()}},af=2e4;function lf(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=af?1/0:t}const ET={decay:sf,inertia:sf,tween:ms,keyframes:ms,spring:Ag};function gs({autoplay:e=!0,delay:t=0,driver:n=PT,keyframes:r,type:i="keyframes",repeat:o=0,repeatDelay:s=0,repeatType:a="loop",onPlay:l,onStop:c,onComplete:u,onUpdate:f,...p}){let g=1,x=!1,v,T;const y=()=>{T=new Promise(M=>{v=M})};y();let h;const m=ET[i]||ms;let S;m!==ms&&typeof r[0]!="number"&&(S=Eg([0,100],r,{clamp:!1}),r=[0,100]);const C=m({...p,keyframes:r});let b;a==="mirror"&&(b=m({...p,keyframes:[...r].reverse(),velocity:-(p.velocity||0)}));let k="idle",P=null,L=null,I=null;C.calculatedDuration===null&&o&&(C.calculatedDuration=lf(C));const{calculatedDuration:H}=C;let z=1/0,re=1/0;H!==null&&(z=H+s,re=z*(o+1)-s);let A=0;const J=M=>{if(L===null)return;g>0&&(L=Math.min(L,M)),g<0&&(L=Math.min(M-re/g,L)),P!==null?A=P:A=Math.round(M-L)*g;const $=A-t*(g>=0?1:-1),Q=g>=0?$<0:$>re;A=Math.max($,0),k==="finished"&&P===null&&(A=re);let He=A,qn=C;if(o){const Ks=Math.min(A,re)/z;let Xi=Math.floor(Ks),Sn=Ks%1;!Sn&&Ks>=1&&(Sn=1),Sn===1&&Xi--,Xi=Math.min(Xi,o+1),!!(Xi%2)&&(a==="reverse"?(Sn=1-Sn,s&&(Sn-=s/z)):a==="mirror"&&(qn=b)),He=hn(0,1,Sn)*z}const Ge=Q?{done:!1,value:r[0]}:qn.next(He);S&&(Ge.value=S(Ge.value));let{done:Tn}=Ge;!Q&&H!==null&&(Tn=g>=0?A>=re:A<=0);const iv=P===null&&(k==="finished"||k==="running"&&Tn);return f&&f(Ge.value),iv&&j(),Ge},B=()=>{h&&h.stop(),h=void 0},de=()=>{k="idle",B(),v(),y(),L=I=null},j=()=>{k="finished",u&&u(),B(),v()},R=()=>{if(x)return;h||(h=n(J));const M=h.now();l&&l(),P!==null?L=M-P:(!L||k==="finished")&&(L=M),k==="finished"&&y(),I=L,P=null,k="running",h.start()};e&&R();const O={then(M,$){return T.then(M,$)},get time(){return Dt(A)},set time(M){M=dn(M),A=M,P!==null||!h||g===0?P=M:L=h.now()-M/g},get duration(){const M=C.calculatedDuration===null?lf(C):C.calculatedDuration;return Dt(M)},get speed(){return g},set speed(M){M===g||!h||(g=M,O.time=Dt(A))},get state(){return k},play:R,pause:()=>{k="paused",P=A},stop:()=>{x=!0,k!=="idle"&&(k="idle",c&&c(),de())},cancel:()=>{I!==null&&J(I),de()},complete:()=>{k="finished"},sample:M=>(L=0,J(M))};return O}function jT(e){let t;return()=>(t===void 0&&(t=e()),t)}const NT=jT(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),AT=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),xo=10,RT=2e4,LT=(e,t)=>t.type==="spring"||e==="backgroundColor"||!ag(t.ease);function IT(e,t,{onUpdate:n,onComplete:r,...i}){if(!(NT()&&AT.has(t)&&!i.repeatDelay&&i.repeatType!=="mirror"&&i.damping!==0&&i.type!=="inertia"))return!1;let s=!1,a,l,c=!1;const u=()=>{l=new Promise(m=>{a=m})};u();let{keyframes:f,duration:p=300,ease:g,times:x}=i;if(LT(t,i)){const m=gs({...i,repeat:0,delay:0});let S={done:!1,value:f[0]};const C=[];let b=0;for(;!S.done&&b{c=!1,v.cancel()},y=()=>{c=!0,Z.update(T),a(),u()};return v.onfinish=()=>{c||(e.set(W1(f,i)),r&&r(),y())},{then(m,S){return l.then(m,S)},attachTimeline(m){return v.timeline=m,v.onfinish=null,ue},get time(){return Dt(v.currentTime||0)},set time(m){v.currentTime=dn(m)},get speed(){return v.playbackRate},set speed(m){v.playbackRate=m},get duration(){return Dt(p)},play:()=>{s||(v.play(),Bt(T))},pause:()=>v.pause(),stop:()=>{if(s=!0,v.playState==="idle")return;const{currentTime:m}=v;if(m){const S=gs({...i,autoplay:!1});e.setWithVelocity(S.sample(m-xo).value,S.sample(m).value,xo)}y()},complete:()=>{c||v.finish()},cancel:y}}function MT({keyframes:e,delay:t,onUpdate:n,onComplete:r}){const i=()=>(n&&n(e[e.length-1]),r&&r(),{time:0,speed:1,duration:0,play:ue,pause:ue,stop:ue,then:o=>(o(),Promise.resolve()),cancel:ue,complete:ue});return t?gs({keyframes:[0,1],duration:0,delay:t,onComplete:i}):i()}const zT={type:"spring",stiffness:500,damping:25,restSpeed:10},DT=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),OT={type:"keyframes",duration:.8},_T={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},VT=(e,{keyframes:t})=>t.length>2?OT:Hn.has(e)?e.startsWith("scale")?DT(t[1]):zT:_T,Ol=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(mn.test(t)||t==="0")&&!t.startsWith("url(")),FT=new Set(["brightness","contrast","saturate","opacity"]);function BT(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Ws)||[];if(!r)return e;const i=n.replace(r,"");let o=FT.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+i+")"}const UT=/([a-z-]*)\(.*?\)/g,_l={...mn,getAnimatableNone:e=>{const t=e.match(UT);return t?t.map(BT).join(" "):e}},$T={...Hm,color:Ne,backgroundColor:Ne,outlineColor:Ne,fill:Ne,stroke:Ne,borderColor:Ne,borderTopColor:Ne,borderRightColor:Ne,borderBottomColor:Ne,borderLeftColor:Ne,filter:_l,WebkitFilter:_l},gu=e=>$T[e];function Rg(e,t){let n=gu(e);return n!==_l&&(n=mn),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const Lg=e=>/^0[^.\s]+$/.test(e);function WT(e){if(typeof e=="number")return e===0;if(e!==null)return e==="none"||e==="0"||Lg(e)}function HT(e,t,n,r){const i=Ol(t,n);let o;Array.isArray(n)?o=[...n]:o=[null,n];const s=r.from!==void 0?r.from:e.get();let a;const l=[];for(let c=0;ci=>{const o=yu(r,e)||{},s=o.delay||r.delay||0;let{elapsed:a=0}=r;a=a-dn(s);const l=HT(t,e,n,o),c=l[0],u=l[l.length-1],f=Ol(e,c),p=Ol(e,u);let g={keyframes:l,velocity:t.getVelocity(),ease:"easeOut",...o,delay:-a,onUpdate:x=>{t.set(x),o.onUpdate&&o.onUpdate(x)},onComplete:()=>{i(),o.onComplete&&o.onComplete()}};if(GT(o)||(g={...g,...VT(e,g)}),g.duration&&(g.duration=dn(g.duration)),g.repeatDelay&&(g.repeatDelay=dn(g.repeatDelay)),!f||!p||U1.current||o.type===!1||QT.skipAnimations)return MT(g);if(!r.isHandoff&&t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const x=IT(t,e,g);if(x)return x}return gs(g)};function ys(e){return!!($e(e)&&e.add)}const Ig=e=>/^\-?\d*\.?\d+$/.test(e);function xu(e,t){e.indexOf(t)===-1&&e.push(t)}function wu(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Tu{constructor(){this.subscriptions=[]}add(t){return xu(this.subscriptions,t),()=>wu(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let o=0;o!isNaN(parseFloat(e));class qT{constructor(t,n={}){this.version="10.18.0",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(r,i=!0)=>{this.prev=this.current,this.current=r;const{delta:o,timestamp:s}=Pe;this.lastUpdated!==s&&(this.timeDelta=o,this.lastUpdated=s,Z.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>Z.postRender(this.velocityCheck),this.velocityCheck=({timestamp:r})=>{r!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=KT(this.current),this.owner=n.owner}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Tu);const r=this.events[t].add(n);return t==="change"?()=>{r(),Z.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=t,this.timeDelta=r}jump(t){this.updateAndNotify(t),this.prev=t,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?jg(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),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.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function jr(e,t){return new qT(e,t)}const Mg=e=>t=>t.test(e),YT={test:e=>e==="auto",parse:e=>e},zg=[Gn,D,bt,Ht,n1,t1,YT],Hr=e=>zg.find(Mg(e)),XT=[...zg,Ne,mn],ZT=e=>XT.find(Mg(e));function JT(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,jr(n))}function eS(e,t){const n=Gs(e,t);let{transitionEnd:r={},transition:i={},...o}=n?e.makeTargetAnimatable(n,!1):{};o={...o,...r};for(const s in o){const a=y1(o[s]);JT(e,s,a)}}function tS(e,t,n){var r,i;const o=Object.keys(t).filter(a=>!e.hasValue(a)),s=o.length;if(s)for(let a=0;al.remove(f))),c.push(T)}return s&&Promise.all(c).then(()=>{s&&eS(e,s)}),c}function Vl(e,t,n={}){const r=Gs(e,t,n.custom);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const o=r?()=>Promise.all(Dg(e,r,n)):()=>Promise.resolve(),s=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:c=0,staggerChildren:u,staggerDirection:f}=i;return sS(e,t,c+l,u,f,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[l,c]=a==="beforeChildren"?[o,s]:[s,o];return l().then(()=>c())}else return Promise.all([o(),s(n.delay)])}function sS(e,t,n=0,r=0,i=1,o){const s=[],a=(e.variantChildren.size-1)*r,l=i===1?(c=0)=>c*r:(c=0)=>a-c*r;return Array.from(e.variantChildren).sort(aS).forEach((c,u)=>{c.notify("AnimationStart",t),s.push(Vl(c,t,{...o,delay:n+l(u)}).then(()=>c.notify("AnimationComplete",t)))}),Promise.all(s)}function aS(e,t){return e.sortNodePosition(t)}function lS(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(o=>Vl(e,o,n));r=Promise.all(i)}else if(typeof t=="string")r=Vl(e,t,n);else{const i=typeof t=="function"?Gs(e,t,n.custom):t;r=Promise.all(Dg(e,i,n))}return r.then(()=>e.notify("AnimationComplete",t))}const cS=[...ru].reverse(),uS=ru.length;function dS(e){return t=>Promise.all(t.map(({animation:n,options:r})=>lS(e,n,r)))}function fS(e){let t=dS(e);const n=hS();let r=!0;const i=(l,c)=>{const u=Gs(e,c);if(u){const{transition:f,transitionEnd:p,...g}=u;l={...l,...g,...p}}return l};function o(l){t=l(e)}function s(l,c){const u=e.getProps(),f=e.getVariantContext(!0)||{},p=[],g=new Set;let x={},v=1/0;for(let y=0;yv&&C,I=!1;const H=Array.isArray(S)?S:[S];let z=H.reduce(i,{});b===!1&&(z={});const{prevResolvedValues:re={}}=m,A={...re,...z},J=B=>{L=!0,g.has(B)&&(I=!0,g.delete(B)),m.needsAnimating[B]=!0};for(const B in A){const de=z[B],j=re[B];if(x.hasOwnProperty(B))continue;let R=!1;ps(de)&&ps(j)?R=!og(de,j):R=de!==j,R?de!==void 0?J(B):g.add(B):de!==void 0&&g.has(B)?J(B):m.protectedKeys[B]=!0}m.prevProp=S,m.prevResolvedValues=z,m.isActive&&(x={...x,...z}),r&&e.blockInitialAnimation&&(L=!1),L&&(!k||I)&&p.push(...H.map(B=>({animation:B,options:{type:h,...l}})))}if(g.size){const y={};g.forEach(h=>{const m=e.getBaseTarget(h);m!==void 0&&(y[h]=m)}),p.push({animation:y})}let T=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(T=!1),r=!1,T?t(p):Promise.resolve()}function a(l,c,u){var f;if(n[l].isActive===c)return Promise.resolve();(f=e.variantChildren)===null||f===void 0||f.forEach(g=>{var x;return(x=g.animationState)===null||x===void 0?void 0:x.setActive(l,c)}),n[l].isActive=c;const p=s(u,l);for(const g in n)n[g].protectedKeys={};return p}return{animateChanges:s,setActive:a,setAnimateFunction:o,getState:()=>n}}function pS(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!og(t,e):!1}function Cn(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function hS(){return{animate:Cn(!0),whileInView:Cn(),whileHover:Cn(),whileTap:Cn(),whileDrag:Cn(),whileFocus:Cn(),exit:Cn()}}class mS extends wn{constructor(t){super(t),t.animationState||(t.animationState=fS(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),Us(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let gS=0;class yS extends wn{constructor(){super(...arguments),this.id=gS++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n,custom:r}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===i)return;const o=this.node.animationState.setActive("exit",!t,{custom:r??this.node.getProps().custom});n&&!t&&o.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const vS={animation:{Feature:mS},exit:{Feature:yS}},cf=(e,t)=>Math.abs(e-t);function xS(e,t){const n=cf(e.x,t.x),r=cf(e.y,t.y);return Math.sqrt(n**2+r**2)}class Og{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:o=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=Ra(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,g=xS(f.offset,{x:0,y:0})>=3;if(!p&&!g)return;const{point:x}=f,{timestamp:v}=Pe;this.history.push({...x,timestamp:v});const{onStart:T,onMove:y}=this.handlers;p||(T&&T(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=Aa(p,this.transformPagePoint),Z.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:g,onSessionEnd:x,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const T=Ra(f.type==="pointercancel"?this.lastMoveEventInfo:Aa(p,this.transformPagePoint),this.history);this.startEvent&&g&&g(f,T),x&&x(f,T)},!eg(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const s=Hs(t),a=Aa(s,this.transformPagePoint),{point:l}=a,{timestamp:c}=Pe;this.history=[{...l,timestamp:c}];const{onSessionStart:u}=n;u&&u(t,Ra(a,this.history)),this.removeListeners=un(zt(this.contextWindow,"pointermove",this.handlePointerMove),zt(this.contextWindow,"pointerup",this.handlePointerUp),zt(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Bt(this.updatePoint)}}function Aa(e,t){return t?{point:t(e.point)}:e}function uf(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ra({point:e},t){return{point:e,delta:uf(e,_g(t)),offset:uf(e,wS(t)),velocity:TS(t,.1)}}function wS(e){return e[0]}function _g(e){return e[e.length-1]}function TS(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=_g(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>dn(t)));)n--;if(!r)return{x:0,y:0};const o=Dt(i.timestamp-r.timestamp);if(o===0)return{x:0,y:0};const s={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function Je(e){return e.max-e.min}function Fl(e,t=0,n=.01){return Math.abs(e-t)<=n}function df(e,t,n,r=.5){e.origin=r,e.originPoint=se(t.min,t.max,e.origin),e.scale=Je(n)/Je(t),(Fl(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=se(n.min,n.max,e.origin)-e.originPoint,(Fl(e.translate)||isNaN(e.translate))&&(e.translate=0)}function pi(e,t,n,r){df(e.x,t.x,n.x,r?r.originX:void 0),df(e.y,t.y,n.y,r?r.originY:void 0)}function ff(e,t,n){e.min=n.min+t.min,e.max=e.min+Je(t)}function SS(e,t,n){ff(e.x,t.x,n.x),ff(e.y,t.y,n.y)}function pf(e,t,n){e.min=t.min-n.min,e.max=e.min+Je(t)}function hi(e,t,n){pf(e.x,t.x,n.x),pf(e.y,t.y,n.y)}function CS(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?se(n,e,r.max):Math.min(e,n)),e}function hf(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function kS(e,{top:t,left:n,bottom:r,right:i}){return{x:hf(e.x,n,i),y:hf(e.y,t,r)}}function mf(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Oi(t.min,t.max-r,e.min):r>i&&(n=Oi(e.min,e.max-i,t.min)),hn(0,1,n)}function ES(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Bl=.35;function jS(e=Bl){return e===!1?e=0:e===!0&&(e=Bl),{x:gf(e,"left","right"),y:gf(e,"top","bottom")}}function gf(e,t,n){return{min:yf(e,t),max:yf(e,n)}}function yf(e,t){return typeof e=="number"?e:e[t]||0}const vf=()=>({translate:0,scale:1,origin:0,originPoint:0}),fr=()=>({x:vf(),y:vf()}),xf=()=>({min:0,max:0}),he=()=>({x:xf(),y:xf()});function it(e){return[e("x"),e("y")]}function Vg({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function NS({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function AS(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function La(e){return e===void 0||e===1}function Ul({scale:e,scaleX:t,scaleY:n}){return!La(e)||!La(t)||!La(n)}function Pn(e){return Ul(e)||Fg(e)||e.z||e.rotate||e.rotateX||e.rotateY}function Fg(e){return wf(e.x)||wf(e.y)}function wf(e){return e&&e!=="0%"}function vs(e,t,n){const r=e-n,i=t*r;return n+i}function Tf(e,t,n,r,i){return i!==void 0&&(e=vs(e,i,r)),vs(e,n,r)+t}function $l(e,t=0,n=1,r,i){e.min=Tf(e.min,t,n,r,i),e.max=Tf(e.max,t,n,r,i)}function Bg(e,{x:t,y:n}){$l(e.x,t.translate,t.scale,t.originPoint),$l(e.y,n.translate,n.scale,n.originPoint)}function RS(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let o,s;for(let a=0;a1.0000000000001||e<.999999999999?e:1}function Kt(e,t){e.min=e.min+t,e.max=e.max+t}function Cf(e,t,[n,r,i]){const o=t[i]!==void 0?t[i]:.5,s=se(e.min,e.max,o);$l(e,t[n],t[r],s,t.scale)}const LS=["x","scaleX","originX"],IS=["y","scaleY","originY"];function pr(e,t){Cf(e.x,t,LS),Cf(e.y,t,IS)}function Ug(e,t){return Vg(AS(e.getBoundingClientRect(),t))}function MS(e,t,n){const r=Ug(e,n),{scroll:i}=t;return i&&(Kt(r.x,i.offset.x),Kt(r.y,i.offset.y)),r}const $g=({current:e})=>e?e.ownerDocument.defaultView:null,zS=new WeakMap;class DS{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=he(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=u=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Hs(u,"page").point)},o=(u,f)=>{const{drag:p,dragPropagation:g,onDragStart:x}=this.getProps();if(p&&!g&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=ng(p),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),it(T=>{let y=this.getAxisMotionValue(T).get()||0;if(bt.test(y)){const{projection:h}=this.visualElement;if(h&&h.layout){const m=h.layout.layoutBox[T];m&&(y=Je(m)*(parseFloat(y)/100))}}this.originPoint[T]=y}),x&&Z.update(()=>x(u,f),!1,!0);const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},s=(u,f)=>{const{dragPropagation:p,dragDirectionLock:g,onDirectionLock:x,onDrag:v}=this.getProps();if(!p&&!this.openGlobalLock)return;const{offset:T}=f;if(g&&this.currentDirection===null){this.currentDirection=OS(T),this.currentDirection!==null&&x&&x(this.currentDirection);return}this.updateAxis("x",f.point,T),this.updateAxis("y",f.point,T),this.visualElement.render(),v&&v(u,f)},a=(u,f)=>this.stop(u,f),l=()=>it(u=>{var f;return this.getAnimationState(u)==="paused"&&((f=this.getAxisMotionValue(u).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new Og(t,{onSessionStart:i,onStart:o,onMove:s,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:$g(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:o}=this.getProps();o&&Z.update(()=>o(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!wo(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let s=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(s=CS(s,this.constraints[t],this.elastic[t])),o.set(s)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,o=this.constraints;n&&ur(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=kS(i.layoutBox,n):this.constraints=!1,this.elastic=jS(r),o!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&it(s=>{this.getAxisMotionValue(s)&&(this.constraints[s]=ES(i.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ur(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=MS(r,i.root,this.visualElement.getTransformPagePoint());let s=bS(i.layout.layoutBox,o);if(n){const a=n(NS(s));this.hasMutatedConstraints=!!a,a&&(s=Vg(a))}return s}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:o,dragSnapToOrigin:s,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=it(u=>{if(!wo(u,n,this.currentDirection))return;let f=l&&l[u]||{};s&&(f={min:0,max:0});const p=i?200:1e6,g=i?40:1e7,x={type:"inertia",velocity:r?t[u]:0,bounceStiffness:p,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...o,...f};return this.startAxisValueAnimation(u,x)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return r.start(vu(t,r,0,n))}stopAnimation(){it(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){it(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n="_drag"+t.toUpperCase(),r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){it(n=>{const{drag:r}=this.getProps();if(!wo(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:s,max:a}=i.layout.layoutBox[n];o.set(t[n]-se(s,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ur(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};it(s=>{const a=this.getAxisMotionValue(s);if(a){const l=a.get();i[s]=PS({min:l,max:l},this.constraints[s])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),it(s=>{if(!wo(s,t,null))return;const a=this.getAxisMotionValue(s),{min:l,max:c}=this.constraints[s];a.set(se(l,c,i[s]))})}addListeners(){if(!this.visualElement.current)return;zS.set(this.visualElement,this);const t=this.visualElement.current,n=zt(t,"pointerdown",l=>{const{drag:c,dragListener:u=!0}=this.getProps();c&&u&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();ur(l)&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,o=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),r();const s=It(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:c})=>{this.isDragging&&c&&(it(u=>{const f=this.getAxisMotionValue(u);f&&(this.originPoint[u]+=l[u].translate,f.set(f.get()+l[u].translate))}),this.visualElement.render())});return()=>{s(),n(),o(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:s=Bl,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:o,dragElastic:s,dragMomentum:a}}}function wo(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function OS(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class _S extends wn{constructor(t){super(t),this.removeGroupControls=ue,this.removeListeners=ue,this.controls=new DS(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ue}unmount(){this.removeGroupControls(),this.removeListeners()}}const kf=e=>(t,n)=>{e&&Z.update(()=>e(t,n))};class VS extends wn{constructor(){super(...arguments),this.removePointerDownListener=ue}onPointerDown(t){this.session=new Og(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:$g(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:kf(t),onStart:kf(n),onMove:r,onEnd:(o,s)=>{delete this.session,i&&Z.update(()=>i(o,s))}}}mount(){this.removePointerDownListener=zt(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function FS(){const e=w.useContext(tu);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,i=w.useId();return w.useEffect(()=>r(i),[]),!t&&n?[!1,()=>n&&n(i)]:[!0]}const Oo={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function bf(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Gr={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(D.test(e))e=parseFloat(e);else return e;const n=bf(e,t.target.x),r=bf(e,t.target.y);return`${n}% ${r}%`}},BS={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=mn.parse(e);if(i.length>5)return r;const o=mn.createTransformer(e),s=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+s]/=a,i[1+s]/=l;const c=se(a,l,.5);return typeof i[2+s]=="number"&&(i[2+s]/=c),typeof i[3+s]=="number"&&(i[3+s]/=c),o(i)}};class US extends oe.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:o}=t;Kw($S),o&&(n.group&&n.group.add(o),r&&r.register&&i&&r.register(o),o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),Oo.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:o}=this.props,s=r.projection;return s&&(s.isPresent=o,i||t.layoutDependency!==n||n===void 0?s.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?s.promote():s.relegate()||Z.postRender(()=>{const a=s.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),queueMicrotask(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Wg(e){const[t,n]=FS(),r=w.useContext(Vm);return oe.createElement(US,{...e,layoutGroup:r,switchLayoutGroup:w.useContext(Fm),isPresent:t,safeToRemove:n})}const $S={borderRadius:{...Gr,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Gr,borderTopRightRadius:Gr,borderBottomLeftRadius:Gr,borderBottomRightRadius:Gr,boxShadow:BS},Hg=["TopLeft","TopRight","BottomLeft","BottomRight"],WS=Hg.length,Pf=e=>typeof e=="string"?parseFloat(e):e,Ef=e=>typeof e=="number"||D.test(e);function HS(e,t,n,r,i,o){i?(e.opacity=se(0,n.opacity!==void 0?n.opacity:1,GS(r)),e.opacityExit=se(t.opacity!==void 0?t.opacity:1,0,QS(r))):o&&(e.opacity=se(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let s=0;srt?1:n(Oi(e,t,r))}function Nf(e,t){e.min=t.min,e.max=t.max}function rt(e,t){Nf(e.x,t.x),Nf(e.y,t.y)}function Af(e,t,n,r,i){return e-=t,e=vs(e,1/n,r),i!==void 0&&(e=vs(e,1/i,r)),e}function KS(e,t=0,n=1,r=.5,i,o=e,s=e){if(bt.test(t)&&(t=parseFloat(t),t=se(s.min,s.max,t/100)-s.min),typeof t!="number")return;let a=se(o.min,o.max,r);e===o&&(a-=t),e.min=Af(e.min,t,n,a,i),e.max=Af(e.max,t,n,a,i)}function Rf(e,t,[n,r,i],o,s){KS(e,t[n],t[r],t[i],t.scale,o,s)}const qS=["x","scaleX","originX"],YS=["y","scaleY","originY"];function Lf(e,t,n,r){Rf(e.x,t,qS,n?n.x:void 0,r?r.x:void 0),Rf(e.y,t,YS,n?n.y:void 0,r?r.y:void 0)}function If(e){return e.translate===0&&e.scale===1}function Qg(e){return If(e.x)&&If(e.y)}function XS(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function Kg(e,t){return Math.round(e.x.min)===Math.round(t.x.min)&&Math.round(e.x.max)===Math.round(t.x.max)&&Math.round(e.y.min)===Math.round(t.y.min)&&Math.round(e.y.max)===Math.round(t.y.max)}function Mf(e){return Je(e.x)/Je(e.y)}class ZS{constructor(){this.members=[]}add(t){xu(this.members,t),t.scheduleRender()}remove(t){if(wu(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const o=this.members[i];if(o.isPresent!==!1){r=o;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function zf(e,t,n){let r="";const i=e.x.translate/t.x,o=e.y.translate/t.y;if((i||o)&&(r=`translate3d(${i}px, ${o}px, 0) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:l,rotateX:c,rotateY:u}=n;l&&(r+=`rotate(${l}deg) `),c&&(r+=`rotateX(${c}deg) `),u&&(r+=`rotateY(${u}deg) `)}const s=e.x.scale*t.x,a=e.y.scale*t.y;return(s!==1||a!==1)&&(r+=`scale(${s}, ${a})`),r||"none"}const JS=(e,t)=>e.depth-t.depth;class eC{constructor(){this.children=[],this.isDirty=!1}add(t){xu(this.children,t),this.isDirty=!0}remove(t){wu(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(JS),this.isDirty=!1,this.children.forEach(t)}}function tC(e,t){const n=performance.now(),r=({timestamp:i})=>{const o=i-n;o>=t&&(Bt(r),e(o-t))};return Z.read(r,!0),()=>Bt(r)}function nC(e){window.MotionDebug&&window.MotionDebug.record(e)}function rC(e){return e instanceof SVGElement&&e.tagName!=="svg"}function iC(e,t,n){const r=$e(e)?e:jr(e);return r.start(vu("",r,t,n)),r.animation}const Df=["","X","Y","Z"],oC={visibility:"hidden"},Of=1e3;let sC=0;const En={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function qg({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(s={},a=t==null?void 0:t()){this.id=sC++,this.animationId=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.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,En.totalNodes=En.resolvedTargetDeltas=En.recalculatedProjection=0,this.nodes.forEach(cC),this.nodes.forEach(hC),this.nodes.forEach(mC),this.nodes.forEach(uC),nC(En)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=s,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(s,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=tC(p,250),Oo.hasAnimatedSinceResize&&(Oo.hasAnimatedSinceResize=!1,this.nodes.forEach(Vf))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&u&&(l||c)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeTargetChanged:g,layout:x})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||u.getDefaultTransition()||wC,{onLayoutAnimationStart:T,onLayoutAnimationComplete:y}=u.getProps(),h=!this.targetLayout||!Kg(this.targetLayout,x)||g,m=!p&&g;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||m||p&&(h||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,m);const S={...yu(v,"layout"),onPlay:T,onComplete:y};(u.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else p||Vf(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=x})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const s=this.getStack();s&&s.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Bt(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.forEach(gC),this.animationId++)}getTransformTemplate(){const{visualElement:s}=this.options;return s&&s.getProps().transformTemplate}willUpdate(s=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;uthis.update()))}clearAllSnapshots(){this.nodes.forEach(dC),this.sharedNodes.forEach(yC)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Z.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Z.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const C=S/1e3;Ff(f.x,s.x,C),Ff(f.y,s.y,C),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(hi(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),vC(this.relativeTarget,this.relativeTargetOrigin,p,C),m&&XS(this.relativeTarget,m)&&(this.isProjectionDirty=!1),m||(m=he()),rt(m,this.relativeTarget)),v&&(this.animationValues=u,HS(u,c,this.latestValues,C,h,y)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=C},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(s){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(Bt(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Z.update(()=>{Oo.hasAnimatedSinceResize=!0,this.currentAnimation=iC(0,Of,{...s,onUpdate:a=>{this.mixTargetDelta(a),s.onUpdate&&s.onUpdate(a)},onComplete:()=>{s.onComplete&&s.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const s=this.getStack();s&&s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Of),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:u}=s;if(!(!a||!l||!c)){if(this!==s&&this.layout&&c&&Yg(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||he();const f=Je(this.layout.layoutBox.x);l.x.min=s.target.x.min,l.x.max=l.x.min+f;const p=Je(this.layout.layoutBox.y);l.y.min=s.target.y.min,l.y.max=l.y.min+p}rt(a,l),pr(a,u),pi(this.projectionDeltaWithTransform,this.layoutCorrected,a,u)}}registerSharedNode(s,a){this.sharedNodes.has(s)||this.sharedNodes.set(s,new ZS),this.sharedNodes.get(s).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){var s;const{layoutId:a}=this.options;return a?((s=this.getStack())===null||s===void 0?void 0:s.lead)||this:this}getPrevLead(){var s;const{layoutId:a}=this.options;return a?(s=this.getStack())===null||s===void 0?void 0:s.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),s&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}resetRotation(){const{visualElement:s}=this.options;if(!s)return;let a=!1;const{latestValues:l}=s;if((l.rotate||l.rotateX||l.rotateY||l.rotateZ)&&(a=!0),!a)return;const c={};for(let u=0;u{var a;return(a=s.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(_f),this.root.sharedNodes.clear()}}}function aC(e){e.updateLayout()}function lC(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:o}=e.options,s=n.source!==e.layout.source;o==="size"?it(f=>{const p=s?n.measuredBox[f]:n.layoutBox[f],g=Je(p);p.min=r[f].min,p.max=p.min+g}):Yg(o,n.layoutBox,r)&&it(f=>{const p=s?n.measuredBox[f]:n.layoutBox[f],g=Je(r[f]);p.max=p.min+g,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+g)});const a=fr();pi(a,r,n.layoutBox);const l=fr();s?pi(l,e.applyTransform(i,!0),n.measuredBox):pi(l,r,n.layoutBox);const c=!Qg(a);let u=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:g}=f;if(p&&g){const x=he();hi(x,n.layoutBox,p.layoutBox);const v=he();hi(v,r,g.layoutBox),Kg(x,v)||(u=!0),f.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=x,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeTargetChanged:u})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function cC(e){En.totalNodes++,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 uC(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function dC(e){e.clearSnapshot()}function _f(e){e.clearMeasurements()}function fC(e){e.isLayoutDirty=!1}function pC(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Vf(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function hC(e){e.resolveTargetDelta()}function mC(e){e.calcProjection()}function gC(e){e.resetRotation()}function yC(e){e.removeLeadSnapshot()}function Ff(e,t,n){e.translate=se(t.translate,0,n),e.scale=se(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Bf(e,t,n,r){e.min=se(t.min,n.min,r),e.max=se(t.max,n.max,r)}function vC(e,t,n,r){Bf(e.x,t.x,n.x,r),Bf(e.y,t.y,n.y,r)}function xC(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const wC={duration:.45,ease:[.4,0,.1,1]},Uf=e=>typeof navigator<"u"&&navigator.userAgent.toLowerCase().includes(e),$f=Uf("applewebkit/")&&!Uf("chrome/")?Math.round:ue;function Wf(e){e.min=$f(e.min),e.max=$f(e.max)}function TC(e){Wf(e.x),Wf(e.y)}function Yg(e,t,n){return e==="position"||e==="preserve-aspect"&&!Fl(Mf(t),Mf(n),.2)}const SC=qg({attachResizeListener:(e,t)=>It(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Ia={current:void 0},Xg=qg({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Ia.current){const e=new SC({});e.mount(window),e.setOptions({layoutScroll:!0}),Ia.current=e}return Ia.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),CC={pan:{Feature:VS},drag:{Feature:_S,ProjectionNode:Xg,MeasureLayout:Wg}},kC=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function bC(e){const t=kC.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]}function Wl(e,t,n=1){const[r,i]=bC(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);if(o){const s=o.trim();return Ig(s)?parseFloat(s):s}else return Il(i)?Wl(i,t,n+1):i}function PC(e,{...t},n){const r=e.current;if(!(r instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(i=>{const o=i.get();if(!Il(o))return;const s=Wl(o,r);s&&i.set(s)});for(const i in t){const o=t[i];if(!Il(o))continue;const s=Wl(o,r);s&&(t[i]=s,n||(n={}),n[i]===void 0&&(n[i]=o))}return{target:t,transitionEnd:n}}const EC=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),Zg=e=>EC.has(e),jC=e=>Object.keys(e).some(Zg),Hf=e=>e===Gn||e===D,Gf=(e,t)=>parseFloat(e.split(", ")[t]),Qf=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/);if(i)return Gf(i[1],t);{const o=r.match(/^matrix\((.+)\)$/);return o?Gf(o[1],e):0}},NC=new Set(["x","y","z"]),AC=Hi.filter(e=>!NC.has(e));function RC(e){const t=[];return AC.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const Nr={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),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:Qf(4,13),y:Qf(5,14)};Nr.translateX=Nr.x;Nr.translateY=Nr.y;const LC=(e,t,n)=>{const r=t.measureViewportBox(),i=t.current,o=getComputedStyle(i),{display:s}=o,a={};s==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(c=>{a[c]=Nr[c](r,o)}),t.render();const l=t.measureViewportBox();return n.forEach(c=>{const u=t.getValue(c);u&&u.jump(a[c]),e[c]=Nr[c](l,o)}),e},IC=(e,t,n={},r={})=>{t={...t},r={...r};const i=Object.keys(t).filter(Zg);let o=[],s=!1;const a=[];if(i.forEach(l=>{const c=e.getValue(l);if(!e.hasValue(l))return;let u=n[l],f=Hr(u);const p=t[l];let g;if(ps(p)){const x=p.length,v=p[0]===null?1:0;u=p[v],f=Hr(u);for(let T=v;T=0?window.pageYOffset:null,c=LC(t,e,a);return o.length&&o.forEach(([u,f])=>{e.getValue(u).set(f)}),e.render(),Bs&&l!==null&&window.scrollTo({top:l}),{target:c,transitionEnd:r}}else return{target:t,transitionEnd:r}};function MC(e,t,n,r){return jC(t)?IC(e,t,n,r):{target:t,transitionEnd:r}}const zC=(e,t,n,r)=>{const i=PC(e,t,r);return t=i.target,r=i.transitionEnd,MC(e,t,n,r)},Hl={current:null},Jg={current:!1};function DC(){if(Jg.current=!0,!!Bs)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Hl.current=e.matches;e.addListener(t),t()}else Hl.current=!1}function OC(e,t,n){const{willChange:r}=t;for(const i in t){const o=t[i],s=n[i];if($e(o))e.addValue(i,o),ys(r)&&r.add(i);else if($e(s))e.addValue(i,jr(o,{owner:e})),ys(r)&&r.remove(i);else if(s!==o)if(e.hasValue(i)){const a=e.getValue(i);!a.hasAnimated&&a.set(o)}else{const a=e.getStaticValue(i);e.addValue(i,jr(a!==void 0?a:o,{owner:e}))}}for(const i in n)t[i]===void 0&&e.removeValue(i);return t}const Kf=new WeakMap,ey=Object.keys(Di),_C=ey.length,qf=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],VC=iu.length;class FC{constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,visualState:o},s={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,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.scheduleRender=()=>Z.render(this.render,!1,!0);const{latestValues:a,renderState:l}=o;this.latestValues=a,this.baseTarget={...a},this.initialValues=n.initial?{...a}:{},this.renderState=l,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.options=s,this.isControllingVariants=$s(n),this.isVariantNode=_m(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:c,...u}=this.scrapeMotionValuesFromProps(n,{});for(const f in u){const p=u[f];a[f]!==void 0&&$e(p)&&(p.set(a[f],!1),ys(c)&&c.add(f))}}scrapeMotionValuesFromProps(t,n){return{}}mount(t){this.current=t,Kf.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,r)=>this.bindToMotionValue(r,n)),Jg.current||DC(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Hl.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Kf.delete(this.current),this.projection&&this.projection.unmount(),Bt(this.notifyUpdate),Bt(this.render),this.valueSubscriptions.forEach(t=>t()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features)this.features[t].unmount();this.current=null}bindToMotionValue(t,n){const r=Hn.has(t),i=n.on("change",s=>{this.latestValues[t]=s,this.props.onUpdate&&Z.update(this.notifyUpdate,!1,!0),r&&this.projection&&(this.projection.isTransformDirty=!0)}),o=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{i(),o()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...n},r,i,o){let s,a;for(let l=0;l<_C;l++){const c=ey[l],{isEnabled:u,Feature:f,ProjectionNode:p,MeasureLayout:g}=Di[c];p&&(s=p),u(n)&&(!this.features[c]&&f&&(this.features[c]=new f(this)),g&&(a=g))}if((this.type==="html"||this.type==="svg")&&!this.projection&&s){this.projection=new s(this.latestValues,this.parent&&this.parent.projection);const{layoutId:l,layout:c,drag:u,dragConstraints:f,layoutScroll:p,layoutRoot:g}=n;this.projection.setOptions({layoutId:l,layout:c,alwaysMeasureLayout:!!u||f&&ur(f),visualElement:this,scheduleRender:()=>this.scheduleRender(),animationType:typeof c=="string"?c:"both",initialPromotionConfig:o,layoutScroll:p,layoutRoot:g})}return a}updateFeatures(){for(const t in this.features){const n=this.features[t];n.isMounted?n.update():(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):he()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){n!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,n)),this.values.set(t,n),this.latestValues[t]=n.get()}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=jr(n,{owner:this}),this.addValue(t,r)),r}readValue(t){var n;return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(n=this.getBaseTargetFromProps(this.props,t))!==null&&n!==void 0?n:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props,i=typeof r=="string"||typeof r=="object"?(n=du(this.props,r))===null||n===void 0?void 0:n[t]:void 0;if(r&&i!==void 0)return i;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!$e(o)?o:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Tu),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class ty extends FC{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...r},{transformValues:i},o){let s=rS(r,t||{},this);if(i&&(n&&(n=i(n)),r&&(r=i(r)),s&&(s=i(s))),o){tS(this,r,s);const a=zC(this,r,s,n);n=a.transitionEnd,r=a.target}return{transition:t,transitionEnd:n,...r}}}function BC(e){return window.getComputedStyle(e)}class UC extends ty{constructor(){super(...arguments),this.type="html"}readValueFromInstance(t,n){if(Hn.has(n)){const r=gu(n);return r&&r.default||0}else{const r=BC(t),i=($m(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Ug(t,n)}build(t,n,r,i){su(t,n,r,i.transformTemplate)}scrapeMotionValuesFromProps(t,n){return uu(t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;$e(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(t,n,r,i){qm(t,n,r,i)}}class $C extends ty{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Hn.has(n)){const r=gu(n);return r&&r.default||0}return n=Ym.has(n)?n:nu(n),t.getAttribute(n)}measureInstanceViewportBox(){return he()}scrapeMotionValuesFromProps(t,n){return Zm(t,n)}build(t,n,r,i){lu(t,n,r,this.isSVGTag,i.transformTemplate)}renderInstance(t,n,r,i){Xm(t,n,r,i)}mount(t){this.isSVGTag=cu(t.tagName),super.mount(t)}}const WC=(e,t)=>ou(e)?new $C(t,{enableHardwareAcceleration:!1}):new UC(t,{enableHardwareAcceleration:!0}),HC={layout:{ProjectionNode:Xg,MeasureLayout:Wg}},GC={...vS,..._1,...CC,...HC},U=Gw((e,t)=>b1(e,t,GC,WC));var QC={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const KC=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),De=(e,t)=>{const n=w.forwardRef(({color:r="currentColor",size:i=24,strokeWidth:o=2,absoluteStrokeWidth:s,children:a,...l},c)=>w.createElement("svg",{ref:c,...QC,width:i,height:i,stroke:r,strokeWidth:s?Number(o)*24/Number(i):o,className:`lucide lucide-${KC(e)}`,...l},[...t.map(([u,f])=>w.createElement(u,f)),...(Array.isArray(a)?a:[a])||[]]));return n.displayName=`${e}`,n},xs=De("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),mi=De("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),ny=De("Calendar",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2",key:"eu3xkr"}],["line",{x1:"16",x2:"16",y1:"2",y2:"6",key:"m3sa8f"}],["line",{x1:"8",x2:"8",y1:"2",y2:"6",key:"18kwsl"}],["line",{x1:"3",x2:"21",y1:"10",y2:"10",key:"xt86sb"}]]),qi=De("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]),qC=De("ExternalLink",[["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}],["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["line",{x1:"10",x2:"21",y1:"14",y2:"3",key:"18c3s4"}]]),YC=De("Gamepad2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]),XC=De("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",key:"nb9nel"}]]),ZC=De("Keyboard",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",ry:"2",key:"15u882"}],["path",{d:"M6 8h.001",key:"1ej0i3"}],["path",{d:"M10 8h.001",key:"1x2st2"}],["path",{d:"M14 8h.001",key:"1vkmyp"}],["path",{d:"M18 8h.001",key:"kfsenl"}],["path",{d:"M8 12h.001",key:"1sjpby"}],["path",{d:"M12 12h.001",key:"al75ts"}],["path",{d:"M16 12h.001",key:"931bgk"}],["path",{d:"M7 16h10",key:"wp8him"}]]),JC=De("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]),Yf=De("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]]),ek=De("Quote",[["path",{d:"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z",key:"4rm80e"}],["path",{d:"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z",key:"10za9r"}]]),tk=De("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),ry=De("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),iy=De("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),oy=De("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]);function sy(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;te&&(t=0,r=n,n=new Map)}return{get:function(s){var a=n.get(s);if(a!==void 0)return a;if((a=r.get(s))!==void 0)return i(s,a),a},set:function(s,a){n.has(s)?n.set(s,a):i(s,a)}}}var uy="!";function ck(e){var t=e.separator||":",n=t.length===1,r=t[0],i=t.length;return function(s){for(var a=[],l=0,c=0,u,f=0;fc?u-c:void 0;return{modifiers:a,hasImportantModifier:x,baseClassName:v,maybePostfixModifierPosition:T}}}function uk(e){if(e.length<=1)return e;var t=[],n=[];return e.forEach(function(r){var i=r[0]==="[";i?(t.push.apply(t,n.sort().concat([r])),n=[]):n.push(r)}),t.push.apply(t,n.sort()),t}function dk(e){return{cache:lk(e.cacheSize),splitModifiers:ck(e),...rk(e)}}var fk=/\s+/;function pk(e,t){var n=t.splitModifiers,r=t.getClassGroupId,i=t.getConflictingClassGroupIds,o=new Set;return e.trim().split(fk).map(function(s){var a=n(s),l=a.modifiers,c=a.hasImportantModifier,u=a.baseClassName,f=a.maybePostfixModifierPosition,p=r(f?u.substring(0,f):u),g=!!f;if(!p){if(!f)return{isTailwindClass:!1,originalClassName:s};if(p=r(u),!p)return{isTailwindClass:!1,originalClassName:s};g=!1}var x=uk(l).join(":"),v=c?x+uy:x;return{isTailwindClass:!0,modifierId:v,classGroupId:p,originalClassName:s,hasPostfixModifier:g}}).reverse().filter(function(s){if(!s.isTailwindClass)return!0;var a=s.modifierId,l=s.classGroupId,c=s.hasPostfixModifier,u=a+l;return o.has(u)?!1:(o.add(u),i(l,c).forEach(function(f){return o.add(a+f)}),!0)}).reverse().map(function(s){return s.originalClassName}).join(" ")}function hk(){for(var e=arguments.length,t=new Array(e),n=0;n{let n=!1;const r=e.map(i=>{const o=ep(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...s}=r,a=w.Children.toArray(o),l=a.find(Ik);if(l){const c=l.props.children,u=a.map(f=>f===l?w.Children.count(c)>1?w.Children.only(null):w.isValidElement(c)?c.props.children:null:f);return d.jsx(t,{...s,ref:i,children:w.isValidElement(c)?w.cloneElement(c,void 0,u):null})}return d.jsx(t,{...s,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var Ak=ws("Slot");function Rk(e){const t=w.forwardRef((n,r)=>{const{children:i,...o}=n;if(w.isValidElement(i)){const s=zk(i),a=Mk(o,i.props);return i.type!==w.Fragment&&(a.ref=r?py(r,s):s),w.cloneElement(i,a)}return w.Children.count(i)>1?w.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Lk=Symbol("radix.slottable");function Ik(e){return w.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Lk}function Mk(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const l=o(...a);return i(...a),l}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function zk(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}const tp=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,np=ay,hy=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return np(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:i,defaultVariants:o}=t,s=Object.keys(i).map(c=>{const u=n==null?void 0:n[c],f=o==null?void 0:o[c];if(u===null)return null;const p=tp(u)||tp(f);return i[c][p]}),a=n&&Object.entries(n).reduce((c,u)=>{let[f,p]=u;return p===void 0||(c[f]=p),c},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((c,u)=>{let{class:f,className:p,...g}=u;return Object.entries(g).every(x=>{let[v,T]=x;return Array.isArray(T)?T.includes({...o,...a}[v]):{...o,...a}[v]===T})?[...c,f,p]:c},[]);return np(e,s,l,n==null?void 0:n.class,n==null?void 0:n.className)},Dk=hy("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Le=oe.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},o)=>{const s=r?Ak:"button";return d.jsx(s,{className:Kn(Dk({variant:t,size:n,className:e})),ref:o,...i})});Le.displayName="Button";function Ok(){const[e,t]=w.useState(!1),[n,r]=w.useState(!1),i=Dr(),{language:o,changeLanguage:s,t:a}=We(),l=[{name:a("home"),href:"/"},{name:a("games"),href:"/games"},{name:a("analysis"),href:"/analysis"},{name:a("blog"),href:"/blog"},{name:a("about"),href:"/about"}],c=u=>u==="/"?i.pathname==="/":i.pathname.startsWith(u);return d.jsx("header",{className:"sticky top-0 z-50 glass-effect border-b border-white/10",children:d.jsxs("nav",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[d.jsxs("div",{className:"flex justify-between items-center h-16",children:[d.jsx(ge,{to:"/",className:"flex items-center space-x-2",children:d.jsx(U.div,{whileHover:{scale:1.05},className:"text-2xl font-bold gradient-text",children:"Input Craft"})}),d.jsxs("div",{className:"hidden md:flex items-center space-x-8",children:[l.map(u=>d.jsx(ge,{to:u.href,className:`text-sm font-medium transition-colors hover:text-amber-400 ${c(u.href)?"text-amber-400":"text-gray-300"}`,children:u.name},u.name)),d.jsxs("div",{className:"relative",children:[d.jsxs(Le,{variant:"ghost",size:"sm",onClick:()=>r(!n),className:"flex items-center space-x-1 hover:text-amber-400",children:[d.jsx(XC,{className:"h-4 w-4"}),d.jsx("span",{className:"uppercase",children:o})]}),n&&d.jsx(U.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},className:"absolute right-0 mt-2 w-24 glass-effect rounded-md shadow-lg",children:d.jsxs("div",{className:"py-1",children:[d.jsx("button",{onClick:()=>{s("en"),r(!1)},className:`block w-full text-left px-4 py-2 text-sm hover:bg-white/10 ${o==="en"?"text-amber-400":"text-gray-300"}`,children:"EN"}),d.jsx("button",{onClick:()=>{s("it"),r(!1)},className:`block w-full text-left px-4 py-2 text-sm hover:bg-white/10 ${o==="it"?"text-amber-400":"text-gray-300"}`,children:"IT"})]})})]})]}),d.jsx("div",{className:"md:hidden",children:d.jsx(Le,{variant:"ghost",size:"sm",onClick:()=>t(!e),children:e?d.jsx(iy,{className:"h-6 w-6"}):d.jsx(JC,{className:"h-6 w-6"})})})]}),e&&d.jsx(U.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"md:hidden",children:d.jsxs("div",{className:"px-2 pt-2 pb-3 space-y-1 border-t border-white/10",children:[l.map(u=>d.jsx(ge,{to:u.href,className:`block px-3 py-2 text-base font-medium transition-colors hover:text-amber-400 ${c(u.href)?"text-amber-400":"text-gray-300"}`,onClick:()=>t(!1),children:u.name},u.name)),d.jsx("div",{className:"px-3 py-2",children:d.jsxs("div",{className:"flex space-x-2",children:[d.jsx("button",{onClick:()=>s("en"),className:`px-2 py-1 text-sm rounded ${o==="en"?"bg-amber-500 text-amber-950":"text-gray-300"}`,children:"EN"}),d.jsx("button",{onClick:()=>s("it"),className:`px-2 py-1 text-sm rounded ${o==="it"?"bg-amber-500 text-amber-950":"text-gray-300"}`,children:"IT"})]})})]})})]})})}function _k(){const{t:e}=We(),t=[{name:e("privacy"),href:"/privacy"},{name:e("terms"),href:"/terms"},{name:e("cookies"),href:"/cookies"}],n=[{name:e("home"),href:"/"},{name:e("games"),href:"/games"},{name:e("analysis"),href:"/analysis"},{name:e("blog"),href:"/blog"},{name:e("about"),href:"/about"}];return d.jsx("footer",{className:"glass-effect border-t border-white/10 mt-20",children:d.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:[d.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8",children:[d.jsxs("div",{className:"space-y-4",children:[d.jsx("span",{className:"text-2xl font-bold gradient-text",children:"Input Craft"}),d.jsx("p",{className:"text-gray-400 text-sm",children:e("heroSubtitle")})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("span",{className:"text-lg font-semibold text-white",children:e("sitemap")}),d.jsx("div",{className:"space-y-2",children:n.map(r=>d.jsx(ge,{to:r.href,className:"block text-gray-400 hover:text-amber-400 transition-colors text-sm",children:r.name},r.name))})]}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("span",{className:"text-lg font-semibold text-white",children:e("legal")}),d.jsx("div",{className:"space-y-2",children:t.map(r=>d.jsx(ge,{to:r.href,className:"block text-gray-400 hover:text-amber-400 transition-colors text-sm",children:r.name},r.name))})]})]}),d.jsx("div",{className:"border-t border-white/10 mt-8 pt-8 text-center",children:d.jsx("p",{className:"text-gray-400 text-sm",children:e("footerRights")})})]})})}function qe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(i){if(e==null||e(i),n===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function my(e,t=[]){let n=[];function r(o,s){const a=w.createContext(s),l=n.length;n=[...n,s];const c=f=>{var y;const{scope:p,children:g,...x}=f,v=((y=p==null?void 0:p[e])==null?void 0:y[l])||a,T=w.useMemo(()=>x,Object.values(x));return d.jsx(v.Provider,{value:T,children:g})};c.displayName=o+"Provider";function u(f,p){var v;const g=((v=p==null?void 0:p[e])==null?void 0:v[l])||a,x=w.useContext(g);if(x)return x;if(s!==void 0)return s;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,u]}const i=()=>{const o=n.map(s=>w.createContext(s));return function(a){const l=(a==null?void 0:a[e])||o;return w.useMemo(()=>({[`__scope${e}`]:{...a,[e]:l}}),[a,l])}};return i.scopeName=e,[r,Vk(i,...t)]}function Vk(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const s=r.reduce((a,{useScope:l,scopeName:c})=>{const f=l(o)[`__scope${c}`];return{...a,...f}},{});return w.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}function Fk(e){const t=e+"CollectionProvider",[n,r]=my(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),s=v=>{const{scope:T,children:y}=v,h=oe.useRef(null),m=oe.useRef(new Map).current;return d.jsx(i,{scope:T,itemMap:m,collectionRef:h,children:y})};s.displayName=t;const a=e+"CollectionSlot",l=ws(a),c=oe.forwardRef((v,T)=>{const{scope:y,children:h}=v,m=o(a,y),S=Bn(T,m.collectionRef);return d.jsx(l,{ref:S,children:h})});c.displayName=a;const u=e+"CollectionItemSlot",f="data-radix-collection-item",p=ws(u),g=oe.forwardRef((v,T)=>{const{scope:y,children:h,...m}=v,S=oe.useRef(null),C=Bn(T,S),b=o(u,y);return oe.useEffect(()=>(b.itemMap.set(S,{ref:S,...m}),()=>void b.itemMap.delete(S))),d.jsx(p,{[f]:"",ref:C,children:h})});g.displayName=u;function x(v){const T=o(e+"CollectionConsumer",v);return oe.useCallback(()=>{const h=T.collectionRef.current;if(!h)return[];const m=Array.from(h.querySelectorAll(`[${f}]`));return Array.from(T.itemMap.values()).sort((b,k)=>m.indexOf(b.ref.current)-m.indexOf(k.ref.current))},[T.collectionRef,T.itemMap])}return[{Provider:s,Slot:c,ItemSlot:g},x,r]}var Bk=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Et=Bk.reduce((e,t)=>{const n=ws(`Primitive.${t}`),r=w.forwardRef((i,o)=>{const{asChild:s,...a}=i,l=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(l,{...a,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function gy(e,t){e&&_s.flushSync(()=>e.dispatchEvent(t))}function Un(e){const t=w.useRef(e);return w.useEffect(()=>{t.current=e}),w.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Uk(e,t=globalThis==null?void 0:globalThis.document){const n=Un(e);w.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var $k="DismissableLayer",Kl="dismissableLayer.update",Wk="dismissableLayer.pointerDownOutside",Hk="dismissableLayer.focusOutside",rp,yy=w.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),vy=w.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:s,onDismiss:a,...l}=e,c=w.useContext(yy),[u,f]=w.useState(null),p=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,g]=w.useState({}),x=Bn(t,k=>f(k)),v=Array.from(c.layers),[T]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),y=v.indexOf(T),h=u?v.indexOf(u):-1,m=c.layersWithOutsidePointerEventsDisabled.size>0,S=h>=y,C=Qk(k=>{const P=k.target,L=[...c.branches].some(I=>I.contains(P));!S||L||(i==null||i(k),s==null||s(k),k.defaultPrevented||a==null||a())},p),b=Kk(k=>{const P=k.target;[...c.branches].some(I=>I.contains(P))||(o==null||o(k),s==null||s(k),k.defaultPrevented||a==null||a())},p);return Uk(k=>{h===c.layers.size-1&&(r==null||r(k),!k.defaultPrevented&&a&&(k.preventDefault(),a()))},p),w.useEffect(()=>{if(u)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(rp=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),ip(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=rp)}},[u,p,n,c]),w.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),ip())},[u,c]),w.useEffect(()=>{const k=()=>g({});return document.addEventListener(Kl,k),()=>document.removeEventListener(Kl,k)},[]),d.jsx(Et.div,{...l,ref:x,style:{pointerEvents:m?S?"auto":"none":void 0,...e.style},onFocusCapture:qe(e.onFocusCapture,b.onFocusCapture),onBlurCapture:qe(e.onBlurCapture,b.onBlurCapture),onPointerDownCapture:qe(e.onPointerDownCapture,C.onPointerDownCapture)})});vy.displayName=$k;var Gk="DismissableLayerBranch",xy=w.forwardRef((e,t)=>{const n=w.useContext(yy),r=w.useRef(null),i=Bn(t,r);return w.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),d.jsx(Et.div,{...e,ref:i})});xy.displayName=Gk;function Qk(e,t=globalThis==null?void 0:globalThis.document){const n=Un(e),r=w.useRef(!1),i=w.useRef(()=>{});return w.useEffect(()=>{const o=a=>{if(a.target&&!r.current){let l=function(){wy(Wk,n,c,{discrete:!0})};const c={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Kk(e,t=globalThis==null?void 0:globalThis.document){const n=Un(e),r=w.useRef(!1);return w.useEffect(()=>{const i=o=>{o.target&&!r.current&&wy(Hk,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function ip(){const e=new CustomEvent(Kl);document.dispatchEvent(e)}function wy(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?gy(i,o):i.dispatchEvent(o)}var qk=vy,Yk=xy,_i=globalThis!=null&&globalThis.document?w.useLayoutEffect:()=>{},Xk="Portal",Ty=w.forwardRef((e,t)=>{var a;const{container:n,...r}=e,[i,o]=w.useState(!1);_i(()=>o(!0),[]);const s=n||i&&((a=globalThis==null?void 0:globalThis.document)==null?void 0:a.body);return s?Rx.createPortal(d.jsx(Et.div,{...r,ref:t}),s):null});Ty.displayName=Xk;function Zk(e,t){return w.useReducer((n,r)=>t[n][r]??n,e)}var Sy=e=>{const{present:t,children:n}=e,r=Jk(t),i=typeof n=="function"?n({present:r.isPresent}):w.Children.only(n),o=Bn(r.ref,eb(i));return typeof n=="function"||r.isPresent?w.cloneElement(i,{ref:o}):null};Sy.displayName="Presence";function Jk(e){const[t,n]=w.useState(),r=w.useRef(null),i=w.useRef(e),o=w.useRef("none"),s=e?"mounted":"unmounted",[a,l]=Zk(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return w.useEffect(()=>{const c=So(r.current);o.current=a==="mounted"?c:"none"},[a]),_i(()=>{const c=r.current,u=i.current;if(u!==e){const p=o.current,g=So(c);e?l("MOUNT"):g==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(u&&p!==g?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),_i(()=>{if(t){let c;const u=t.ownerDocument.defaultView??window,f=g=>{const v=So(r.current).includes(g.animationName);if(g.target===t&&v&&(l("ANIMATION_END"),!i.current)){const T=t.style.animationFillMode;t.style.animationFillMode="forwards",c=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=T)})}},p=g=>{g.target===t&&(o.current=So(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{u.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:w.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function So(e){return(e==null?void 0:e.animationName)||"none"}function eb(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var tb=Tp[" useInsertionEffect ".trim().toString()]||_i;function nb({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,s]=rb({defaultProp:t,onChange:n}),a=e!==void 0,l=a?e:i;{const u=w.useRef(e!==void 0);w.useEffect(()=>{const f=u.current;f!==a&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=a},[a,r])}const c=w.useCallback(u=>{var f;if(a){const p=ib(u)?u(e):u;p!==e&&((f=s.current)==null||f.call(s,p))}else o(u)},[a,e,o,s]);return[l,c]}function rb({defaultProp:e,onChange:t}){const[n,r]=w.useState(e),i=w.useRef(n),o=w.useRef(t);return tb(()=>{o.current=t},[t]),w.useEffect(()=>{var s;i.current!==n&&((s=o.current)==null||s.call(o,n),i.current=n)},[n,i]),[n,r,o]}function ib(e){return typeof e=="function"}var ob=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),sb="VisuallyHidden",Cu=w.forwardRef((e,t)=>d.jsx(Et.span,{...e,ref:t,style:{...ob,...e.style}}));Cu.displayName=sb;var ku="ToastProvider",[bu,ab,lb]=Fk("Toast"),[Cy,QP]=my("Toast",[lb]),[cb,Qs]=Cy(ku),ky=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:i="right",swipeThreshold:o=50,children:s}=e,[a,l]=w.useState(null),[c,u]=w.useState(0),f=w.useRef(!1),p=w.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${ku}\`. Expected non-empty \`string\`.`),d.jsx(bu.Provider,{scope:t,children:d.jsx(cb,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:o,toastCount:c,viewport:a,onViewportChange:l,onToastAdd:w.useCallback(()=>u(g=>g+1),[]),onToastRemove:w.useCallback(()=>u(g=>g-1),[]),isFocusedToastEscapeKeyDownRef:f,isClosePausedRef:p,children:s})})};ky.displayName=ku;var by="ToastViewport",ub=["F8"],ql="toast.viewportPause",Yl="toast.viewportResume",Py=w.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=ub,label:i="Notifications ({hotkey})",...o}=e,s=Qs(by,n),a=ab(n),l=w.useRef(null),c=w.useRef(null),u=w.useRef(null),f=w.useRef(null),p=Bn(t,f,s.onViewportChange),g=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),x=s.toastCount>0;w.useEffect(()=>{const T=y=>{var m;r.length!==0&&r.every(S=>y[S]||y.code===S)&&((m=f.current)==null||m.focus())};return document.addEventListener("keydown",T),()=>document.removeEventListener("keydown",T)},[r]),w.useEffect(()=>{const T=l.current,y=f.current;if(x&&T&&y){const h=()=>{if(!s.isClosePausedRef.current){const b=new CustomEvent(ql);y.dispatchEvent(b),s.isClosePausedRef.current=!0}},m=()=>{if(s.isClosePausedRef.current){const b=new CustomEvent(Yl);y.dispatchEvent(b),s.isClosePausedRef.current=!1}},S=b=>{!T.contains(b.relatedTarget)&&m()},C=()=>{T.contains(document.activeElement)||m()};return T.addEventListener("focusin",h),T.addEventListener("focusout",S),T.addEventListener("pointermove",h),T.addEventListener("pointerleave",C),window.addEventListener("blur",h),window.addEventListener("focus",m),()=>{T.removeEventListener("focusin",h),T.removeEventListener("focusout",S),T.removeEventListener("pointermove",h),T.removeEventListener("pointerleave",C),window.removeEventListener("blur",h),window.removeEventListener("focus",m)}}},[x,s.isClosePausedRef]);const v=w.useCallback(({tabbingDirection:T})=>{const h=a().map(m=>{const S=m.ref.current,C=[S,...Cb(S)];return T==="forwards"?C:C.reverse()});return(T==="forwards"?h.reverse():h).flat()},[a]);return w.useEffect(()=>{const T=f.current;if(T){const y=h=>{var C,b,k;const m=h.altKey||h.ctrlKey||h.metaKey;if(h.key==="Tab"&&!m){const P=document.activeElement,L=h.shiftKey;if(h.target===T&&L){(C=c.current)==null||C.focus();return}const z=v({tabbingDirection:L?"backwards":"forwards"}),re=z.findIndex(A=>A===P);Ma(z.slice(re+1))?h.preventDefault():L?(b=c.current)==null||b.focus():(k=u.current)==null||k.focus()}};return T.addEventListener("keydown",y),()=>T.removeEventListener("keydown",y)}},[a,v]),d.jsxs(Yk,{ref:l,role:"region","aria-label":i.replace("{hotkey}",g),tabIndex:-1,style:{pointerEvents:x?void 0:"none"},children:[x&&d.jsx(Xl,{ref:c,onFocusFromOutsideViewport:()=>{const T=v({tabbingDirection:"forwards"});Ma(T)}}),d.jsx(bu.Slot,{scope:n,children:d.jsx(Et.ol,{tabIndex:-1,...o,ref:p})}),x&&d.jsx(Xl,{ref:u,onFocusFromOutsideViewport:()=>{const T=v({tabbingDirection:"backwards"});Ma(T)}})]})});Py.displayName=by;var Ey="ToastFocusProxy",Xl=w.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,o=Qs(Ey,n);return d.jsx(Cu,{"aria-hidden":!0,tabIndex:0,...i,ref:t,style:{position:"fixed"},onFocus:s=>{var c;const a=s.relatedTarget;!((c=o.viewport)!=null&&c.contains(a))&&r()}})});Xl.displayName=Ey;var Yi="Toast",db="toast.swipeStart",fb="toast.swipeMove",pb="toast.swipeCancel",hb="toast.swipeEnd",jy=w.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:i,onOpenChange:o,...s}=e,[a,l]=nb({prop:r,defaultProp:i??!0,onChange:o,caller:Yi});return d.jsx(Sy,{present:n||a,children:d.jsx(yb,{open:a,...s,ref:t,onClose:()=>l(!1),onPause:Un(e.onPause),onResume:Un(e.onResume),onSwipeStart:qe(e.onSwipeStart,c=>{c.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:qe(e.onSwipeMove,c=>{const{x:u,y:f}=c.detail.delta;c.currentTarget.setAttribute("data-swipe","move"),c.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${u}px`),c.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${f}px`)}),onSwipeCancel:qe(e.onSwipeCancel,c=>{c.currentTarget.setAttribute("data-swipe","cancel"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),c.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:qe(e.onSwipeEnd,c=>{const{x:u,y:f}=c.detail.delta;c.currentTarget.setAttribute("data-swipe","end"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),c.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${u}px`),c.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${f}px`),l(!1)})})})});jy.displayName=Yi;var[mb,gb]=Cy(Yi,{onClose(){}}),yb=w.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:i,open:o,onClose:s,onEscapeKeyDown:a,onPause:l,onResume:c,onSwipeStart:u,onSwipeMove:f,onSwipeCancel:p,onSwipeEnd:g,...x}=e,v=Qs(Yi,n),[T,y]=w.useState(null),h=Bn(t,A=>y(A)),m=w.useRef(null),S=w.useRef(null),C=i||v.duration,b=w.useRef(0),k=w.useRef(C),P=w.useRef(0),{onToastAdd:L,onToastRemove:I}=v,H=Un(()=>{var J;(T==null?void 0:T.contains(document.activeElement))&&((J=v.viewport)==null||J.focus()),s()}),z=w.useCallback(A=>{!A||A===1/0||(window.clearTimeout(P.current),b.current=new Date().getTime(),P.current=window.setTimeout(H,A))},[H]);w.useEffect(()=>{const A=v.viewport;if(A){const J=()=>{z(k.current),c==null||c()},B=()=>{const de=new Date().getTime()-b.current;k.current=k.current-de,window.clearTimeout(P.current),l==null||l()};return A.addEventListener(ql,B),A.addEventListener(Yl,J),()=>{A.removeEventListener(ql,B),A.removeEventListener(Yl,J)}}},[v.viewport,C,l,c,z]),w.useEffect(()=>{o&&!v.isClosePausedRef.current&&z(C)},[o,C,v.isClosePausedRef,z]),w.useEffect(()=>(L(),()=>I()),[L,I]);const re=w.useMemo(()=>T?zy(T):null,[T]);return v.viewport?d.jsxs(d.Fragment,{children:[re&&d.jsx(vb,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite","aria-atomic":!0,children:re}),d.jsx(mb,{scope:n,onClose:H,children:_s.createPortal(d.jsx(bu.ItemSlot,{scope:n,children:d.jsx(qk,{asChild:!0,onEscapeKeyDown:qe(a,()=>{v.isFocusedToastEscapeKeyDownRef.current||H(),v.isFocusedToastEscapeKeyDownRef.current=!1}),children:d.jsx(Et.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":o?"open":"closed","data-swipe-direction":v.swipeDirection,...x,ref:h,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:qe(e.onKeyDown,A=>{A.key==="Escape"&&(a==null||a(A.nativeEvent),A.nativeEvent.defaultPrevented||(v.isFocusedToastEscapeKeyDownRef.current=!0,H()))}),onPointerDown:qe(e.onPointerDown,A=>{A.button===0&&(m.current={x:A.clientX,y:A.clientY})}),onPointerMove:qe(e.onPointerMove,A=>{if(!m.current)return;const J=A.clientX-m.current.x,B=A.clientY-m.current.y,de=!!S.current,j=["left","right"].includes(v.swipeDirection),R=["left","up"].includes(v.swipeDirection)?Math.min:Math.max,O=j?R(0,J):0,M=j?0:R(0,B),$=A.pointerType==="touch"?10:2,Q={x:O,y:M},He={originalEvent:A,delta:Q};de?(S.current=Q,Co(fb,f,He,{discrete:!1})):op(Q,v.swipeDirection,$)?(S.current=Q,Co(db,u,He,{discrete:!1}),A.target.setPointerCapture(A.pointerId)):(Math.abs(J)>$||Math.abs(B)>$)&&(m.current=null)}),onPointerUp:qe(e.onPointerUp,A=>{const J=S.current,B=A.target;if(B.hasPointerCapture(A.pointerId)&&B.releasePointerCapture(A.pointerId),S.current=null,m.current=null,J){const de=A.currentTarget,j={originalEvent:A,delta:J};op(J,v.swipeDirection,v.swipeThreshold)?Co(hb,g,j,{discrete:!0}):Co(pb,p,j,{discrete:!0}),de.addEventListener("click",R=>R.preventDefault(),{once:!0})}})})})}),v.viewport)})]}):null}),vb=e=>{const{__scopeToast:t,children:n,...r}=e,i=Qs(Yi,t),[o,s]=w.useState(!1),[a,l]=w.useState(!1);return Tb(()=>s(!0)),w.useEffect(()=>{const c=window.setTimeout(()=>l(!0),1e3);return()=>window.clearTimeout(c)},[]),a?null:d.jsx(Ty,{asChild:!0,children:d.jsx(Cu,{...r,children:o&&d.jsxs(d.Fragment,{children:[i.label," ",n]})})})},xb="ToastTitle",Ny=w.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return d.jsx(Et.div,{...r,ref:t})});Ny.displayName=xb;var wb="ToastDescription",Ay=w.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return d.jsx(Et.div,{...r,ref:t})});Ay.displayName=wb;var Ry="ToastAction",Ly=w.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?d.jsx(My,{altText:n,asChild:!0,children:d.jsx(Pu,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Ry}\`. Expected non-empty \`string\`.`),null)});Ly.displayName=Ry;var Iy="ToastClose",Pu=w.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,i=gb(Iy,n);return d.jsx(My,{asChild:!0,children:d.jsx(Et.button,{type:"button",...r,ref:t,onClick:qe(e.onClick,i.onClose)})})});Pu.displayName=Iy;var My=w.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...i}=e;return d.jsx(Et.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...i,ref:t})});function zy(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),Sb(r)){const i=r.ariaHidden||r.hidden||r.style.display==="none",o=r.dataset.radixToastAnnounceExclude==="";if(!i)if(o){const s=r.dataset.radixToastAnnounceAlt;s&&t.push(s)}else t.push(...zy(r))}}),t}function Co(e,t,n,{discrete:r}){const i=n.originalEvent.currentTarget,o=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?gy(i,o):i.dispatchEvent(o)}var op=(e,t,n=0)=>{const r=Math.abs(e.x),i=Math.abs(e.y),o=r>i;return t==="left"||t==="right"?o&&r>n:!o&&i>n};function Tb(e=()=>{}){const t=Un(e);_i(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function Sb(e){return e.nodeType===e.ELEMENT_NODE}function Cb(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ma(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var kb=ky,Dy=Py,Oy=jy,_y=Ny,Vy=Ay,Fy=Ly,By=Pu;const bb=kb,Uy=oe.forwardRef(({className:e,...t},n)=>d.jsx(Dy,{ref:n,className:Kn("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));Uy.displayName=Dy.displayName;const Pb=hy("data-[swipe=move]:transition-none group relative pointer-events-auto flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full",{variants:{variant:{default:"bg-background border",destructive:"group destructive border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),$y=oe.forwardRef(({className:e,variant:t,...n},r)=>d.jsx(Oy,{ref:r,className:Kn(Pb({variant:t}),e),...n}));$y.displayName=Oy.displayName;const Eb=oe.forwardRef(({className:e,...t},n)=>d.jsx(Fy,{ref:n,className:Kn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-destructive/30 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));Eb.displayName=Fy.displayName;const Wy=oe.forwardRef(({className:e,...t},n)=>d.jsx(By,{ref:n,className:Kn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:d.jsx(iy,{className:"h-4 w-4"})}));Wy.displayName=By.displayName;const Hy=oe.forwardRef(({className:e,...t},n)=>d.jsx(_y,{ref:n,className:Kn("text-sm font-semibold",e),...t}));Hy.displayName=_y.displayName;const Gy=oe.forwardRef(({className:e,...t},n)=>d.jsx(Vy,{ref:n,className:Kn("text-sm opacity-90",e),...t}));Gy.displayName=Vy.displayName;const jb=1;let za=0;function Nb(){return za=(za+1)%Number.MAX_VALUE,za.toString()}const Ae={state:{toasts:[]},listeners:[],getState:()=>Ae.state,setState:e=>{typeof e=="function"?Ae.state=e(Ae.state):Ae.state={...Ae.state,...e},Ae.listeners.forEach(t=>t(Ae.state))},subscribe:e=>(Ae.listeners.push(e),()=>{Ae.listeners=Ae.listeners.filter(t=>t!==e)})},Ab=({...e})=>{const t=Nb(),n=i=>Ae.setState(o=>({...o,toasts:o.toasts.map(s=>s.id===t?{...s,...i}:s)})),r=()=>Ae.setState(i=>({...i,toasts:i.toasts.filter(o=>o.id!==t)}));return Ae.setState(i=>({...i,toasts:[{...e,id:t,dismiss:r},...i.toasts].slice(0,jb)})),{id:t,dismiss:r,update:n}};function Rb(){const[e,t]=w.useState(Ae.getState());return w.useEffect(()=>Ae.subscribe(r=>{t(r)}),[]),w.useEffect(()=>{const n=[];return e.toasts.forEach(r=>{if(r.duration===1/0)return;const i=setTimeout(()=>{r.dismiss()},r.duration||5e3);n.push(i)}),()=>{n.forEach(r=>clearTimeout(r))}},[e.toasts]),{toast:Ab,toasts:e.toasts}}function Lb(){const{toasts:e}=Rb();return d.jsxs(bb,{children:[e.map(({id:t,title:n,description:r,action:i,...o})=>d.jsxs($y,{...o,children:[d.jsxs("div",{className:"grid gap-1",children:[n&&d.jsx(Hy,{children:n}),r&&d.jsx(Gy,{children:r})]}),i,d.jsx(Wy,{})]},t)),d.jsx(Uy,{})]})}function Ib(){return d.jsxs("div",{className:"min-h-screen flex flex-col",children:[d.jsx(Ok,{}),d.jsx("main",{className:"flex-1",children:d.jsx(Sw,{})}),d.jsx(_k,{}),d.jsx(Lb,{})]})}var Qy={exports:{}},Mb="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",zb=Mb,Db=zb;function Ky(){}function qy(){}qy.resetWarningCache=Ky;var Ob=function(){function e(r,i,o,s,a,l){if(l!==Db){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:qy,resetWarningCache:Ky};return n.PropTypes=n,n};Qy.exports=Ob();var _b=Qy.exports;const ee=Ar(_b);function Vb(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Yy=w,Fb=Vb(Yy);function sp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bb(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Ub=!!(typeof window<"u"&&window.document&&window.document.createElement);function $b(e,t,n){if(typeof e!="function")throw new Error("Expected reducePropsToState to be a function.");if(typeof t!="function")throw new Error("Expected handleStateChangeOnClient to be a function.");if(typeof n<"u"&&typeof n!="function")throw new Error("Expected mapStateOnServer to either be undefined or a function.");function r(i){return i.displayName||i.name||"Component"}return function(o){if(typeof o!="function")throw new Error("Expected WrappedComponent to be a React component.");var s=[],a;function l(){a=e(s.map(function(u){return u.props})),c.canUseDOM?t(a):n&&(a=n(a))}var c=function(u){Bb(f,u);function f(){return u.apply(this,arguments)||this}f.peek=function(){return a},f.rewind=function(){if(f.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var x=a;return a=void 0,s=[],x};var p=f.prototype;return p.UNSAFE_componentWillMount=function(){s.push(this),l()},p.componentDidUpdate=function(){l()},p.componentWillUnmount=function(){var x=s.indexOf(this);s.splice(x,1),l()},p.render=function(){return Fb.createElement(o,this.props)},f}(Yy.PureComponent);return sp(c,"displayName","SideEffect("+r(o)+")"),sp(c,"canUseDOM",Ub),c}}var Wb=$b;const Hb=Ar(Wb);var Gb=typeof Element<"u",Qb=typeof Map=="function",Kb=typeof Set=="function",qb=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function _o(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!_o(e[r],t[r]))return!1;return!0}var o;if(Qb&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(o=e.entries();!(r=o.next()).done;)if(!t.has(r.value[0]))return!1;for(o=e.entries();!(r=o.next()).done;)if(!_o(r.value[1],t.get(r.value[0])))return!1;return!0}if(Kb&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(o=e.entries();!(r=o.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if(qb&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;if(Gb&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((i[r]==="_owner"||i[r]==="__v"||i[r]==="__o")&&e.$$typeof)&&!_o(e[i[r]],t[i[r]]))return!1;return!0}return e!==e&&t!==t}var Yb=function(t,n){try{return _o(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const Xb=Ar(Yb);/* object-assign (c) Sindre Sorhus @license MIT */var ap=Object.getOwnPropertySymbols,Zb=Object.prototype.hasOwnProperty,Jb=Object.prototype.propertyIsEnumerable;function eP(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function tP(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(o){return t[o]});if(r.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(o){i[o]=o}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var nP=tP()?Object.assign:function(e,t){for(var n,r=eP(e),i,o=1;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},uP=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&(typeof t=="object"||typeof t=="function")?t:e},Zl=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return n===!1?String(t):String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},dP=function(t){var n=wr(t,_.TITLE),r=wr(t,Vi.TITLE_TEMPLATE);if(r&&n)return r.replace(/%s/g,function(){return Array.isArray(n)?n.join(""):n});var i=wr(t,Vi.DEFAULT_TITLE);return n||i||void 0},fP=function(t){return wr(t,Vi.ON_CHANGE_CLIENT_STATE)||function(){}},Da=function(t,n){return n.filter(function(r){return typeof r[t]<"u"}).map(function(r){return r[t]}).reduce(function(r,i){return Oe({},r,i)},{})},pP=function(t,n){return n.filter(function(r){return typeof r[_.BASE]<"u"}).map(function(r){return r[_.BASE]}).reverse().reduce(function(r,i){if(!r.length)for(var o=Object.keys(i),s=0;s=0;r--){var i=t[r];if(i.hasOwnProperty(n))return i[n]}return null},hP=function(t){return{baseTag:pP([te.HREF,te.TARGET],t),bodyAttributes:Da(zn.BODY,t),defer:wr(t,Vi.DEFER),encode:wr(t,Vi.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Da(zn.HTML,t),linkTags:qr(_.LINK,[te.REL,te.HREF],t),metaTags:qr(_.META,[te.NAME,te.CHARSET,te.HTTPEQUIV,te.PROPERTY,te.ITEM_PROP],t),noscriptTags:qr(_.NOSCRIPT,[te.INNER_HTML],t),onChangeClientState:fP(t),scriptTags:qr(_.SCRIPT,[te.SRC,te.INNER_HTML],t),styleTags:qr(_.STYLE,[te.CSS_TEXT],t),title:dP(t),titleAttributes:Da(zn.TITLE,t)}},Jl=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout(function(){Jl(t)},0)}}(),cp=function(t){return clearTimeout(t)},mP=typeof window<"u"?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||Jl:global.requestAnimationFrame||Jl,gP=typeof window<"u"?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||cp:global.cancelAnimationFrame||cp,yP=function(t){return console&&typeof console.warn=="function"&&console.warn(t)},Yr=null,vP=function(t){Yr&&gP(Yr),t.defer?Yr=mP(function(){up(t,function(){Yr=null})}):(up(t),Yr=null)},up=function(t,n){var r=t.baseTag,i=t.bodyAttributes,o=t.htmlAttributes,s=t.linkTags,a=t.metaTags,l=t.noscriptTags,c=t.onChangeClientState,u=t.scriptTags,f=t.styleTags,p=t.title,g=t.titleAttributes;ec(_.BODY,i),ec(_.HTML,o),xP(p,g);var x={baseTag:Xn(_.BASE,r),linkTags:Xn(_.LINK,s),metaTags:Xn(_.META,a),noscriptTags:Xn(_.NOSCRIPT,l),scriptTags:Xn(_.SCRIPT,u),styleTags:Xn(_.STYLE,f)},v={},T={};Object.keys(x).forEach(function(y){var h=x[y],m=h.newTags,S=h.oldTags;m.length&&(v[y]=m),S.length&&(T[y]=x[y].oldTags)}),n&&n(),c(t,v,T)},Xy=function(t){return Array.isArray(t)?t.join(""):t},xP=function(t,n){typeof t<"u"&&document.title!==t&&(document.title=Xy(t)),ec(_.TITLE,n)},ec=function(t,n){var r=document.getElementsByTagName(t)[0];if(r){for(var i=r.getAttribute(gt),o=i?i.split(","):[],s=[].concat(o),a=Object.keys(n),l=0;l=0;p--)r.removeAttribute(s[p]);o.length===s.length?r.removeAttribute(gt):r.getAttribute(gt)!==a.join(",")&&r.setAttribute(gt,a.join(","))}},Xn=function(t,n){var r=document.head||document.querySelector(_.HEAD),i=r.querySelectorAll(t+"["+gt+"]"),o=Array.prototype.slice.call(i),s=[],a=void 0;return n&&n.length&&n.forEach(function(l){var c=document.createElement(t);for(var u in l)if(l.hasOwnProperty(u))if(u===te.INNER_HTML)c.innerHTML=l.innerHTML;else if(u===te.CSS_TEXT)c.styleSheet?c.styleSheet.cssText=l.cssText:c.appendChild(document.createTextNode(l.cssText));else{var f=typeof l[u]>"u"?"":l[u];c.setAttribute(u,f)}c.setAttribute(gt,"true"),o.some(function(p,g){return a=g,c.isEqualNode(p)})?o.splice(a,1):s.push(c)}),o.forEach(function(l){return l.parentNode.removeChild(l)}),s.forEach(function(l){return r.appendChild(l)}),{oldTags:o,newTags:s}},Zy=function(t){return Object.keys(t).reduce(function(n,r){var i=typeof t[r]<"u"?r+'="'+t[r]+'"':""+r;return n?n+" "+i:i},"")},wP=function(t,n,r,i){var o=Zy(r),s=Xy(n);return o?"<"+t+" "+gt+'="true" '+o+">"+Zl(s,i)+"":"<"+t+" "+gt+'="true">'+Zl(s,i)+""},TP=function(t,n,r){return n.reduce(function(i,o){var s=Object.keys(o).filter(function(c){return!(c===te.INNER_HTML||c===te.CSS_TEXT)}).reduce(function(c,u){var f=typeof o[u]>"u"?u:u+'="'+Zl(o[u],r)+'"';return c?c+" "+f:f},""),a=o.innerHTML||o.cssText||"",l=oP.indexOf(t)===-1;return i+"<"+t+" "+gt+'="true" '+s+(l?"/>":">"+a+"")},"")},Jy=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(t).reduce(function(r,i){return r[Ts[i]||i]=t[i],r},n)},SP=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(t).reduce(function(r,i){return r[iP[i]||i]=t[i],r},n)},CP=function(t,n,r){var i,o=(i={key:n},i[gt]=!0,i),s=Jy(r,o);return[oe.createElement(_.TITLE,s,n)]},kP=function(t,n){return n.map(function(r,i){var o,s=(o={key:i},o[gt]=!0,o);return Object.keys(r).forEach(function(a){var l=Ts[a]||a;if(l===te.INNER_HTML||l===te.CSS_TEXT){var c=r.innerHTML||r.cssText;s.dangerouslySetInnerHTML={__html:c}}else s[l]=r[a]}),oe.createElement(t,s)})},jt=function(t,n,r){switch(t){case _.TITLE:return{toComponent:function(){return CP(t,n.title,n.titleAttributes)},toString:function(){return wP(t,n.title,n.titleAttributes,r)}};case zn.BODY:case zn.HTML:return{toComponent:function(){return Jy(n)},toString:function(){return Zy(n)}};default:return{toComponent:function(){return kP(t,n)},toString:function(){return TP(t,n,r)}}}},ev=function(t){var n=t.baseTag,r=t.bodyAttributes,i=t.encode,o=t.htmlAttributes,s=t.linkTags,a=t.metaTags,l=t.noscriptTags,c=t.scriptTags,u=t.styleTags,f=t.title,p=f===void 0?"":f,g=t.titleAttributes;return{base:jt(_.BASE,n,i),bodyAttributes:jt(zn.BODY,r,i),htmlAttributes:jt(zn.HTML,o,i),link:jt(_.LINK,s,i),meta:jt(_.META,a,i),noscript:jt(_.NOSCRIPT,l,i),script:jt(_.SCRIPT,c,i),style:jt(_.STYLE,u,i),title:jt(_.TITLE,{title:p,titleAttributes:g},i)}},bP=function(t){var n,r;return r=n=function(i){cP(o,i);function o(){return aP(this,o),uP(this,i.apply(this,arguments))}return o.prototype.shouldComponentUpdate=function(a){return!Xb(this.props,a)},o.prototype.mapNestedChildrenToProps=function(a,l){if(!l)return null;switch(a.type){case _.SCRIPT:case _.NOSCRIPT:return{innerHTML:l};case _.STYLE:return{cssText:l}}throw new Error("<"+a.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},o.prototype.flattenArrayTypeChildren=function(a){var l,c=a.child,u=a.arrayTypeChildren,f=a.newChildProps,p=a.nestedChildren;return Oe({},u,(l={},l[c.type]=[].concat(u[c.type]||[],[Oe({},f,this.mapNestedChildrenToProps(c,p))]),l))},o.prototype.mapObjectTypeChildren=function(a){var l,c,u=a.child,f=a.newProps,p=a.newChildProps,g=a.nestedChildren;switch(u.type){case _.TITLE:return Oe({},f,(l={},l[u.type]=g,l.titleAttributes=Oe({},p),l));case _.BODY:return Oe({},f,{bodyAttributes:Oe({},p)});case _.HTML:return Oe({},f,{htmlAttributes:Oe({},p)})}return Oe({},f,(c={},c[u.type]=Oe({},p),c))},o.prototype.mapArrayTypeChildrenToProps=function(a,l){var c=Oe({},l);return Object.keys(a).forEach(function(u){var f;c=Oe({},c,(f={},f[u]=a[u],f))}),c},o.prototype.warnOnInvalidChildren=function(a,l){return!0},o.prototype.mapChildrenToProps=function(a,l){var c=this,u={};return oe.Children.forEach(a,function(f){if(!(!f||!f.props)){var p=f.props,g=p.children,x=lp(p,["children"]),v=SP(x);switch(c.warnOnInvalidChildren(f,g),f.type){case _.LINK:case _.META:case _.NOSCRIPT:case _.SCRIPT:case _.STYLE:u=c.flattenArrayTypeChildren({child:f,arrayTypeChildren:u,newChildProps:v,nestedChildren:g});break;default:l=c.mapObjectTypeChildren({child:f,newProps:l,newChildProps:v,nestedChildren:g});break}}}),l=this.mapArrayTypeChildrenToProps(u,l),l},o.prototype.render=function(){var a=this.props,l=a.children,c=lp(a,["children"]),u=Oe({},c);return l&&(u=this.mapChildrenToProps(l,u)),oe.createElement(t,u)},lP(o,null,[{key:"canUseDOM",set:function(a){t.canUseDOM=a}}]),o}(oe.Component),n.propTypes={base:ee.object,bodyAttributes:ee.object,children:ee.oneOfType([ee.arrayOf(ee.node),ee.node]),defaultTitle:ee.string,defer:ee.bool,encodeSpecialCharacters:ee.bool,htmlAttributes:ee.object,link:ee.arrayOf(ee.object),meta:ee.arrayOf(ee.object),noscript:ee.arrayOf(ee.object),onChangeClientState:ee.func,script:ee.arrayOf(ee.object),style:ee.arrayOf(ee.object),title:ee.string,titleAttributes:ee.object,titleTemplate:ee.string},n.defaultProps={defer:!0,encodeSpecialCharacters:!0},n.peek=t.peek,n.rewind=function(){var i=t.rewind();return i||(i=ev({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),i},r},PP=function(){return null},EP=Hb(hP,vP,ev)(PP),et=bP(EP);et.renderStatic=et.rewind;function jP(){const e=[{Icon:YC,delay:0},{Icon:tk,delay:.5},{Icon:ZC,delay:1}];return d.jsx("div",{className:"flex justify-center items-center space-x-8 my-12",children:e.map(({Icon:t,delay:n},r)=>d.jsx(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:n,duration:.6},className:"relative",children:d.jsx(U.div,{animate:{y:[0,-10,0],rotate:[0,5,-5,0]},transition:{duration:3,repeat:1/0,delay:n*2},className:"controller-animation",children:d.jsxs("div",{className:"relative",children:[d.jsx("div",{className:"absolute inset-0 pulse-ring bg-green-400 rounded-full opacity-20"}),d.jsx("div",{className:"relative z-10 p-6 glass-effect rounded-full neon-glow",children:d.jsx(t,{className:"h-8 w-8 text-green-400"})})]})})},r))})}function tv({game:e,index:t}){const{t:n}=We(),r=`/games/${e.slug}`;return d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:t*.1},className:"game-card glass-effect rounded-xl p-6 group flex flex-col",children:[d.jsx(ge,{to:r,className:"block",children:d.jsxs("div",{className:"aspect-video bg-gradient-to-br from-red-500/20 to-orange-500/20 rounded-lg mb-4 flex items-center justify-center relative overflow-hidden",children:[d.jsx("img",{alt:`${e.name} game screenshot`,className:"w-full h-full object-cover rounded-lg transition-transform duration-300 group-hover:scale-105",src:e.image}),d.jsx("div",{className:"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center",children:d.jsx("div",{className:"bg-amber-500 hover:bg-amber-600 text-amber-950 rounded-full p-4",children:d.jsx(Yf,{className:"h-6 w-6"})})})]})}),d.jsxs("div",{className:"space-y-3 flex-grow flex flex-col",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("h3",{className:"text-xl font-bold text-white",children:e.name}),d.jsx("span",{className:"text-sm text-gray-400",children:e.genre})]}),d.jsx("p",{className:"text-gray-300 text-sm flex-grow",children:e.description}),d.jsx("div",{className:"flex flex-wrap gap-2",children:e.tags.map(i=>d.jsx("span",{className:"px-2 py-1 bg-red-600/20 text-red-400 text-xs rounded-full",children:i},i))}),d.jsxs("div",{className:"flex space-x-2 pt-2",children:[d.jsx(Le,{asChild:!0,className:"flex-1 bg-amber-500 hover:bg-amber-600 text-amber-950",children:d.jsxs(ge,{to:r,children:[d.jsx(Yf,{className:"h-4 w-4 mr-2"}),n("playNow")]})}),d.jsx(Le,{asChild:!0,variant:"outline",className:"border-amber-500 text-amber-400 hover:bg-amber-500/10 hover:text-amber-400",children:d.jsx(ge,{to:r,children:d.jsx(qC,{className:"h-4 w-4"})})})]})]})]})}function NP(){const{t:e,language:t}=We(),n=[{name:"Chicken Reflex",slug:"chicken-reflex",genre:"Arcade",description:e("chickenReflexDesc"),tags:[e("timing"),e("reflex"),e("oneTap")],image:"/ChickenReflex.png"},{name:"Tap Drift",slug:"tap-drift",genre:"Racing",description:e("tapDriftDesc"),tags:[e("oneTap"),e("precision"),e("timing")],image:"/TapDrift.png"},{name:"Signal Link",slug:"signal-link",genre:"Puzzle",description:e("signalLinkDesc"),tags:[e("strategy"),e("timing"),e("precision")],image:"/SignalLink.png"}],r=[{icon:oy,title:e("inputFeatures.instantResponse.title"),description:e("inputFeatures.instantResponse.description")},{icon:ry,title:e("inputFeatures.preciseControl.title"),description:e("inputFeatures.preciseControl.description")},{icon:qi,title:e("inputFeatures.perfectTiming.title"),description:e("inputFeatures.perfectTiming.description")}];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsx("title",{children:"Input Craft — Where Mechanics Meet Magic"}),d.jsx("meta",{name:"description",content:"Explore the magic of gameplay feel through interactive games and deep analysis. From single-button microgames to nuanced interaction design."}),d.jsx("meta",{property:"og:title",content:"Input Craft — Where Mechanics Meet Magic"}),d.jsx("meta",{property:"og:description",content:"Explore the magic of gameplay feel through interactive games and deep analysis."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/"})]}),d.jsxs("div",{className:"min-h-screen",children:[d.jsx("section",{className:"relative overflow-hidden py-20 lg:py-32",children:d.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs("div",{className:"text-center space-y-8",children:[d.jsx(U.h1,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-4xl md:text-6xl lg:text-7xl font-bold gradient-text",children:"Input Craft"}),d.jsx(U.p,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.2},className:"text-xl md:text-2xl text-gray-300 max-w-3xl mx-auto",children:e("heroTitle")}),d.jsx(U.p,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.4},className:"text-lg text-gray-400 max-w-2xl mx-auto font-mono",children:e("heroSubtitle")}),d.jsx(jP,{}),d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.6},className:"flex flex-col sm:flex-row gap-4 justify-center",children:[d.jsx(Le,{asChild:!0,size:"lg",className:"bg-amber-500 hover:bg-amber-600 text-amber-950",children:d.jsxs(ge,{to:"/games",children:[e("exploreGames"),d.jsx(mi,{className:"ml-2 h-4 w-4"})]})}),d.jsx(Le,{asChild:!0,variant:"outline",size:"lg",className:"border-amber-500 text-amber-400 hover:bg-amber-500/10 hover:text-amber-400",children:d.jsx(ge,{to:"/analysis",children:e("readAnalysis")})})]})]})})}),d.jsx("section",{className:"py-20 bg-black/20",children:d.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center space-y-12",children:[d.jsxs("div",{className:"space-y-4",children:[d.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-white",children:e("whyInputMatters")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:e("whyInputDescription")})]}),d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8",children:r.map((i,o)=>d.jsxs(U.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:o*.1},className:"glass-effect rounded-xl p-6 text-center space-y-4",children:[d.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 bg-red-600/20 rounded-lg",children:d.jsx(i.icon,{className:"h-6 w-6 text-red-400"})}),d.jsx("h3",{className:"text-xl font-semibold text-white",children:i.title}),d.jsx("p",{className:"text-gray-300",children:i.description})]},o))})]})})}),d.jsx("section",{className:"py-20",children:d.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"glass-effect rounded-2xl p-8 md:p-12 text-center space-y-6 neon-glow",children:[d.jsx("h2",{className:"text-3xl md:text-4xl font-bold gradient-text",children:e("chickenRoadHighlight")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:e("chickenRoadDescription")}),d.jsx(Le,{asChild:!0,size:"lg",className:"bg-amber-500 hover:bg-amber-600 text-amber-950",children:d.jsxs(ge,{to:"/analysis/chicken-road-blueprint",children:[e("readAnalysis"),d.jsx(mi,{className:"ml-2 h-4 w-4"})]})})]})})}),d.jsx("section",{className:"py-20 bg-black/20",children:d.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"space-y-12",children:[d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-white",children:e("featuredGames")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:e("featuredGamesSubtitle")})]}),d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:n.map((i,o)=>d.jsx(tv,{game:i,index:o},i.name))}),d.jsx("div",{className:"text-center",children:d.jsx(Le,{asChild:!0,size:"lg",variant:"outline",className:"border-amber-500 text-amber-400 hover:bg-amber-500/10 hover:text-amber-400",children:d.jsxs(ge,{to:"/games",children:[e("viewAllGames"),d.jsx(mi,{className:"ml-2 h-4 w-4"})]})})})]})})})]})]})}function AP(){const{t:e,language:t}=We(),n=[{name:"Chicken Reflex",slug:"chicken-reflex",genre:"Arcade",description:e("chickenReflexDesc"),tags:[e("timing"),e("reflex"),e("oneTap")],image:"/ChickenReflex.png"},{name:"Tap Drift",slug:"tap-drift",genre:"Racing",description:e("tapDriftDesc"),tags:[e("oneTap"),e("precision"),e("timing")],image:"/TapDrift.png"},{name:"Signal Link",slug:"signal-link",genre:"Puzzle",description:e("signalLinkDesc"),tags:[e("strategy"),e("timing"),e("precision")],image:"SignalLink.png"}];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("games")," — Input Craft"]}),d.jsx("meta",{name:"description",content:"Play our collection of carefully crafted HTML5 games that showcase the art of input design and perfect timing mechanics."}),d.jsx("meta",{property:"og:title",content:`${e("games")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:"Play our collection of carefully crafted HTML5 games that showcase the art of input design."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}games`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/games"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/games"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center space-y-8 mb-16",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("gamesTitle")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:e("gamesSubtitle")})]}),d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:n.map((r,i)=>d.jsx(tv,{game:r,index:i},r.name))})]})})]})}const nv=[{slug:"illusion-of-agency",icon:"Zap",en:{readTime:"8 min read",category:"Game Psychology",content:`

In the world of hyper-casual and minimalist games, player input is often reduced to a single tap. Yet, the most successful of these games create a profound sense of control and meaningful choice. This is the illusion of agency—a masterful design sleight-of-hand that transforms simple reactions into deliberate actions.

The Core Principle: Constraints Breed Creativity

When a player has infinite options, choices can feel overwhelming and meaningless. By severely limiting input, designers force players to master one core mechanic. Every tap becomes significant. It's not about *what* you can do, but *when* and *how* you do it. This focus is key to creating a state of flow, where the player and game become one.

Case Study: Flappy Bird

Flappy Bird is a perfect example. The player can only tap to flap. The game's brutal difficulty doesn't stem from complex controls but from the precise timing required. Each tap is a high-stakes decision. The player feels immense agency because their survival is entirely dependent on mastering this one simple action.

  • Binary Feedback: The game provides immediate, clear feedback. You either pass through the pipes or you crash. This leaves no ambiguity about the result of your action.
  • Rhythm and Cadence: Players naturally develop a rhythm. The game becomes a dance of taps, and finding that cadence feels like a personal discovery, reinforcing the sense of control.

Psychological Hooks

Our brains are wired to find patterns and feel in control of our environment. Simple games exploit this by creating predictable systems that are just chaotic enough to remain engaging. The feeling of "I almost had it!" is a powerful motivator, driven by the belief that with just a little more focus, the player can succeed. This belief is the very heart of the illusion of agency.

Conclusion: Meaning in Simplicity

The illusion of agency isn't about tricking the player. It's about respecting them. It's the understanding that meaningful interaction doesn't require complex controls. By creating a responsive, predictable, and challenging system around a single input, designers empower players to find depth and skill in the simplest of actions, proving that sometimes, less is truly more.

`},it:{readTime:"8 min di lettura",category:"Psicologia del Gioco",content:`

Nel mondo dei giochi iper-casual e minimalisti, l'input del giocatore è spesso ridotto a un singolo tocco. Tuttavia, i giochi di maggior successo di questo tipo creano un profondo senso di controllo e di scelta significativa. Questa è l'illusione dell'agenzia, un magistrale gioco di prestigio di design che trasforma semplici reazioni in azioni deliberate.

Il Principio Fondamentale: i Vincoli Generano Creatività

Quando un giocatore ha infinite opzioni, le scelte possono sembrare opprimenti e prive di significato. Limitando severamente l'input, i designer costringono i giocatori a padroneggiare una meccanica di base. Ogni tocco diventa significativo. Non si tratta di *cosa* puoi fare, ma di *quando* e *come* lo fai. Questa focalizzazione è la chiave per creare uno stato di flusso, in cui il giocatore e il gioco diventano una cosa sola.

Caso di Studio: Flappy Bird

Flappy Bird è un esempio perfetto. Il giocatore può solo toccare per sbattere le ali. La difficoltà brutale del gioco non deriva da controlli complessi, ma dal timing preciso richiesto. Ogni tocco è una decisione ad alto rischio. Il giocatore prova un'immensa agenzia perché la sua sopravvivenza dipende interamente dalla padronanza di questa singola, semplice azione.

  • Feedback Binario: Il gioco fornisce un feedback immediato e chiaro. O passi attraverso i tubi o ti schianti. Questo non lascia ambiguità sul risultato della tua azione.
  • Ritmo e Cadenza: I giocatori sviluppano naturalmente un ritmo. Il gioco diventa una danza di tocchi, e trovare quella cadenza sembra una scoperta personale, rafforzando il senso di controllo.

Ganci Psicologici

I nostri cervelli sono programmati per trovare schemi e sentirsi in controllo del nostro ambiente. I giochi semplici sfruttano questo creando sistemi prevedibili che sono appena abbastanza caotici da rimanere coinvolgenti. La sensazione di "Ce l'avevo quasi fatta!" è un potente motivatore, guidato dalla convinzione che con solo un po' più di concentrazione, il giocatore può avere successo. Questa convinzione è il cuore stesso dell'illusione dell'agenzia.

Conclusione: Significato nella Semplicità

L'illusione dell'agenzia non consiste nell'ingannare il giocatore. Si tratta di rispettarlo. È la comprensione che un'interazione significativa non richiede controlli complessi. Creando un sistema reattivo, prevedibile e sfidante attorno a un singolo input, i designer danno ai giocatori il potere di trovare profondità e abilità nelle azioni più semplici, dimostrando che a volte, meno è veramente di più.

`}},{slug:"timing-windows",icon:"Clock",en:{readTime:"12 min read",category:"Mechanics Design",content:`

At the heart of every great one-tap game lies an invisible, meticulously crafted element: the timing window. This is the brief period during which a player's input will result in a successful action. It is more than just a window of opportunity; it is the core of the game's feel, rhythm, and difficulty curve. Designing this window is an art form that balances challenge with fairness.

The Anatomy of a Timing Window

A timing window is defined by several factors:

  • Duration: How long the window stays open. A longer duration is more forgiving, while a shorter one demands precision.
  • Coyote Time: A small grace period *after* a window seemingly closes where an input is still accepted. This makes the game feel more responsive and fair, even if the player's timing is slightly off.
  • Input Buffering: Registering an input slightly *before* the window opens. This rewards proactive players and prevents the frustration of "I pressed it, but nothing happened!"
  • Feedback: Clear visual and auditory cues that signal the opening, closing, and success/failure of an input within the window. This is crucial for helping players learn and adapt.

Case Study: Rhythm Games

Rhythm games are the ultimate expression of timing window design. In games like Guitar Hero or Beat Saber, notes travel towards a "strike line." The timing window is the area around this line. Success is often graded (Perfect, Great, Good, Miss) based on how close to the center of the window the input was. This multi-layered feedback encourages mastery and makes success feel earned and scalable.

Balancing Difficulty and Flow

The magic happens when timing windows are dynamic. A well-designed game will subtly adjust these windows based on the context.

  • Onboarding: Early levels have larger, more forgiving windows to teach the core mechanic.
  • Ramping Up: As the player progresses, windows shrink, requiring more precision and faster reaction times.
  • High-Tension Moments: A critical "boss" phase might feature extremely tight windows, creating a high-stakes, high-reward scenario.

When done right, players don't consciously think about the timing window. They simply "feel" the rhythm of the game. They enter a flow state where their actions and the game's responses are perfectly synchronized. This is the goal of every interaction designer.

Conclusion: The Unsung Hero of Game Feel

Timing windows are the unsung heroes of game feel. They are a testament to the idea that the most important design elements are often the ones the player never sees. By carefully sculpting these moments of interaction, designers can transform a simple mechanic into a deeply engaging and satisfying experience that keeps players coming back for "just one more try."

`},it:{readTime:"12 min di lettura",category:"Design delle Meccaniche",content:`

Al centro di ogni grande gioco one-tap si trova un elemento invisibile e meticolosamente realizzato: la finestra di timing. Questo è il breve periodo durante il quale l'input di un giocatore si tradurrà in un'azione riuscita. È più di una semplice finestra di opportunità; è il nucleo del feel, del ritmo e della curva di difficoltà del gioco. Progettare questa finestra è una forma d'arte che bilancia sfida ed equità.

L'Anatomia di una Finestra di Timing

Una finestra di timing è definita da diversi fattori:

  • Durata: Per quanto tempo la finestra rimane aperta. Una durata più lunga è più permissiva, mentre una più breve richiede precisione.
  • Coyote Time: Un piccolo periodo di grazia *dopo* che una finestra sembra chiudersi, in cui un input è ancora accettato. Questo fa sì che il gioco sembri più reattivo ed equo, anche se il tempismo del giocatore è leggermente sbagliato.
  • Input Buffering: Registrare un input leggermente *prima* che la finestra si apra. Questo premia i giocatori proattivi e previene la frustrazione di "L'ho premuto, ma non è successo niente!"
  • Feedback: Segnali visivi e uditivi chiari che indicano l'apertura, la chiusura e il successo/fallimento di un input all'interno della finestra. Questo è cruciale per aiutare i giocatori a imparare e ad adattarsi.

Caso di Studio: Giochi Ritmici

I giochi ritmici sono la massima espressione del design delle finestre di timing. In giochi come Guitar Hero o Beat Saber, le note viaggiano verso una "linea di percussione". La finestra di timing è l'area intorno a questa linea. Il successo è spesso valutato (Perfetto, Ottimo, Buono, Mancato) in base a quanto vicino al centro della finestra è stato l'input. Questo feedback a più livelli incoraggia la maestria e fa sentire il successo guadagnato e scalabile.

Bilanciare Difficoltà e Flusso

La magia avviene quando le finestre di timing sono dinamiche. Un gioco ben progettato regolerà sottilmente queste finestre in base al contesto.

  • Onboarding: I primi livelli hanno finestre più grandi e permissive per insegnare la meccanica di base.
  • Aumento della Difficoltà: Man mano che il giocatore progredisce, le finestre si restringono, richiedendo maggiore precisione e tempi di reazione più rapidi.
  • Momenti di Alta Tensione: Una fase critica di un "boss" potrebbe presentare finestre estremamente strette, creando uno scenario ad alto rischio e alta ricompensa.

Se fatto bene, i giocatori non pensano coscientemente alla finestra di timing. Semplicemente "sentono" il ritmo del gioco. Entrano in uno stato di flusso in cui le loro azioni e le risposte del gioco sono perfettamente sincronizzate. Questo è l'obiettivo di ogni interaction designer.

Conclusione: L'Eroe Silenzioso del Game Feel

Le finestre di timing sono gli eroi silenziosi del game feel. Sono una testimonianza dell'idea che gli elementi di design più importanti sono spesso quelli che il giocatore non vede mai. Scolpendo attentamente questi momenti di interazione, i designer possono trasformare una semplice meccanica in un'esperienza profondamente coinvolgente e soddisfacente che spinge i giocatori a tornare per "solo un altro tentativo".

`}},{slug:"chicken-road-blueprint",icon:"Target",en:{readTime:"15 min read",category:"Case Study",content:`

Chicken Road is more than a game; it's a blueprint for elegant, minimalist design. Its premise is deceptively simple—cross the road—but its execution reveals a deep understanding of player psychology, risk-reward systems, and the power of a single, perfectly tuned input. This breakdown dissects the mechanical and psychological layers that make Chicken Road a masterclass in its genre.

Core Mechanic: The "Hop"

The player's only action is the "hop." A tap moves the chicken one square forward. Holding the tap moves it forward continuously. This simple duality is the foundation of the entire experience.

  • The Tap: A deliberate, precise action. It's used for careful navigation through dense traffic. Each tap is a calculated risk.
  • The Hold: A commitment. It's faster but reduces reaction time. It's a high-risk, high-reward maneuver used for crossing wide, empty lanes.

This single input method creates a dynamic tension between caution and aggression. The player is constantly making micro-decisions: "Do I play it safe with taps, or do I risk it all with a hold?"

Psychological Design: The Urge to Move Forward

1. The Scrolling Screen

The screen constantly scrolls, pushing the player forward. Standing still is not an option; hesitation is punished. This creates a gentle but persistent pressure that forces action and prevents the game from becoming static. It's a brilliant way to maintain momentum without an explicit timer.

2. Spatially Organized Risk

Chicken Road's genius lies in its environmental design. Different lanes present different types of challenges:

  • Roads: Fast-moving, predictable patterns of cars. The challenge is pure timing.
  • Rivers: Floating logs that move at varying speeds. The challenge is timing and spatial awareness, as you must land on a moving platform.
  • Train Tracks: Mostly safe, but with a high-speed, instant-death train that signals its arrival just moments before. This creates spikes of high tension and relief.

This variation prevents monotony and forces the player to constantly adapt their strategy and rhythm. The environment itself becomes the difficulty curve.

The Reward Loop

The primary reward in Chicken Road is progress itself, but this is supplemented by a simple, effective currency system. Coins are scattered throughout the environment, often in risky locations (e.g., in the middle of a busy lane). This adds another layer to the risk-reward calculation. "Do I risk death for that coin?" This simple choice enhances player agency and provides a long-term goal (unlocking new characters) that keeps them engaged across multiple sessions.

Conclusion: A Perfect System

Chicken Road is a perfectly balanced system. The simple input is given depth by the environment. The constant forward pressure creates tension. The varied obstacles demand adaptability. And the risk-reward loops provide moment-to-moment and long-term motivation. It proves that a game doesn't need complexity to be deep. It just needs a single, elegant idea executed with precision and a profound respect for the player's intelligence.

`},it:{readTime:"15 min di lettura",category:"Caso di Studio",content:`

Chicken Road è più di un gioco; è un modello di design elegante e minimalista. La sua premessa è ingannevolmente semplice—attraversare la strada—ma la sua esecuzione rivela una profonda comprensione della psicologia del giocatore, dei sistemi di rischio-ricompensa e del potere di un singolo input perfettamente calibrato. Questa analisi seziona gli strati meccanici e psicologici che rendono Chicken Road un capolavoro nel suo genere.

Meccanica di Base: Il "Salto"

L'unica azione del giocatore è il "salto". Un tocco sposta il pollo di un quadrato in avanti. Tenere premuto il tocco lo sposta continuamente in avanti. Questa semplice dualità è il fondamento dell'intera esperienza.

  • Il Tocco: Un'azione deliberata e precisa. Viene utilizzato per una navigazione attenta attraverso il traffico denso. Ogni tocco è un rischio calcolato.
  • La Pressione Prolungata: Un impegno. È più veloce ma riduce il tempo di reazione. È una manovra ad alto rischio e alta ricompensa utilizzata per attraversare corsie larghe e vuote.

Questo singolo metodo di input crea una tensione dinamica tra cautela e aggressività. Il giocatore prende costantemente micro-decisioni: "Gioco sul sicuro con i tocchi, o rischio tutto con una pressione prolungata?"

Design Psicologico: La Spinta ad Andare Avanti

1. Lo Schermo che Scorre

Lo schermo scorre costantemente, spingendo il giocatore in avanti. Stare fermi non è un'opzione; l'esitazione è punita. Questo crea una pressione gentile ma persistente che forza l'azione e impedisce al gioco di diventare statico. È un modo brillante per mantenere il momentum senza un timer esplicito.

2. Rischio Organizzato Spazialmente

La genialità di Chicken Road risiede nel suo design ambientale. Diverse corsie presentano diversi tipi di sfide:

  • Strade: Schemi di auto veloci e prevedibili. La sfida è puro tempismo.
  • Fiumi: Tronchi galleggianti che si muovono a velocità variabili. La sfida è il tempismo e la consapevolezza spaziale, poiché devi atterrare su una piattaforma in movimento.
  • Binari del Treno: Principalmente sicuri, ma con un treno ad alta velocità a morte istantanea che segnala il suo arrivo solo pochi istanti prima. Questo crea picchi di alta tensione e sollievo.

Questa variazione previene la monotonia e costringe il giocatore ad adattare costantemente la propria strategia e il proprio ritmo. L'ambiente stesso diventa la curva di difficoltà.

Il Loop di Ricompensa

La ricompensa principale in Chicken Road è il progresso stesso, ma questo è integrato da un sistema di valuta semplice ed efficace. Le monete sono sparse nell'ambiente, spesso in luoghi rischiosi (ad esempio, nel mezzo di una corsia trafficata). Questo aggiunge un altro strato al calcolo rischio-ricompensa. "Rischio la morte per quella moneta?" Questa semplice scelta aumenta l'agenzia del giocatore e fornisce un obiettivo a lungo termine (sbloccare nuovi personaggi) che li tiene impegnati in più sessioni.

Conclusione: Un Sistema Perfetto

Chicken Road è un sistema perfettamente bilanciato. L'input semplice acquista profondità grazie all'ambiente. La costante pressione in avanti crea tensione. Gli ostacoli vari richiedono adattabilità. E i loop di rischio-ricompensa forniscono motivazione momento per momento e a lungo termine. Dimostra che un gioco non ha bisogno di complessità per essere profondo. Ha solo bisogno di un'unica, elegante idea eseguita con precisione e un profondo rispetto per l'intelligenza del giocatore.

`}}];function RP(){const{t:e,language:t}=We(),n=nv;return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("analysis")," — Input Craft"]}),d.jsx("meta",{name:"description",content:"Deep dive into game feel and input design. Explore the invisible mechanics that make games feel magical through detailed analysis."}),d.jsx("meta",{property:"og:title",content:`${e("analysis")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:"Deep dive into game feel and input design. Explore the invisible mechanics that make games feel magical."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}analysis`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/analysis"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/analysis"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center space-y-8 mb-16",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("analysisTitle")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:e("analysisSubtitle")})]}),d.jsx("div",{className:"space-y-8",children:n.map((r,i)=>{const o={Zap:oy,Clock:qi,Target:ry}[r.icon];return d.jsx(U.article,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:i*.1},className:"glass-effect rounded-xl p-8 group hover:neon-glow transition-all duration-300",children:d.jsxs("div",{className:"flex items-start space-x-6",children:[d.jsx("div",{className:"flex-shrink-0",children:d.jsx("div",{className:"w-16 h-16 bg-red-600/20 rounded-xl flex items-center justify-center",children:d.jsx(o,{className:"h-8 w-8 text-red-400"})})}),d.jsxs("div",{className:"flex-1 space-y-4",children:[d.jsxs("div",{className:"space-y-2",children:[d.jsx("h2",{className:"text-2xl font-bold text-white group-hover:text-amber-400 transition-colors",children:e(`analysisPost.${r.slug}.title`)}),d.jsx("p",{className:"text-gray-300 text-lg",children:e(`analysisPost.${r.slug}.excerpt`)}),d.jsx("span",{className:"text-sm text-gray-400 font-mono",children:r[t].readTime})]}),d.jsx(Le,{asChild:!0,className:"bg-amber-500 hover:bg-amber-600 text-amber-950",children:d.jsxs(ge,{to:`/analysis/${r.slug}`,children:[e("readArticle"),d.jsx(mi,{className:"ml-2 h-4 w-4"})]})})]})]})},r.slug)})}),d.jsxs(U.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-20 glass-effect rounded-2xl p-8 text-center space-y-6",children:[d.jsx("h2",{className:"text-3xl font-bold text-white",children:e("interactiveAnalysisTools")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-2xl mx-auto",children:e("interactiveAnalysisToolsDesc")}),d.jsxs("div",{className:"flex justify-center space-x-4",children:[d.jsx("div",{className:"w-16 h-16 bg-gradient-to-r from-red-500 to-orange-500 rounded-lg animate-pulse"}),d.jsx("div",{className:"w-16 h-16 bg-gradient-to-r from-orange-500 to-amber-500 rounded-lg animate-pulse",style:{animationDelay:"0.5s"}}),d.jsx("div",{className:"w-16 h-16 bg-gradient-to-r from-amber-500 to-red-500 rounded-lg animate-pulse",style:{animationDelay:"1s"}})]})]})]})})]})}const rv=[{slug:"chicken-road-and-the-rise-of-micro-runners",date:"2025-01-08",image:"/ChickenRoad.png",en:{category:"Game Design",readTime:"6 min read",content:`

The release of games like Chicken Road marked a pivotal moment in mobile and indie game design. Before its rise, many games focused on complex mechanics and long play sessions. Chicken Road, however, championed a different philosophy: minimalist design, one-tap controls, and brutally addictive short-form gameplay. This created the perfect formula for the "micro-runner" genre.

What made it so revolutionary? It wasn't just about crossing a road. It was about perfect timing, risk-reward calculation in a split second, and the psychological thrill of near-misses. The game stripped away everything unnecessary, leaving a pure, unadulterated loop of tension and release. Each successful crossing delivered a small dopamine hit, while each failure was just frustrating enough to make you say, "just one more try."

This design philosophy influenced thousands of subsequent titles. Developers realized that a compelling experience didn't require massive worlds or intricate stories. It required a perfectly tuned core mechanic. The legacy of these micro-runners can be seen everywhere, from hyper-casual hits to mechanics within larger AAA titles. They taught the industry that sometimes, the simplest ideas, executed flawlessly, are the most powerful.

The takeaway? Constraints breed creativity. By focusing on a single, compelling action, designers can create experiences that are both accessible and deeply engaging. It's a testament to the idea that great game design is less about what you put in and more about what you choose to leave out.

`},it:{category:"Game Design",readTime:"6 min di lettura",content:`

L'uscita di giochi come Chicken Road ha segnato un momento cruciale nel design di giochi mobile e indipendenti. Prima della sua ascesa, molti giochi si concentravano su meccaniche complesse e lunghe sessioni di gioco. Chicken Road, tuttavia, ha promosso una filosofia diversa: design minimalista, controlli a un tocco e un gameplay breve brutalmente avvincente. Questo ha creato la formula perfetta per il genere "micro-runner".

Cosa lo ha reso così rivoluzionario? Non si trattava solo di attraversare una strada. Si trattava di un tempismo perfetto, del calcolo rischio-ricompensa in una frazione di secondo e del brivido psicologico dei "quasi-scontri". Il gioco ha eliminato tutto il superfluo, lasciando un loop puro e inalterato di tensione e rilascio. Ogni attraversamento riuscito forniva una piccola scarica di dopamina, mentre ogni fallimento era abbastanza frustrante da farti dire "solo un altro tentativo".

Questa filosofia di design ha influenzato migliaia di titoli successivi. Gli sviluppatori si sono resi conto che un'esperienza avvincente non richiedeva mondi enormi o storie intricate. Richiedeva una meccanica di base perfettamente calibrata. L'eredità di questi micro-runner è visibile ovunque, dai successi iper-casuali alle meccaniche all'interno di titoli AAA più grandi. Hanno insegnato all'industria che a volte le idee più semplici, eseguite in modo impeccabile, sono le più potenti.

La lezione? I limiti generano creatività. Concentrandosi su una singola azione avvincente, i designer possono creare esperienze che sono sia accessibili che profondamente coinvolgenti. È una testimonianza dell'idea che un grande game design riguarda meno ciò che si inserisce e più ciò che si sceglie di tralasciare.

`}},{slug:"why-one-button-is-sometimes-enough",date:"2025-01-05",image:"/WhyOne.png",en:{category:"Input Design",readTime:"8 min read",content:`

In an era of controllers with dozens of buttons and keyboards with endless commands, the idea of a one-button game seems almost primitive. Yet, some of the most engaging and memorable experiences are built around this simple constraint. Why? Because limiting input forces designers to be incredibly creative with the output.

When a player has only one action—jump, tap, flap, drift—the entire game world must be designed around it. The focus shifts from *what* the player can do to *when* and *how* they do it. This transforms the game from a test of dexterity to a test of timing, rhythm, and pattern recognition. The single button becomes a gateway to a complex dance between player and system.

Consider games like Flappy Bird or Canabalt. The player's only input is a tap. But that tap can mean the difference between soaring gracefully over an obstacle or crashing spectacularly. The depth comes not from a variety of actions, but from the mastery of one. It's easy to learn but difficult to master, the holy grail of accessible game design.

This design principle extends beyond simple arcade games. It teaches us a valuable lesson about user experience in any digital product. Simplicity is not the absence of complexity, but the elegant management of it. By providing fewer choices, we can make each choice more meaningful. A single, well-designed button can be more powerful than a dozen poorly implemented ones. It’s a reminder that true elegance lies in making the complex feel simple.

`},it:{category:"Design dell'Input",readTime:"8 min di lettura",content:`

In un'era di controller con dozzine di pulsanti e tastiere con comandi infiniti, l'idea di un gioco a un solo pulsante sembra quasi primitiva. Eppure, alcune delle esperienze più coinvolgenti e memorabili sono costruite attorno a questo semplice limite. Perché? Perché limitare l'input costringe i designer a essere incredibilmente creativi con l'output.

Quando un giocatore ha una sola azione—saltare, toccare, sbattere le ali, derapare—l'intero mondo di gioco deve essere progettato attorno ad essa. L'attenzione si sposta da *cosa* il giocatore può fare a *quando* e *come* lo fa. Questo trasforma il gioco da un test di destrezza a un test di tempismo, ritmo e riconoscimento di schemi. Il singolo pulsante diventa una porta d'accesso a una complessa danza tra giocatore e sistema.

Consideriamo giochi come Flappy Bird o Canabalt. L'unico input del giocatore è un tocco. Ma quel tocco può significare la differenza tra sorvolare con grazia un ostacolo o schiantarsi in modo spettacolare. La profondità non deriva da una varietà di azioni, ma dalla padronanza di una sola. È facile da imparare ma difficile da padroneggiare, il sacro graal del game design accessibile.

Questo principio di design si estende oltre i semplici giochi arcade. Ci insegna una lezione preziosa sull'esperienza utente in qualsiasi prodotto digitale. La semplicità non è l'assenza di complessità, ma la sua gestione elegante. Fornendo meno scelte, possiamo rendere ogni scelta più significativa. Un singolo pulsante ben progettato può essere più potente di una dozzina di pulsanti mal implementati. È un promemoria che la vera eleganza sta nel rendere semplice ciò che è complesso.

`}},{slug:"the-feel-factor-how-games-trick-our-senses",date:"2025-01-02",image:"/TheFeel.png",en:{category:"Psychology",readTime:"10 min read",content:`

What makes a jump feel "bouncy"? What makes a punch feel "impactful"? The answer lies in the "feel factor," an invisible layer of polish that transforms a functional mechanic into a satisfying experience. It's an artful combination of animation, sound design, and subtle tricks that fool our brains into perceiving weight, momentum, and impact in a purely digital space.

One of the key techniques is "juice." This involves adding layers of secondary feedback to a primary action. For example, when a character lands from a jump, don't just stop their movement. Add a small "squash and stretch" animation, a puff of dust particles, a subtle screen shake, and a soft "thud" sound. None of these elements are mechanically necessary, but together they create the *sensation* of a weighty landing.

Another trick is "coyote time," where a player can still jump for a few frames after running off a ledge. This doesn't reflect real-world physics, but it *feels* fair to the player, whose perception might lag slightly behind the game's strict logic. Similarly, "input buffering" allows the game to accept a player's button press slightly before the action is actually possible, making combos and fast-paced maneuvers feel more responsive.

These are not cheats; they are accommodations to human psychology. They bridge the gap between digital precision and human perception. Mastering the feel factor is what separates a good game from a great one. It's the silent language of interaction design that speaks directly to our senses, making us forget we're just pressing buttons and instead making us feel like we're truly part of the world on screen.

`},it:{category:"Psicologia",readTime:"10 min di lettura",content:`

Cosa rende un salto "elastico"? Cosa rende un pugno "impatto"? La risposta sta nel "fattore feel", uno strato invisibile di rifinitura che trasforma una meccanica funzionale in un'esperienza soddisfacente. È una combinazione artistica di animazione, sound design e trucchi sottili che ingannano il nostro cervello facendogli percepire peso, slancio e impatto in uno spazio puramente digitale.

Una delle tecniche chiave è il "juice". Ciò comporta l'aggiunta di strati di feedback secondario a un'azione primaria. Ad esempio, quando un personaggio atterra da un salto, non fermare semplicemente il suo movimento. Aggiungi una piccola animazione di "schiacciamento ed allungamento", una nuvoletta di particelle di polvere, una sottile scossa dello schermo e un suono ovattato. Nessuno di questi elementi è meccanicamente necessario, ma insieme creano la *sensazione* di un atterraggio pesante.

Un altro trucco è il "coyote time", in cui un giocatore può ancora saltare per alcuni fotogrammi dopo aver corso oltre un cornicione. Questo non riflette la fisica del mondo reale, ma *sembra* giusto al giocatore, la cui percezione potrebbe essere leggermente in ritardo rispetto alla logica rigorosa del gioco. Allo stesso modo, l'"input buffering" consente al gioco di accettare la pressione di un pulsante da parte del giocatore leggermente prima che l'azione sia effettivamente possibile, rendendo le combo e le manovre veloci più reattive.

Questi non sono trucchi; sono adattamenti alla psicologia umana. Colmano il divario tra la precisione digitale e la percezione umana. Padroneggiare il fattore feel è ciò che separa un buon gioco da un grande gioco. È il linguaggio silenzioso del design dell'interazione che parla direttamente ai nostri sensi, facendoci dimenticare che stiamo solo premendo pulsanti e facendoci invece sentire come se fossimo veramente parte del mondo sullo schermo.

`}},{slug:"from-tap-to-flow-designing-reactive-loops",date:"2024-12-28",image:"/FromTap.png",en:{category:"UX Design",readTime:"12 min read",content:`

The ultimate goal for many games is to get the player into a "flow state"—a state of complete immersion where time seems to melt away. This is achieved through a perfectly balanced reactive loop: the player performs an action (input), the game provides clear and immediate feedback (output), and this feedback informs the player's next action. The cycle must be fast, intuitive, and rewarding.

The first step is minimizing the delay between input and output. Input lag is the enemy of flow. The game must acknowledge the player's action instantly, even if the result of that action takes a moment to unfold. This is where visual and auditory cues are critical. A simple "click" sound or a button highlight can provide the immediate confirmation the brain needs.

Next, the feedback must be clear and informative. It should tell the player two things: "The game understood your input" and "Here is the result." A successful hit in a game might trigger a flash of light, a satisfying sound, and a change in the enemy's health bar. This multi-sensory feedback makes the outcome unambiguous and strengthens the player's sense of agency.

Finally, the loop must be balanced. The challenge must escalate in tandem with the player's growing skill. If it's too easy, the player gets bored. If it's too hard, they get frustrated. A well-designed reactive loop constantly pushes the player just outside their comfort zone, creating a cycle of learning, mastery, and satisfaction. This is the engine of engagement, turning a simple tap into a state of pure flow.

`},it:{category:"UX Design",readTime:"12 min di lettura",content:`

L'obiettivo finale di molti giochi è portare il giocatore in uno "stato di flusso", uno stato di completa immersione in cui il tempo sembra svanire. Ciò si ottiene attraverso un ciclo reattivo perfettamente bilanciato: il giocatore esegue un'azione (input), il gioco fornisce un feedback chiaro e immediato (output), e questo feedback informa l'azione successiva del giocatore. Il ciclo deve essere veloce, intuitivo e gratificante.

Il primo passo è ridurre al minimo il ritardo tra input e output. L'input lag è il nemico del flusso. Il gioco deve riconoscere istantaneamente l'azione del giocatore, anche se il risultato di tale azione richiede un momento per manifestarsi. È qui che gli spunti visivi e uditivi sono fondamentali. Un semplice suono di "click" o l'evidenziazione di un pulsante possono fornire la conferma immediata di cui il cervello ha bisogno.

Successivamente, il feedback deve essere chiaro e informativo. Dovrebbe dire al giocatore due cose: "Il gioco ha capito il tuo input" e "Ecco il risultato". Un colpo andato a segno in un gioco potrebbe innescare un lampo di luce, un suono soddisfacente e un cambiamento nella barra della salute del nemico. Questo feedback multisensoriale rende il risultato inequivocabile e rafforza il senso di agenzia del giocatore.

Infine, il ciclo deve essere bilanciato. La sfida deve aumentare di pari passo con la crescente abilità del giocatore. Se è troppo facile, il giocatore si annoia. Se è troppo difficile, si frustra. Un ciclo reattivo ben progettato spinge costantemente il giocatore appena fuori dalla sua zona di comfort, creando un ciclo di apprendimento, padronanza e soddisfazione. Questo è il motore del coinvolgimento, che trasforma un semplice tocco in uno stato di puro flusso.

`}}];function LP(){const{t:e,language:t}=We(),n=rv;return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("blog")," — Input Craft"]}),d.jsx("meta",{name:"description",content:e("blogSubtitle")}),d.jsx("meta",{property:"og:title",content:`${e("blog")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:e("blogSubtitle")}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}blog`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/blog"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/blog"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center space-y-8 mb-16",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("blogTitle")}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:e("blogSubtitle")})]}),d.jsx("div",{className:"space-y-8",children:n.map((r,i)=>d.jsxs(U.article,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:i*.1},className:"glass-effect rounded-xl overflow-hidden group hover:neon-glow transition-all duration-300",children:[d.jsx(ge,{to:`/blog/${r.slug}`,children:d.jsxs("div",{className:"aspect-video bg-gradient-to-br from-red-500/20 to-orange-500/20 relative",children:[d.jsx("img",{alt:`${e(`blogPost.${r.slug}.title`)} blog post cover image`,className:"w-full h-full object-cover",src:r.image}),d.jsx("div",{className:"absolute top-4 left-4",children:d.jsx("span",{className:"px-3 py-1 bg-red-600 text-white text-sm rounded-full",children:r[t].category})})]})}),d.jsxs("div",{className:"p-8 space-y-4",children:[d.jsxs("div",{className:"flex items-center space-x-4 text-sm text-gray-400",children:[d.jsxs("div",{className:"flex items-center space-x-1",children:[d.jsx(ny,{className:"h-4 w-4"}),d.jsx("span",{children:new Date(r.date).toLocaleDateString(t)})]}),d.jsxs("div",{className:"flex items-center space-x-1",children:[d.jsx(qi,{className:"h-4 w-4"}),d.jsx("span",{children:r[t].readTime})]})]}),d.jsx(ge,{to:`/blog/${r.slug}`,children:d.jsx("h2",{className:"text-2xl font-bold text-white group-hover:text-amber-400 transition-colors",children:e(`blogPost.${r.slug}.title`)})}),d.jsx("p",{className:"text-gray-300 text-lg leading-relaxed",children:e(`blogPost.${r.slug}.excerpt`)}),d.jsx(Le,{asChild:!0,className:"bg-amber-500 hover:bg-amber-600 text-amber-950",children:d.jsxs(ge,{to:`/blog/${r.slug}`,children:[e("readMore"),d.jsx(mi,{className:"ml-2 h-4 w-4"})]})})]})]},r.slug))})]})})]})}function IP(){const{t:e,language:t}=We(),n=[e("focusPoints.one"),e("focusPoints.two"),e("focusPoints.three"),e("focusPoints.four")],r=[e("approachPoints.one"),e("approachPoints.two"),e("approachPoints.three"),e("approachPoints.four")];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("about")," — Input Craft"]}),d.jsx("meta",{name:"description",content:"Learn about Input Craft's mission to explore and celebrate the art of input design in games. Discover our passion for game feel and interaction design."}),d.jsx("meta",{property:"og:title",content:`${e("about")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:"Learn about Input Craft's mission to explore and celebrate the art of input design in games."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}about`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/about"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/about"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:[d.jsx(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center space-y-8 mb-16",children:d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("aboutTitle")})}),d.jsxs("div",{className:"space-y-12",children:[d.jsx(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.2},className:"glass-effect rounded-xl p-8 space-y-6",children:d.jsx("p",{className:"text-xl text-gray-300 leading-relaxed",children:e("aboutDescription")})}),d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.4},className:"glass-effect rounded-xl p-8 text-center space-y-6 neon-glow",children:[d.jsx(ek,{className:"h-12 w-12 text-amber-400 mx-auto"}),d.jsxs("blockquote",{className:"text-2xl md:text-3xl font-bold gradient-text",children:['"',e("aboutQuote"),'"']})]}),d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.6},className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[d.jsxs("div",{className:"glass-effect rounded-xl p-8 space-y-4",children:[d.jsx("h2",{className:"text-2xl font-bold text-white",children:e("ourFocus")}),d.jsx("ul",{className:"space-y-3 text-gray-300",children:n.map((i,o)=>d.jsxs("li",{className:"flex items-center space-x-2",children:[d.jsx("div",{className:"w-2 h-2 bg-red-400 rounded-full"}),d.jsx("span",{children:i})]},o))})]}),d.jsxs("div",{className:"glass-effect rounded-xl p-8 space-y-4",children:[d.jsx("h2",{className:"text-2xl font-bold text-white",children:e("ourApproach")}),d.jsx("ul",{className:"space-y-3 text-gray-300",children:r.map((i,o)=>d.jsxs("li",{className:"flex items-center space-x-2",children:[d.jsx("div",{className:"w-2 h-2 bg-orange-400 rounded-full"}),d.jsx("span",{children:i})]},o))})]})]}),d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.8},className:"glass-effect rounded-xl p-8",children:[d.jsx("h2",{className:"text-2xl font-bold text-white text-center mb-8",children:e("inputSchematics")}),d.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8",children:[d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("div",{className:"w-24 h-24 mx-auto bg-gradient-to-br from-red-500/20 to-orange-500/20 rounded-xl flex items-center justify-center",children:d.jsx("img",{alt:"Touch input schematic diagram",className:"w-16 h-16 object-contain",src:"https://images.unsplash.com/photo-1683105255267-a644e6687dd4"})}),d.jsx("span",{className:"text-gray-300 font-mono text-sm",children:e("schematicTypes.touch")})]}),d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("div",{className:"w-24 h-24 mx-auto bg-gradient-to-br from-orange-500/20 to-amber-500/20 rounded-xl flex items-center justify-center",children:d.jsx("img",{alt:"Keyboard input schematic diagram",className:"w-16 h-16 object-contain",src:"https://images.unsplash.com/photo-1698913461335-a3847c76204e"})}),d.jsx("span",{className:"text-gray-300 font-mono text-sm",children:e("schematicTypes.keyboard")})]}),d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("div",{className:"w-24 h-24 mx-auto bg-gradient-to-br from-amber-500/20 to-red-500/20 rounded-xl flex items-center justify-center",children:d.jsx("img",{alt:"Controller input schematic diagram",className:"w-16 h-16 object-contain",src:"https://images.unsplash.com/photo-1592323224547-f96b3dcba8e7"})}),d.jsx("span",{className:"text-gray-300 font-mono text-sm",children:e("schematicTypes.controller")})]})]})]})]})]})})]})}function MP(){const{t:e,language:t}=We(),n=[e("privacySections.infoCollect"),e("privacySections.infoUse"),e("privacySections.infoShare"),e("privacySections.dataSecurity"),e("privacySections.cookiesTracking"),e("privacySections.yourRights"),e("privacySections.policyChanges"),e("privacySections.contactUs")];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("privacy")," — Input Craft"]}),d.jsx("meta",{name:"description",content:"Input Craft privacy policy. Learn how we collect, use, and protect your personal information when you use our games and services."}),d.jsx("meta",{property:"og:title",content:`${e("privacy")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:"Input Craft privacy policy. Learn how we collect, use, and protect your personal information."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}privacy`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/privacy"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/privacy"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-8",children:[d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("privacy")}),d.jsx("p",{className:"text-gray-400",children:e("lastUpdated")})]}),d.jsx("div",{className:"glass-effect rounded-xl p-8 space-y-6",children:d.jsx("p",{className:"text-lg text-gray-300 leading-relaxed",children:e("privacyIntro")})}),d.jsx("div",{className:"space-y-6",children:n.map((r,i)=>d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:i*.1},className:"glass-effect rounded-xl p-6 space-y-3",children:[d.jsx("h2",{className:"text-xl font-bold text-white",children:r.title}),d.jsx("p",{className:"text-gray-300 leading-relaxed",children:r.content})]},r.title))})]})})})]})}function zP(){const{t:e,language:t}=We(),n=[e("termsSections.acceptance"),e("termsSections.useLicense"),e("termsSections.disclaimer"),e("termsSections.limitations"),e("termsSections.accuracy"),e("termsSections.links"),e("termsSections.modifications"),e("termsSections.governingLaw")];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("terms")," — Input Craft"]}),d.jsx("meta",{name:"description",content:"Input Craft terms of service. Read our terms and conditions for using our website, games, and services."}),d.jsx("meta",{property:"og:title",content:`${e("terms")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:"Input Craft terms of service. Read our terms and conditions for using our website and services."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}terms`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/terms"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/terms"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-8",children:[d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("terms")}),d.jsx("p",{className:"text-gray-400",children:e("lastUpdated")})]}),d.jsx("div",{className:"glass-effect rounded-xl p-8 space-y-6",children:d.jsx("p",{className:"text-lg text-gray-300 leading-relaxed",children:e("termsIntro")})}),d.jsx("div",{className:"space-y-6",children:n.map((r,i)=>d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:i*.1},className:"glass-effect rounded-xl p-6 space-y-3",children:[d.jsx("h2",{className:"text-xl font-bold text-white",children:r.title}),d.jsx("p",{className:"text-gray-300 leading-relaxed",children:r.content})]},r.title))})]})})})]})}function DP(){const{t:e,language:t}=We(),n=[e("cookiesSections.whatAre"),e("cookiesSections.howWeUse"),e("cookiesSections.types"),e("cookiesSections.essential"),e("cookiesSections.analytics"),e("cookiesSections.preference"),e("cookiesSections.managing"),e("cookiesSections.thirdParty")];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[e("cookies")," — Input Craft"]}),d.jsx("meta",{name:"description",content:"Input Craft cookie policy. Learn about how we use cookies to enhance your experience and improve our games and services."}),d.jsx("meta",{property:"og:title",content:`${e("cookies")} — Input Craft`}),d.jsx("meta",{property:"og:description",content:"Input Craft cookie policy. Learn about how we use cookies to enhance your experience."}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}cookies`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:"https://inputcraft.com/it/cookies"}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:"https://inputcraft.com/cookies"})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-8",children:[d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:e("cookies")}),d.jsx("p",{className:"text-gray-400",children:e("lastUpdated")})]}),d.jsx("div",{className:"glass-effect rounded-xl p-8 space-y-6",children:d.jsx("p",{className:"text-lg text-gray-300 leading-relaxed",children:e("cookiesIntro")})}),d.jsx("div",{className:"space-y-6",children:n.map((r,i)=>d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:i*.1},className:"glass-effect rounded-xl p-6 space-y-3",children:[d.jsx("h2",{className:"text-xl font-bold text-white",children:r.title}),d.jsx("p",{className:"text-gray-300 leading-relaxed",children:r.content})]},r.title))}),d.jsxs("div",{className:"glass-effect rounded-xl p-8 space-y-4",children:[d.jsx("h2",{className:"text-xl font-bold text-white",children:e("contactUsAboutCookies")}),d.jsx("p",{className:"text-gray-300 leading-relaxed",children:e("contactUsAboutCookiesDesc")})]})]})})})]})}function OP(){const e=w.useRef(null);return w.useEffect(()=>{const t=e.current,n=t.getContext("2d");let r;const i=()=>{const{width:h,height:m}=t.getBoundingClientRect();t.width=h,t.height=m};i();let o={x:t.width/2,y:t.height-40,width:30,height:30},s=[],a=0,l=!1,c=2;function u(){n.fillStyle="#FFD700",n.fillRect(o.x-o.width/2,o.y-o.height,o.width,o.height)}function f(h){n.fillStyle=h.color,n.fillRect(h.x,h.y,h.width,h.height)}function p(){const m=Math.floor(Math.random()*4),S=Math.random()>.5?1:-1;s.push({x:S===1?-50:t.width,y:50+m*50,width:50,height:30,speed:(Math.random()*.5+.5)*c*S,color:`hsl(${Math.random()*360}, 70%, 50%)`})}function g(){l||(s.forEach(h=>{h.x+=h.speed}),s=s.filter(h=>h.x>-60&&h.x{o.y-o.heighth.y&&o.x+o.width/2>h.x&&o.x-o.width/2{cancelAnimationFrame(r),clearInterval(y),t.removeEventListener("click",T),window.removeEventListener("resize",i)}},[]),d.jsx("canvas",{ref:e,className:"w-full h-full"})}function _P(){const e=w.useRef(null);return w.useEffect(()=>{const t=e.current,n=t.getContext("2d");let r;const i=()=>{const{width:h,height:m}=t.getBoundingClientRect();t.width=h,t.height=m};i();let o={x:t.width/2,y:t.height-100,angle:-Math.PI/2,speed:3,drift:!1},s=[],a=0,l=!1,c=0;function u(){s=[];for(let h=0;h<200;h++){const m=Math.max(150,300-h*.5),S=t.width/2+Math.sin(h*.1)*100;s.push({y:-h*100,left:S-m/2,right:S+m/2})}}u();function f(){n.save(),n.translate(o.x,o.y),n.rotate(o.angle),n.fillStyle="#f87171",n.fillRect(-15,-10,30,20),n.restore()}function p(){n.fillStyle="#4a5568",n.fillRect(0,0,t.width,t.height),n.save(),n.translate(0,c),s.forEach(h=>{n.fillStyle="#2d3748",n.fillRect(h.left,h.y,h.right-h.left,100)}),n.restore()}function g(){if(l)return;if(o.drift)o.angle+=.05;else{const m=-Math.PI/2;o.angle+=(m-o.angle)*.1}if(o.x+=Math.cos(o.angle)*o.speed,c+=Math.sin(o.angle)*-o.speed,a+=1,s.find(m=>-m.y>c-t.height&&-m.ym>C.y&&mS.right)&&(l=!0):l=!0}else l=!0}function x(){n.clearRect(0,0,t.width,t.height),p(),f(),n.fillStyle="white",n.font='24px "JetBrains Mono"',n.textAlign="left",n.fillText(`Score: ${a}`,20,30),l&&(n.fillStyle="rgba(0, 0, 0, 0.7)",n.fillRect(0,0,t.width,t.height),n.fillStyle="white",n.font='40px "JetBrains Mono"',n.textAlign="center",n.fillText("GAME OVER",t.width/2,t.height/2-20),n.font='20px "JetBrains Mono"',n.fillText("Click to Restart",t.width/2,t.height/2+20))}function v(){g(),x(),r=requestAnimationFrame(v)}function T(){l?(o={x:t.width/2,y:t.height-100,angle:-Math.PI/2,speed:3,drift:!1},u(),a=0,l=!1,c=0):o.drift=!0}function y(){o.drift=!1}return v(),t.addEventListener("mousedown",T),t.addEventListener("mouseup",y),t.addEventListener("touchstart",T),t.addEventListener("touchend",y),window.addEventListener("resize",i),()=>{cancelAnimationFrame(r),t.removeEventListener("mousedown",T),t.removeEventListener("mouseup",y),t.removeEventListener("touchstart",T),t.removeEventListener("touchend",y),window.removeEventListener("resize",i)}},[]),d.jsx("canvas",{ref:e,className:"w-full h-full"})}function VP(){const e=w.useRef(null);return w.useEffect(()=>{const t=e.current,n=t.getContext("2d");let r;const i=()=>{const{width:h,height:m}=t.getBoundingClientRect();t.width=h,t.height=m};i();let o={x:t.width/2,y:t.height-50,radius:15},s=[],a=[],l,c=1,u=!1,f=!1;function p(h){a=[],s=[],u=!1,f=!1;const m=2+h;for(let S=0;S{m.y-=m.speed,m.y<-m.radius&&s.splice(S,1),a.forEach(C=>{Math.hypot(m.x-C.x,m.y-C.y)m.active)&&(l.open=!0,s.forEach((m,S)=>{Math.hypot(m.x-l.x,m.y-l.y)g(h.x,h.y,h.radius,"#ec4899")),a.forEach(h=>g(h.x,h.y,h.radius,h.color)),g(l.x,l.y,l.radius,l.open?"#22c55e":"#ef4444"),n.fillStyle="white",n.font='24px "JetBrains Mono"',n.textAlign="left",n.fillText(`Level: ${c}`,20,30),f&&(n.fillStyle="rgba(0, 0, 0, 0.7)",n.fillRect(0,0,t.width,t.height),n.fillStyle="white",n.font='40px "JetBrains Mono"',n.textAlign="center",n.fillText("LEVEL CLEAR!",t.width/2,t.height/2-20),n.font='20px "JetBrains Mono"',n.fillText("Click for Next Level",t.width/2,t.height/2+20))}function T(){x(),v(),r=requestAnimationFrame(T)}function y(){if(f){c++,p(c);return}if(u){c=1,p(c);return}s.push({x:o.x,y:o.y,radius:8,speed:5})}return T(),t.addEventListener("click",y),window.addEventListener("resize",i),()=>{cancelAnimationFrame(r),t.removeEventListener("click",y),window.removeEventListener("resize",i)}},[]),d.jsx("canvas",{ref:e,className:"w-full h-full"})}const FP={"chicken-reflex":{name:"Chicken Reflex",descriptionKey:"chickenReflexDesc",component:OP,instructions:{en:"Tap or click anywhere to make the chicken jump forward. Avoid the cars!",it:"Tocca o fai clic ovunque per far saltare il pollo in avanti. Evita le macchine!"}},"tap-drift":{name:"Tap Drift",descriptionKey:"tapDriftDesc",component:_P,instructions:{en:"Tap and hold to drift. Release to straighten out. Stay on the track!",it:"Tocca e tieni premuto per derapare. Rilascia per raddrizzare. Rimani in pista!"}},"signal-link":{name:"Signal Link",descriptionKey:"signalLinkDesc",component:VP,instructions:{en:"Tap to send a pulse. Time your pulses to hit the green nodes and open the exit.",it:"Tocca per inviare un impulso. Cronometra i tuoi impulsi per colpire i nodi verdi e aprire l'uscita."}}};function BP(){const{slug:e}=Jc(),{t,language:n}=We(),r=FP[e];if(!r)return d.jsx(eu,{to:"/games",replace:!0});const i=r.component;return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[r.name," — Input Craft"]}),d.jsx("meta",{name:"description",content:t(r.descriptionKey)}),d.jsx("meta",{property:"og:title",content:`${r.name} — Input Craft`}),d.jsx("meta",{property:"og:description",content:t(r.descriptionKey)})]}),d.jsx("div",{className:"min-h-screen py-12 md:py-20",children:d.jsx("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-8",children:[d.jsxs("div",{className:"text-center space-y-4",children:[d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:r.name}),d.jsx("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto",children:t(r.descriptionKey)})]}),d.jsx("div",{className:"aspect-video w-full glass-effect rounded-xl overflow-hidden neon-glow",children:d.jsx(i,{})}),d.jsxs("div",{className:"glass-effect rounded-xl p-6 text-center",children:[d.jsx("h2",{className:"text-2xl font-bold text-white mb-2",children:n==="it"?"Controlli":"Controls"}),d.jsx("p",{className:"text-gray-300",children:r.instructions[n]})]})]})})})]})}function UP(){const{slug:e}=Jc(),{language:t,t:n}=We(),r=rv.find(a=>a.slug===e);if(w.useEffect(()=>{window.scrollTo(0,0)},[e]),!r)return d.jsx(eu,{to:"/blog",replace:!0});const i=r[t],o=n(`blogPost.${e}.title`),s=n(`blogPost.${e}.excerpt`);return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[o," — Input Craft"]}),d.jsx("meta",{name:"description",content:s}),d.jsx("meta",{property:"og:title",content:`${o} — Input Craft`}),d.jsx("meta",{property:"og:description",content:s}),d.jsx("meta",{property:"og:type",content:"article"}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}blog/${e}`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:`https://inputcraft.com/it/blog/${e}`}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:`https://inputcraft.com/blog/${e}`})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-12",children:[d.jsxs("div",{children:[d.jsx(Le,{asChild:!0,variant:"ghost",className:"mb-8",children:d.jsxs(ge,{to:"/blog",className:"flex items-center text-amber-400",children:[d.jsx(xs,{className:"mr-2 h-4 w-4"}),n("backToBlog")]})}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("span",{className:"px-3 py-1 bg-red-600 text-white text-sm rounded-full",children:i.category}),d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:o}),d.jsxs("div",{className:"flex items-center space-x-4 text-sm text-gray-400",children:[d.jsxs("div",{className:"flex items-center space-x-1",children:[d.jsx(ny,{className:"h-4 w-4"}),d.jsx("span",{children:new Date(r.date).toLocaleDateString(t)})]}),d.jsxs("div",{className:"flex items-center space-x-1",children:[d.jsx(qi,{className:"h-4 w-4"}),d.jsx("span",{children:i.readTime})]})]})]})]}),d.jsx("div",{className:"aspect-video glass-effect rounded-xl overflow-hidden",children:d.jsx("img",{alt:`${o} blog post cover image`,className:"w-full h-full object-cover",src:r.image})}),d.jsx("article",{className:"prose prose-invert prose-lg max-w-none text-gray-300 prose-p:leading-relaxed prose-headings:text-white prose-a:text-amber-400 hover:prose-a:text-amber-500",dangerouslySetInnerHTML:{__html:i.content}}),d.jsx("div",{className:"border-t border-white/10 pt-8 text-center",children:d.jsx(Le,{asChild:!0,variant:"outline",size:"lg",className:"border-amber-500 text-amber-400 hover:bg-amber-500/10 hover:text-amber-400",children:d.jsxs(ge,{to:"/blog",children:[d.jsx(xs,{className:"mr-2 h-4 w-4"}),n("backToBlog")]})})})]})})})]})}function $P(){const{slug:e}=Jc(),{language:t,t:n}=We(),r=nv.find(l=>l.slug===e);if(w.useEffect(()=>{window.scrollTo(0,0)},[e]),!r)return d.jsx(eu,{to:"/analysis",replace:!0});const i=r[t],o=n(`analysisPost.${e}.title`),s=n(`analysisPost.${e}.excerpt`),a={Zap:()=>d.jsx("img",{alt:"Zap icon",src:"/Thellusion.png"}),Clock:()=>d.jsx("img",{alt:"Clock icon",src:"/TimingWindows.png"}),Target:()=>d.jsx("img",{alt:"Target icon",src:"/TheChicken.png"})}[r.icon];return d.jsxs(d.Fragment,{children:[d.jsxs(et,{children:[d.jsxs("title",{children:[o," — Input Craft"]}),d.jsx("meta",{name:"description",content:s}),d.jsx("meta",{property:"og:title",content:`${o} — Input Craft`}),d.jsx("meta",{property:"og:description",content:s}),d.jsx("meta",{property:"og:type",content:"article"}),d.jsx("link",{rel:"canonical",href:`https://inputcraft.com/${t==="it"?"it/":""}analysis/${e}`}),t==="en"&&d.jsx("link",{rel:"alternate",hrefLang:"it",href:`https://inputcraft.com/it/analysis/${e}`}),t==="it"&&d.jsx("link",{rel:"alternate",hrefLang:"en",href:`https://inputcraft.com/analysis/${e}`})]}),d.jsx("div",{className:"min-h-screen py-20",children:d.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",children:d.jsxs(U.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"space-y-12",children:[d.jsxs("div",{children:[d.jsx(Le,{asChild:!0,variant:"ghost",className:"mb-8",children:d.jsxs(ge,{to:"/analysis",className:"flex items-center text-amber-400",children:[d.jsx(xs,{className:"mr-2 h-4 w-4"}),n("backToAnalysis")]})}),d.jsxs("div",{className:"space-y-4",children:[d.jsx("span",{className:"px-3 py-1 bg-red-600 text-white text-sm rounded-full",children:i.category}),d.jsx("h1",{className:"text-4xl md:text-5xl font-bold gradient-text",children:o}),d.jsx("div",{className:"flex items-center space-x-4 text-sm text-gray-400",children:d.jsxs("div",{className:"flex items-center space-x-1",children:[d.jsx(qi,{className:"h-4 w-4"}),d.jsx("span",{children:i.readTime})]})})]})]}),d.jsx("div",{className:"aspect-video glass-effect rounded-xl overflow-hidden flex items-center justify-center bg-black/20",children:d.jsx(a,{})}),d.jsx("article",{className:"prose prose-invert prose-lg max-w-none text-gray-300 prose-p:leading-relaxed prose-headings:text-white prose-a:text-amber-400 hover:prose-a:text-amber-500 prose-ul:list-disc prose-ul:pl-6 prose-li:my-2",dangerouslySetInnerHTML:{__html:i.content}}),d.jsx("div",{className:"border-t border-white/10 pt-8 text-center",children:d.jsx(Le,{asChild:!0,variant:"outline",size:"lg",className:"border-amber-500 text-amber-400 hover:bg-amber-500/10 hover:text-amber-400",children:d.jsxs(ge,{to:"/analysis",children:[d.jsx(xs,{className:"mr-2 h-4 w-4"}),n("backToAnalysis")]})})})]})})})]})}function WP(){return d.jsx(zw,{children:d.jsx(Rw,{children:d.jsx(kw,{children:d.jsxs(Qe,{path:"/",element:d.jsx(Ib,{}),children:[d.jsx(Qe,{index:!0,element:d.jsx(NP,{})}),d.jsx(Qe,{path:"games",element:d.jsx(AP,{})}),d.jsx(Qe,{path:"games/:slug",element:d.jsx(BP,{})}),d.jsx(Qe,{path:"analysis",element:d.jsx(RP,{})}),d.jsx(Qe,{path:"analysis/:slug",element:d.jsx($P,{})}),d.jsx(Qe,{path:"blog",element:d.jsx(LP,{})}),d.jsx(Qe,{path:"blog/:slug",element:d.jsx(UP,{})}),d.jsx(Qe,{path:"about",element:d.jsx(IP,{})}),d.jsx(Qe,{path:"privacy",element:d.jsx(MP,{})}),d.jsx(Qe,{path:"terms",element:d.jsx(zP,{})}),d.jsx(Qe,{path:"cookies",element:d.jsx(DP,{})})]})})})})}Oa.createRoot(document.getElementById("root")).render(d.jsx(oe.StrictMode,{children:d.jsx(WP,{})}));