Files
echo-nexus/.next/server/chunks/ssr/[root-of-the-server]__784abf88._.js
T

21 lines
561 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
module.exports=[54826,(a,b,c)=>{},15299,(a,b,c)=>{a.r(54826);var d=a.r(72131),e=d&&"object"==typeof d&&"default"in d?d:{default:d},f="u">typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b<document.styleSheets.length;b++)if(document.styleSheets[b].ownerNode===a)return document.styleSheets[b]},c.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},c.insertRule=function(a,b){return i(g(a),"`insertRule` accepts only strings"),"number"!=typeof b&&(b=this._serverSheet.cssRules.length),this._serverSheet.insertRule(a,b),this._rulesCount++},c.replaceRule=function(a,b){this._optimizeForSpeed;var c=this._serverSheet;if(b.trim()||(b=this._deletedRulePlaceholder),!c.cssRules[a])return a;c.deleteRule(a);try{c.insertRule(b,a)}catch(d){f||console.warn("StyleSheet: illegal rule: \n\n"+b+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),c.insertRule(this._deletedRulePlaceholder,a)}return a},c.deleteRule=function(a){this._serverSheet.deleteRule(a)},c.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},c.cssRules=function(){return this._serverSheet.cssRules},c.makeStyleTag=function(a,b,c){b&&i(g(b),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+a,""),b&&d.appendChild(document.createTextNode(b));var e=document.head||document.getElementsByTagName("head")[0];return c?e.insertBefore(d,c):e.appendChild(d),d},b=[{key:"length",get:function(){return this._rulesCount}}],function(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}(a.prototype,b),a}();function i(a,b){if(!a)throw Error("StyleSheet: "+b+".")}var j=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);function p(){return new n}function q(){return d.useContext(o)}function r(a){var b=q();return b&&b.add(a),null}o.displayName="StyleSheetContext",e.default.useInsertionEffect||e.default.useLayoutEffect,r.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},c.StyleRegistry=function(a){var b=a.registry,c=a.children,f=d.useContext(o),g=d.useState(function(){return f||b||p()})[0];return e.default.createElement(o.Provider,{value:g},c)},c.createStyleRegistry=p,c.style=r,c.useStyleRegistry=q},31626,(a,b,c)=>{b.exports=a.r(15299).style},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},41997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},32245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(41997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},7773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},68063,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},97458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(87924),e=a.r(35112),f=a.r(56704),g=a.r(7773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},69853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(87924),e=a.r(72131),f=a.r(32245),g=a.r(97458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},19721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(33354)._(a.r(69853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},33405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},21517,(a,b,c)=>{b.exports=a.x("http",()=>require("http"))},24836,(a,b,c)=>{b.exports=a.x("https",()=>require("https"))},63047,(a,b,c)=>{var d=a.r(22734),e=a.r(92509),f=a.r(33405).spawn;function g(b){"use strict";b=b||{};var c,g,h=this,i=a.r(21517),j=a.r(24836),k={},l=!1,m={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},n=Object.assign({},m),o=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],p=["TRACE","TRACK","CONNECT"],q=!1,r=!1,s=!1,t={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),this.status=null,this.statusText=null,this.open=function(a,b,c,d,e){if(this.abort(),r=!1,s=!1,!(a&&-1===p.indexOf(a)))throw Error("SecurityError: Request method not allowed");k={method:a,url:b.toString(),async:"boolean"!=typeof c||c,user:d||null,password:e||null},u(this.OPENED)},this.setDisableHeaderCheck=function(a){l=a},this.setRequestHeader=function(a,b){if(this.readyState!=this.OPENED)throw Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(!l&&(!a||-1!==o.indexOf(a.toLowerCase())))return console.warn('Refused to set unsafe header "'+a+'"'),!1;if(q)throw Error("INVALID_STATE_ERR: send flag is true");return n[a]=b,!0},this.getResponseHeader=function(a){return"string"==typeof a&&this.readyState>this.OPENED&&g.headers[a.toLowerCase()]&&!r?g.headers[a.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState<this.HEADERS_RECEIVED||r)return"";var a="";for(var b in g.headers)"set-cookie"!==b&&"set-cookie2"!==b&&(a+=b+": "+g.headers[b]+"\r\n");return a.substr(0,a.length-2)},this.getRequestHeader=function(a){return"string"==typeof a&&n[a]?n[a]:""},this.send=function(a){if(this.readyState!=this.OPENED)throw Error("INVALID_STATE_ERR: connection must be opened before send() is called");if(q)throw Error("INVALID_STATE_ERR: send has already been called");var l,m=!1,o=!1,p=e.parse(k.url);switch(p.protocol){case"https:":m=!0;case"http:":l=p.hostname;break;case"file:":o=!0;break;case void 0:case"":l="localhost";break;default:throw Error("Protocol not supported.")}if(o){if("GET"!==k.method)throw Error("XMLHttpRequest: Only GET method is supported");if(k.async)d.readFile(unescape(p.pathname),function(a,b){a?h.handleError(a,a.errno||-1):(h.status=200,h.responseText=b.toString("utf8"),h.response=b,u(h.DONE))});else try{this.response=d.readFileSync(unescape(p.pathname)),this.responseText=this.response.toString("utf8"),this.status=200,u(h.DONE)}catch(a){this.handleError(a,a.errno||-1)}return}var s=p.port||(m?443:80),t=p.pathname+(p.search?p.search:"");if(n.Host=l,m&&443===s||80===s||(n.Host+=":"+p.port),k.user){void 0===k.password&&(k.password="");var v=new Buffer(k.user+":"+k.password);n.Authorization="Basic "+v.toString("base64")}"GET"===k.method||"HEAD"===k.method?a=null:a?(n["Content-Length"]=Buffer.isBuffer(a)?a.length:Buffer.byteLength(a),Object.keys(n).some(function(a){return"content-type"===a.toLowerCase()})||(n["Content-Type"]="text/plain;charset=UTF-8")):"POST"===k.method&&(n["Content-Length"]=0);var w=b.agent||!1,x={host:l,port:s,path:t,method:k.method,headers:n,agent:w};if(m&&(x.pfx=b.pfx,x.key=b.key,x.passphrase=b.passphrase,x.cert=b.cert,x.ca=b.ca,x.ciphers=b.ciphers,x.rejectUnauthorized=!1!==b.rejectUnauthorized),r=!1,k.async){var y=m?j.request:i.request;q=!0,h.dispatchEvent("readystatechange");var z=function(a){if(302===(g=a).statusCode||303===g.statusCode||307===g.statusCode){k.url=g.headers.location;var d=e.parse(k.url);l=d.hostname;var f={hostname:d.hostname,port:d.port,path:d.path,method:303===g.statusCode?"GET":k.method,headers:n};m&&(f.pfx=b.pfx,f.key=b.key,f.passphrase=b.passphrase,f.cert=b.cert,f.ca=b.ca,f.ciphers=b.ciphers,f.rejectUnauthorized=!1!==b.rejectUnauthorized),(c=y(f,z).on("error",A)).end();return}u(h.HEADERS_RECEIVED),h.status=g.statusCode,g.on("data",function(a){if(a){var b=Buffer.from(a);h.response=Buffer.concat([h.response,b])}q&&u(h.LOADING)}),g.on("end",function(){q&&(q=!1,u(h.DONE),h.responseText=h.response.toString("utf8"))}),g.on("error",function(a){h.handleError(a)})},A=function(a){if(c.reusedSocket&&"ECONNRESET"===a.code)return y(x,z).on("error",A);h.handleError(a)};c=y(x,z).on("error",A),b.autoUnref&&c.on("socket",a=>{a.unref()}),a&&c.write(a),c.end(),h.dispatchEvent("loadstart")}else{var B=".node-xmlhttprequest-content-"+process.pid,C=".node-xmlhttprequest-sync-"+process.pid;d.writeFileSync(C,"","utf8");for(var D="var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http"+(m?"s":"")+".request;var options = "+JSON.stringify(x)+";var responseText = '';var responseData = Buffer.alloc(0);var req = doRequest(options, function(response) {response.on('data', function(chunk) { var data = Buffer.from(chunk); responseText += data.toString('utf8'); responseData = Buffer.concat([responseData, data]);});response.on('end', function() {fs.writeFileSync('"+B+"', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');fs.unlinkSync('"+C+"');});response.on('error', function(error) {fs.writeFileSync('"+B+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+C+"');});}).on('error', function(error) {fs.writeFileSync('"+B+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+C+"');});"+(a?"req.write('"+JSON.stringify(a).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",E=f(process.argv[0],["-e",D]);d.existsSync(C););if(h.responseText=d.readFileSync(B,"utf8"),E.stdin.end(),d.unlinkSync(B),h.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var F=JSON.parse(h.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));h.handleError(F,503)}else{h.status=h.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var G=JSON.parse(h.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));g={statusCode:h.status,headers:G.data.headers},h.responseText=G.data.text,h.response=Buffer.from(G.data.data,"base64"),u(h.DONE,!0)}}},this.handleError=function(a,b){this.status=b||0,this.statusText=a,this.responseText=a.stack,r=!0,u(this.DONE)},this.abort=function(){c&&(c.abort(),c=null),n=Object.assign({},m),this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),r=s=!0,this.readyState!==this.UNSENT&&(this.readyState!==this.OPENED||q)&&this.readyState!==this.DONE&&(q=!1,u(this.DONE)),this.readyState=this.UNSENT},this.addEventListener=function(a,b){a in t||(t[a]=[]),t[a].push(b)},this.removeEventListener=function(a,b){a in t&&(t[a]=t[a].filter(function(a){return a!==b}))},this.dispatchEvent=function(a){if("function"==typeof h["on"+a]&&(this.readyState===this.DONE&&k.async?setTimeout(function(){h["on"+a]()},0):h["on"+a]()),a in t)for(let b=0,c=t[a].length;b<c;b++)this.readyState===this.DONE?setTimeout(function(){t[a][b].call(h)},0):t[a][b].call(h)};var u=function(a){if(h.readyState!==a&&(h.readyState!==h.UNSENT||!s)&&(h.readyState=a,(k.async||h.readyState<h.OPENED||h.readyState===h.DONE)&&h.dispatchEvent("readystatechange"),h.readyState===h.DONE)){let a;a=s?"abort":r?"error":"load",h.dispatchEvent(a),h.dispatchEvent("loadend")}}}b.exports=g,g.XMLHttpRequest=g},84425,(a,b,c)=>{function d(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}b.exports=function(a,b){b=b||{};var c,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return b.long?(e=Math.abs(c=a))>=864e5?d(c,e,864e5,"day"):e>=36e5?d(c,e,36e5,"hour"):e>=6e4?d(c,e,6e4,"minute"):e>=1e3?d(c,e,1e3,"second"):c+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},11017,(a,b,c)=>{b.exports=function(b){function c(a){let b,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(b||d),h.prev=b,h.curr=d,b=d,a[0]=c.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(b,d)=>{if("%%"===b)return"%";e++;let f=c.formatters[d];if("function"==typeof f){let c=a[e];b=f.call(h,c),a.splice(e,1),e--}return b}),c.formatArgs.call(h,a),(h.log||c.log).apply(h,a)}return h.namespace=a,h.useColors=c.useColors(),h.color=c.selectColor(a),h.extend=d,h.destroy=c.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==c.namespaces&&(e=c.namespaces,f=c.enabled(a)),f),set:a=>{g=a}}),"function"==typeof c.init&&c.init(h),h}function d(a,b){let d=c(this.namespace+(void 0===b?":":b)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return c.debug=c,c.default=c,c.coerce=function(a){return a instanceof Error?a.stack||a.message:a},c.disable=function(){let a=[...c.names,...c.skips.map(a=>"-"+a)].join(",");return c.enable(""),a},c.enable=function(a){for(let b of(c.save(a),c.namespaces=a,c.names=[],c.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===b[0]?c.skips.push(b.slice(1)):c.names.push(b)},c.enabled=function(a){for(let b of c.skips)if(e(a,b))return!1;for(let b of c.names)if(e(a,b))return!0;return!1},c.humanize=a.r(84425),c.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(b).forEach(a=>{c[a]=b[a]}),c.names=[],c.skips=[],c.formatters={},c.selectColor=function(a){let b=0;for(let c=0;c<a.length;c++)b=(b<<5)-b+a.charCodeAt(c)|0;return c.colors[Math.abs(b)%c.colors.length]},c.enable(c.load()),c}},70722,(a,b,c)=>{b.exports=a.x("tty",()=>require("tty"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},55858,(a,b,c)=>{"use strict";b.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},73083,(a,b,c)=>{"use strict";let d;a.r(46786);let e=a.r(70722),f=a.r(55858),{env:g}=process;function h(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function i(a,b){if(0===d)return 0;if(f("color=16m")||f("color=full")||f("color=truecolor"))return 3;if(f("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===g.TERM)return c;if("CI"in g)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in g)||"codeship"===g.CI_NAME?1:c;if("TEAMCITY_VERSION"in g)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(g.TEAMCITY_VERSION);if("truecolor"===g.COLORTERM)return 3;if("TERM_PROGRAM"in g){let a=parseInt((g.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(g.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(g.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(g.TERM)||"COLORTERM"in g?1:c}f("no-color")||f("no-colors")||f("color=false")||f("color=never")?d=0:(f("color")||f("colors")||f("color=true")||f("color=always"))&&(d=1),"FORCE_COLOR"in g&&(d="true"===g.FORCE_COLOR?1:"false"===g.FORCE_COLOR?0:0===g.FORCE_COLOR.length?1:Math.min(parseInt(g.FORCE_COLOR,10),3)),b.exports={supportsColor:function(a){return h(i(a,a&&a.isTTY))},stdout:h(i(!0,e.isatty(1))),stderr:h(i(!0,e.isatty(2)))}},81454,(a,b,c)=>{let d=a.r(70722),e=a.r(24361);c.init=function(a){a.inspectOpts={};let b=Object.keys(c.inspectOpts);for(let d=0;d<b.length;d++)a.inspectOpts[b[d]]=c.inspectOpts[b[d]]},c.log=function(...a){return process.stderr.write(e.formatWithOptions(c.inspectOpts,...a)+"\n")},c.formatArgs=function(a){let{namespace:d,useColors:e}=this;if(e){let c=this.color,e="\x1b[3"+(c<8?c:"8;5;"+c),f=` ${e};1m${d} \u001B[0m`;a[0]=f+a[0].split("\n").join("\n"+f),a.push(e+"m+"+b.exports.humanize(this.diff)+"\x1b[0m")}else a[0]=(c.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+a[0]},c.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},c.load=function(){return process.env.DEBUG},c.useColors=function(){return"colors"in c.inspectOpts?!!c.inspectOpts.colors:d.isatty(process.stderr.fd)},c.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),c.colors=[6,2,3,4,5,1];try{let b=a.r(73083);b&&(b.stderr||b).level>=2&&(c.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}c.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),b.exports=a.r(11017)(c);let{formatters:f}=b.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},47522,(a,b,c)=>{let d;c.formatArgs=function(a){if(a[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+a[0]+(this.useColors?"%c ":" ")+"+"+b.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;a.splice(1,0,c,"color: inherit");let d=0,e=0;a[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),a.splice(e,0,c)},c.save=function(a){try{a?c.storage.setItem("debug",a):c.storage.removeItem("debug")}catch(a){}},c.load=function(){let a;try{a=c.storage.getItem("debug")||c.storage.getItem("DEBUG")}catch(a){}return!a&&"u">typeof process&&"env"in process&&(a=process.env.DEBUG),a},c.useColors=function(){let a;return!("u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("u">typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"u">typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},c.storage=function(){try{return localStorage}catch(a){}}(),d=!1,c.destroy=()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))},c.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],c.log=console.debug||console.log||(()=>{}),b.exports=a.r(11017)(c);let{formatters:e}=b.exports;e.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},35290,(a,b,c)=>{"u"<typeof process||"renderer"===process.type||process.__nwjs?b.exports=a.r(47522):b.exports=a.r(81454)},27699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},4446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},55004,(a,b,c)=>{b.exports=a.x("tls",()=>require("tls"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},88947,(a,b,c)=>{b.exports=a.x("stream",()=>require("stream"))},6461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},65514,(a,b,c)=>{"use strict";let d=["nodebuffer","arraybuffer","fragments"],e="u">typeof Blob;e&&d.push("blob"),b.exports={BINARY_TYPES:d,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},40352,(a,b,c)=>{"use strict";let{EMPTY_BUFFER:d}=a.r(65514),e=Buffer[Symbol.species];function f(a,b,c,d,e){for(let f=0;f<e;f++)c[d+f]=a[f]^b[3&f]}function g(a,b){for(let c=0;c<a.length;c++)a[c]^=b[3&c]}function h(a){let b;return(h.readOnly=!0,Buffer.isBuffer(a))?a:(a instanceof ArrayBuffer?b=new e(a):ArrayBuffer.isView(a)?b=new e(a.buffer,a.byteOffset,a.byteLength):(b=Buffer.from(a),h.readOnly=!1),b)}if(b.exports={concat:function(a,b){if(0===a.length)return d;if(1===a.length)return a[0];let c=Buffer.allocUnsafe(b),f=0;for(let b=0;b<a.length;b++){let d=a[b];c.set(d,f),f+=d.length}return f<b?new e(c.buffer,c.byteOffset,f):c},mask:f,toArrayBuffer:function(a){return a.length===a.buffer.byteLength?a.buffer:a.buffer.slice(a.byteOffset,a.byteOffset+a.length)},toBuffer:h,unmask:g},!process.env.WS_NO_BUFFER_UTIL)try{let a=(()=>{let a=Error("Cannot find module 'bufferutil'");throw a.code="MODULE_NOT_FOUND",a})();b.exports.mask=function(b,c,d,e,g){g<48?f(b,c,d,e,g):a.mask(b,c,d,e,g)},b.exports.unmask=function(b,c){b.length<32?g(b,c):a.unmask(b,c)}}catch(a){}},29110,(a,b,c)=>{"use strict";let d=Symbol("kDone"),e=Symbol("kRun");b.exports=class{constructor(a){this[d]=()=>{this.pending--,this[e]()},this.concurrency=a||1/0,this.jobs=[],this.pending=0}add(a){this.jobs.push(a),this[e]()}[e](){if(this.pending!==this.concurrency&&this.jobs.length){let a=this.jobs.shift();this.pending++,a(this[d])}}}},19199,(a,b,c)=>{"use strict";let d,e=a.r(6461),f=a.r(40352),g=a.r(29110),{kStatusCode:h}=a.r(65514),i=Buffer[Symbol.species],j=Buffer.from([0,0,255,255]),k=Symbol("permessage-deflate"),l=Symbol("total-length"),m=Symbol("callback"),n=Symbol("buffers"),o=Symbol("error");function p(a){this[n].push(a),this[l]+=a.length}function q(a){(this[l]+=a.length,this[k]._maxPayload<1||this[l]<=this[k]._maxPayload)?this[n].push(a):(this[o]=RangeError("Max payload size exceeded"),this[o].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[o][h]=1009,this.removeListener("data",q),this.reset())}function r(a){(this[k]._inflate=null,this[o])?this[m](this[o]):(a[h]=1007,this[m](a))}b.exports=class{constructor(a){this._options=a||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._maxPayload=0|this._options.maxPayload,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,d||(d=new g(void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10))}static get extensionName(){return"permessage-deflate"}offer(){let a={};return this._options.serverNoContextTakeover&&(a.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(a.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(a.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?a.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(a.client_max_window_bits=!0),a}accept(a){return a=this.normalizeParams(a),this.params=this._isServer?this.acceptAsServer(a):this.acceptAsClient(a),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let a=this._deflate[m];this._deflate.close(),this._deflate=null,a&&a(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(a){let b=this._options,c=a.find(a=>(!1!==b.serverNoContextTakeover||!a.server_no_context_takeover)&&(!a.server_max_window_bits||!1!==b.serverMaxWindowBits&&("number"!=typeof b.serverMaxWindowBits||!(b.serverMaxWindowBits>a.server_max_window_bits)))&&("number"!=typeof b.clientMaxWindowBits||!!a.client_max_window_bits));if(!c)throw Error("None of the extension offers can be accepted");return b.serverNoContextTakeover&&(c.server_no_context_takeover=!0),b.clientNoContextTakeover&&(c.client_no_context_takeover=!0),"number"==typeof b.serverMaxWindowBits&&(c.server_max_window_bits=b.serverMaxWindowBits),"number"==typeof b.clientMaxWindowBits?c.client_max_window_bits=b.clientMaxWindowBits:(!0===c.client_max_window_bits||!1===b.clientMaxWindowBits)&&delete c.client_max_window_bits,c}acceptAsClient(a){let b=a[0];if(!1===this._options.clientNoContextTakeover&&b.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(b.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&b.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(b.client_max_window_bits=this._options.clientMaxWindowBits);return b}normalizeParams(a){return a.forEach(a=>{Object.keys(a).forEach(b=>{let c=a[b];if(c.length>1)throw Error(`Parameter "${b}" must have only a single value`);if(c=c[0],"client_max_window_bits"===b){if(!0!==c){let a=+c;if(!Number.isInteger(a)||a<8||a>15)throw TypeError(`Invalid value for parameter "${b}": ${c}`);c=a}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${b}": ${c}`)}else if("server_max_window_bits"===b){let a=+c;if(!Number.isInteger(a)||a<8||a>15)throw TypeError(`Invalid value for parameter "${b}": ${c}`);c=a}else if("client_no_context_takeover"===b||"server_no_context_takeover"===b){if(!0!==c)throw TypeError(`Invalid value for parameter "${b}": ${c}`)}else throw Error(`Unknown parameter "${b}"`);a[b]=c})}),a}decompress(a,b,c){d.add(d=>{this._decompress(a,b,(a,b)=>{d(),c(a,b)})})}compress(a,b,c){d.add(d=>{this._compress(a,b,(a,b)=>{d(),c(a,b)})})}_decompress(a,b,c){let d=this._isServer?"client":"server";if(!this._inflate){let a=`${d}_max_window_bits`,b="number"!=typeof this.params[a]?e.Z_DEFAULT_WINDOWBITS:this.params[a];this._inflate=e.createInflateRaw({...this._options.zlibInflateOptions,windowBits:b}),this._inflate[k]=this,this._inflate[l]=0,this._inflate[n]=[],this._inflate.on("error",r),this._inflate.on("data",q)}this._inflate[m]=c,this._inflate.write(a),b&&this._inflate.write(j),this._inflate.flush(()=>{let a=this._inflate[o];if(a){this._inflate.close(),this._inflate=null,c(a);return}let e=f.concat(this._inflate[n],this._inflate[l]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[l]=0,this._inflate[n]=[],b&&this.params[`${d}_no_context_takeover`]&&this._inflate.reset()),c(null,e)})}_compress(a,b,c){let d=this._isServer?"server":"client";if(!this._deflate){let a=`${d}_max_window_bits`,b="number"!=typeof this.params[a]?e.Z_DEFAULT_WINDOWBITS:this.params[a];this._deflate=e.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:b}),this._deflate[l]=0,this._deflate[n]=[],this._deflate.on("data",p)}this._deflate[m]=c,this._deflate.write(a),this._deflate.flush(e.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let a=f.concat(this._deflate[n],this._deflate[l]);b&&(a=new i(a.buffer,a.byteOffset,a.length-4)),this._deflate[m]=null,this._deflate[l]=0,this._deflate[n]=[],b&&this.params[`${d}_no_context_takeover`]&&this._deflate.reset(),c(null,a)})}}},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},55572,(a,b,c)=>{"use strict";let{isUtf8:d}=a.r(874),{hasBlob:e}=a.r(65514);function f(a){let b=a.length,c=0;for(;c<b;)if((128&a[c])==0)c++;else if((224&a[c])==192){if(c+1===b||(192&a[c+1])!=128||(254&a[c])==192)return!1;c+=2}else if((240&a[c])==224){if(c+2>=b||(192&a[c+1])!=128||(192&a[c+2])!=128||224===a[c]&&(224&a[c+1])==128||237===a[c]&&(224&a[c+1])==160)return!1;c+=3}else{if((248&a[c])!=240||c+3>=b||(192&a[c+1])!=128||(192&a[c+2])!=128||(192&a[c+3])!=128||240===a[c]&&(240&a[c+1])==128||244===a[c]&&a[c+1]>143||a[c]>244)return!1;c+=4}return!0}if(b.exports={isBlob:function(a){return e&&"object"==typeof a&&"function"==typeof a.arrayBuffer&&"string"==typeof a.type&&"function"==typeof a.stream&&("Blob"===a[Symbol.toStringTag]||"File"===a[Symbol.toStringTag])},isValidStatusCode:function(a){return a>=1e3&&a<=1014&&1004!==a&&1005!==a&&1006!==a||a>=3e3&&a<=4999},isValidUTF8:f,tokenChars:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]},d)b.exports.isValidUTF8=function(a){return a.length<24?f(a):d(a)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let a=(()=>{let a=Error("Cannot find module 'utf-8-validate'");throw a.code="MODULE_NOT_FOUND",a})();b.exports.isValidUTF8=function(b){return b.length<32?f(b):a(b)}}catch(a){}},75091,(a,b,c)=>{"use strict";let{Writable:d}=a.r(88947),e=a.r(19199),{BINARY_TYPES:f,EMPTY_BUFFER:g,kStatusCode:h,kWebSocket:i}=a.r(65514),{concat:j,toArrayBuffer:k,unmask:l}=a.r(40352),{isValidStatusCode:m,isValidUTF8:n}=a.r(55572),o=Buffer[Symbol.species];b.exports=class extends d{constructor(a={}){super(),this._allowSynchronousEvents=void 0===a.allowSynchronousEvents||a.allowSynchronousEvents,this._binaryType=a.binaryType||f[0],this._extensions=a.extensions||{},this._isServer=!!a.isServer,this._maxBufferedChunks=0|a.maxBufferedChunks,this._maxFragments=0|a.maxFragments,this._maxPayload=0|a.maxPayload,this._skipUTF8Validation=!!a.skipUTF8Validation,this[i]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(a,b,c){return 8===this._opcode&&0==this._state?c():this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks?void c(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS")):void(this._bufferedBytes+=a.length,this._buffers.push(a),this.startLoop(c))}consume(a){if(this._bufferedBytes-=a,a===this._buffers[0].length)return this._buffers.shift();if(a<this._buffers[0].length){let b=this._buffers[0];return this._buffers[0]=new o(b.buffer,b.byteOffset+a,b.length-a),new o(b.buffer,b.byteOffset,a)}let b=Buffer.allocUnsafe(a);do{let c=this._buffers[0],d=b.length-a;a>=c.length?b.set(this._buffers.shift(),d):(b.set(new Uint8Array(c.buffer,c.byteOffset,a),d),this._buffers[0]=new o(c.buffer,c.byteOffset+a,c.length-a)),a-=c.length}while(a>0)return b}startLoop(a){this._loop=!0;do switch(this._state){case 0:this.getInfo(a);break;case 1:this.getPayloadLength16(a);break;case 2:this.getPayloadLength64(a);break;case 3:this.getMask();break;case 4:this.getData(a);break;case 5:case 6:this._loop=!1;return}while(this._loop)this._errored||a()}getInfo(a){if(this._bufferedBytes<2){this._loop=!1;return}let b=this.consume(2);if((48&b[0])!=0)return void a(this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3"));let c=(64&b[0])==64;if(c&&!this._extensions[e.extensionName])return void a(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._fin=(128&b[0])==128,this._opcode=15&b[0],this._payloadLength=127&b[1],0===this._opcode){if(c)return void a(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(!this._fragmented)return void a(this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE"));this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return void a(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));this._compressed=c}else{if(!(this._opcode>7)||!(this._opcode<11))return void a(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));if(!this._fin)return void a(this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN"));if(c)return void a(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength)return void a(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"))}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=(128&b[1])==128,this._isServer){if(!this._masked)return void a(this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK"))}else if(this._masked)return void a(this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK"));126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(a)}getPayloadLength16(a){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(a)}getPayloadLength64(a){if(this._bufferedBytes<8){this._loop=!1;return}let b=this.consume(8),c=b.readUInt32BE(0);c>2097151?a(this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=0x100000000*c+b.readUInt32BE(4),this.haveLength(a))}haveLength(a){this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)?a(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH")):this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(a){let b=g;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}b=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!=0&&l(b,this._mask)}if(this._opcode>7)return void this.controlMessage(b,a);if(this._compressed){this._state=5,this.decompress(b,a);return}if(b.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments)return void a(this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));this._messageLength=this._totalPayloadLength,this._fragments.push(b)}this.dataMessage(a)}decompress(a,b){this._extensions[e.extensionName].decompress(a,this._fin,(a,c)=>{if(a)return b(a);if(c.length){if(this._messageLength+=c.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return void b(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));if(this._maxFragments>0&&this._fragments.length>=this._maxFragments)return void b(this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));this._fragments.push(c)}this.dataMessage(b),0===this._state&&this.startLoop(b)})}dataMessage(a){if(!this._fin){this._state=0;return}let b=this._messageLength,c=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let d;d="nodebuffer"===this._binaryType?j(c,b):"arraybuffer"===this._binaryType?k(j(c,b)):"blob"===this._binaryType?new Blob(c):c,this._allowSynchronousEvents?(this.emit("message",d,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",d,!0),this._state=0,this.startLoop(a)}))}else{let d=j(c,b);if(!this._skipUTF8Validation&&!n(d))return void a(this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8"));5===this._state||this._allowSynchronousEvents?(this.emit("message",d,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",d,!1),this._state=0,this.startLoop(a)}))}}controlMessage(a,b){if(8===this._opcode){if(0===a.length)this._loop=!1,this.emit("conclude",1005,g),this.end();else{let c=a.readUInt16BE(0);if(!m(c))return void b(this.createError(RangeError,`invalid status code ${c}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE"));let d=new o(a.buffer,a.byteOffset+2,a.length-2);if(!this._skipUTF8Validation&&!n(d))return void b(this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8"));this._loop=!1,this.emit("conclude",c,d),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",a),this._state=0):(this._state=6,setImmediate(()=>{this.emit(9===this._opcode?"ping":"pong",a),this._state=0,this.startLoop(b)}))}createError(a,b,c,d,e){this._loop=!1,this._errored=!0;let f=new a(c?`Invalid WebSocket frame: ${b}`:b);return Error.captureStackTrace(f,this.createError),f.code=e,f[h]=d,f}}},10697,(a,b,c)=>{"use strict";let d,{Duplex:e}=a.r(88947),{randomFillSync:f}=a.r(54799),{types:{isUint8Array:g}}=a.r(24361),h=a.r(19199),{EMPTY_BUFFER:i,kWebSocket:j,NOOP:k}=a.r(65514),{isBlob:l,isValidStatusCode:m}=a.r(55572),{mask:n,toBuffer:o}=a.r(40352),p=Symbol("kByteLength"),q=Buffer.alloc(4),r=8192;class s{constructor(a,b,c){this._extensions=b||{},c&&(this._generateMask=c,this._maskBuffer=Buffer.alloc(4)),this._socket=a,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=k,this[j]=void 0}static frame(a,b){let c,e,g=!1,h=2,i=!1;b.mask&&(c=b.maskBuffer||q,b.generateMask?b.generateMask(c):(8192===r&&(void 0===d&&(d=Buffer.alloc(8192)),f(d,0,8192),r=0),c[0]=d[r++],c[1]=d[r++],c[2]=d[r++],c[3]=d[r++]),i=(c[0]|c[1]|c[2]|c[3])==0,h=6),"string"==typeof a?e=(!b.mask||i)&&void 0!==b[p]?b[p]:(a=Buffer.from(a)).length:(e=a.length,g=b.mask&&b.readOnly&&!i);let j=e;e>=65536?(h+=8,j=127):e>125&&(h+=2,j=126);let k=Buffer.allocUnsafe(g?e+h:h);return(k[0]=b.fin?128|b.opcode:b.opcode,b.rsv1&&(k[0]|=64),k[1]=j,126===j?k.writeUInt16BE(e,2):127===j&&(k[2]=k[3]=0,k.writeUIntBE(e,4,6)),b.mask)?(k[1]|=128,k[h-4]=c[0],k[h-3]=c[1],k[h-2]=c[2],k[h-1]=c[3],i)?[k,a]:g?(n(a,c,k,h,e),[k]):(n(a,c,a,0,e),[k,a]):[k,a]}close(a,b,c,d){let e;if(void 0===a)e=i;else if("number"==typeof a&&m(a))if(void 0!==b&&b.length){let c=Buffer.byteLength(b);if(c>123)throw RangeError("The message must not be greater than 123 bytes");if((e=Buffer.allocUnsafe(2+c)).writeUInt16BE(a,0),"string"==typeof b)e.write(b,2);else if(g(b))e.set(b,2);else throw TypeError("Second argument must be a string or a Uint8Array")}else(e=Buffer.allocUnsafe(2)).writeUInt16BE(a,0);else throw TypeError("First argument must be a valid error code number");let f={[p]:e.length,fin:!0,generateMask:this._generateMask,mask:c,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};0!==this._state?this.enqueue([this.dispatch,e,!1,f,d]):this.sendFrame(s.frame(e,f),d)}ping(a,b,c){let d,e;if("string"==typeof a?(d=Buffer.byteLength(a),e=!1):l(a)?(d=a.size,e=!1):(d=(a=o(a)).length,e=o.readOnly),d>125)throw RangeError("The data size must not be greater than 125 bytes");let f={[p]:d,fin:!0,generateMask:this._generateMask,mask:b,maskBuffer:this._maskBuffer,opcode:9,readOnly:e,rsv1:!1};l(a)?0!==this._state?this.enqueue([this.getBlobData,a,!1,f,c]):this.getBlobData(a,!1,f,c):0!==this._state?this.enqueue([this.dispatch,a,!1,f,c]):this.sendFrame(s.frame(a,f),c)}pong(a,b,c){let d,e;if("string"==typeof a?(d=Buffer.byteLength(a),e=!1):l(a)?(d=a.size,e=!1):(d=(a=o(a)).length,e=o.readOnly),d>125)throw RangeError("The data size must not be greater than 125 bytes");let f={[p]:d,fin:!0,generateMask:this._generateMask,mask:b,maskBuffer:this._maskBuffer,opcode:10,readOnly:e,rsv1:!1};l(a)?0!==this._state?this.enqueue([this.getBlobData,a,!1,f,c]):this.getBlobData(a,!1,f,c):0!==this._state?this.enqueue([this.dispatch,a,!1,f,c]):this.sendFrame(s.frame(a,f),c)}send(a,b,c){let d,e,f=this._extensions[h.extensionName],g=b.binary?2:1,i=b.compress;"string"==typeof a?(d=Buffer.byteLength(a),e=!1):l(a)?(d=a.size,e=!1):(d=(a=o(a)).length,e=o.readOnly),this._firstFragment?(this._firstFragment=!1,i&&f&&f.params[f._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(i=d>=f._threshold),this._compress=i):(i=!1,g=0),b.fin&&(this._firstFragment=!0);let j={[p]:d,fin:b.fin,generateMask:this._generateMask,mask:b.mask,maskBuffer:this._maskBuffer,opcode:g,readOnly:e,rsv1:i};l(a)?0!==this._state?this.enqueue([this.getBlobData,a,this._compress,j,c]):this.getBlobData(a,this._compress,j,c):0!==this._state?this.enqueue([this.dispatch,a,this._compress,j,c]):this.dispatch(a,this._compress,j,c)}getBlobData(a,b,c,d){this._bufferedBytes+=c[p],this._state=2,a.arrayBuffer().then(a=>{if(this._socket.destroyed){let a=Error("The socket was closed while the blob was being read");process.nextTick(t,this,a,d);return}this._bufferedBytes-=c[p];let e=o(a);b?this.dispatch(e,b,c,d):(this._state=0,this.sendFrame(s.frame(e,c),d),this.dequeue())}).catch(a=>{process.nextTick(u,this,a,d)})}dispatch(a,b,c,d){if(!b)return void this.sendFrame(s.frame(a,c),d);let e=this._extensions[h.extensionName];this._bufferedBytes+=c[p],this._state=1,e.compress(a,c.fin,(a,b)=>{this._socket.destroyed?t(this,Error("The socket was closed while data was being compressed"),d):(this._bufferedBytes-=c[p],this._state=0,c.readOnly=!1,this.sendFrame(s.frame(b,c),d),this.dequeue())})}dequeue(){for(;0===this._state&&this._queue.length;){let a=this._queue.shift();this._bufferedBytes-=a[3][p],Reflect.apply(a[0],this,a.slice(1))}}enqueue(a){this._bufferedBytes+=a[3][p],this._queue.push(a)}sendFrame(a,b){2===a.length?(this._socket.cork(),this._socket.write(a[0]),this._socket.write(a[1],b),this._socket.uncork()):this._socket.write(a[0],b)}}function t(a,b,c){"function"==typeof c&&c(b);for(let c=0;c<a._queue.length;c++){let d=a._queue[c],e=d[d.length-1];"function"==typeof e&&e(b)}}function u(a,b,c){t(a,b,c),a.onerror(b)}b.exports=s},4049,(a,b,c)=>{"use strict";let{kForOnEventAttribute:d,kListener:e}=a.r(65514),f=Symbol("kCode"),g=Symbol("kData"),h=Symbol("kError"),i=Symbol("kMessage"),j=Symbol("kReason"),k=Symbol("kTarget"),l=Symbol("kType"),m=Symbol("kWasClean");class n{constructor(a){this[k]=null,this[l]=a}get target(){return this[k]}get type(){return this[l]}}Object.defineProperty(n.prototype,"target",{enumerable:!0}),Object.defineProperty(n.prototype,"type",{enumerable:!0});class o extends n{constructor(a,b={}){super(a),this[f]=void 0===b.code?0:b.code,this[j]=void 0===b.reason?"":b.reason,this[m]=void 0!==b.wasClean&&b.wasClean}get code(){return this[f]}get reason(){return this[j]}get wasClean(){return this[m]}}Object.defineProperty(o.prototype,"code",{enumerable:!0}),Object.defineProperty(o.prototype,"reason",{enumerable:!0}),Object.defineProperty(o.prototype,"wasClean",{enumerable:!0});class p extends n{constructor(a,b={}){super(a),this[h]=void 0===b.error?null:b.error,this[i]=void 0===b.message?"":b.message}get error(){return this[h]}get message(){return this[i]}}Object.defineProperty(p.prototype,"error",{enumerable:!0}),Object.defineProperty(p.prototype,"message",{enumerable:!0});class q extends n{constructor(a,b={}){super(a),this[g]=void 0===b.data?null:b.data}get data(){return this[g]}}function r(a,b,c){"object"==typeof a&&a.handleEvent?a.handleEvent.call(a,c):a.call(b,c)}Object.defineProperty(q.prototype,"data",{enumerable:!0}),b.exports={CloseEvent:o,ErrorEvent:p,Event:n,EventTarget:{addEventListener(a,b,c={}){let f;for(let f of this.listeners(a))if(!c[d]&&f[e]===b&&!f[d])return;if("message"===a)f=function(a,c){let d=new q("message",{data:c?a:a.toString()});d[k]=this,r(b,this,d)};else if("close"===a)f=function(a,c){let d=new o("close",{code:a,reason:c.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});d[k]=this,r(b,this,d)};else if("error"===a)f=function(a){let c=new p("error",{error:a,message:a.message});c[k]=this,r(b,this,c)};else{if("open"!==a)return;f=function(){let a=new n("open");a[k]=this,r(b,this,a)}}f[d]=!!c[d],f[e]=b,c.once?this.once(a,f):this.on(a,f)},removeEventListener(a,b){for(let c of this.listeners(a))if(c[e]===b&&!c[d]){this.removeListener(a,c);break}}},MessageEvent:q}},20529,(a,b,c)=>{"use strict";let{tokenChars:d}=a.r(55572);function e(a,b,c){void 0===a[b]?a[b]=[c]:a[b].push(c)}b.exports={format:function(a){return Object.keys(a).map(b=>{let c=a[b];return Array.isArray(c)||(c=[c]),c.map(a=>[b].concat(Object.keys(a).map(b=>{let c=a[b];return Array.isArray(c)||(c=[c]),c.map(a=>!0===a?b:`${b}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(a){let b,c,f=Object.create(null),g=Object.create(null),h=!1,i=!1,j=!1,k=-1,l=-1,m=-1,n=0;for(;n<a.length;n++)if(l=a.charCodeAt(n),void 0===b)if(-1===m&&1===d[l])-1===k&&(k=n);else if(0!==n&&(32===l||9===l))-1===m&&-1!==k&&(m=n);else if(59===l||44===l){if(-1===k)throw SyntaxError(`Unexpected character at index ${n}`);-1===m&&(m=n);let c=a.slice(k,m);44===l?(e(f,c,g),g=Object.create(null)):b=c,k=m=-1}else throw SyntaxError(`Unexpected character at index ${n}`);else if(void 0===c)if(-1===m&&1===d[l])-1===k&&(k=n);else if(32===l||9===l)-1===m&&-1!==k&&(m=n);else if(59===l||44===l){if(-1===k)throw SyntaxError(`Unexpected character at index ${n}`);-1===m&&(m=n),e(g,a.slice(k,m),!0),44===l&&(e(f,b,g),g=Object.create(null),b=void 0),k=m=-1}else if(61===l&&-1!==k&&-1===m)c=a.slice(k,n),k=m=-1;else throw SyntaxError(`Unexpected character at index ${n}`);else if(i){if(1!==d[l])throw SyntaxError(`Unexpected character at index ${n}`);-1===k?k=n:h||(h=!0),i=!1}else if(j)if(1===d[l])-1===k&&(k=n);else if(34===l&&-1!==k)j=!1,m=n;else if(92===l)i=!0;else throw SyntaxError(`Unexpected character at index ${n}`);else if(34===l&&61===a.charCodeAt(n-1))j=!0;else if(-1===m&&1===d[l])-1===k&&(k=n);else if(-1!==k&&(32===l||9===l))-1===m&&(m=n);else if(59===l||44===l){if(-1===k)throw SyntaxError(`Unexpected character at index ${n}`);-1===m&&(m=n);let d=a.slice(k,m);h&&(d=d.replace(/\\/g,""),h=!1),e(g,c,d),44===l&&(e(f,b,g),g=Object.create(null),b=void 0),c=void 0,k=m=-1}else throw SyntaxError(`Unexpected character at index ${n}`);if(-1===k||j||32===l||9===l)throw SyntaxError("Unexpected end of input");-1===m&&(m=n);let o=a.slice(k,m);return void 0===b?e(f,o,g):(void 0===c?e(g,o,!0):h?e(g,c,o.replace(/\\/g,"")):e(g,c,o),e(f,b,g)),f}}},89877,(a,b,c)=>{"use strict";let d=a.r(27699),e=a.r(24836),f=a.r(21517),g=a.r(4446),h=a.r(55004),{randomBytes:i,createHash:j}=a.r(54799),{Duplex:k,Readable:l}=a.r(88947),{URL:m}=a.r(92509),n=a.r(19199),o=a.r(75091),p=a.r(10697),{isBlob:q}=a.r(55572),{BINARY_TYPES:r,CLOSE_TIMEOUT:s,EMPTY_BUFFER:t,GUID:u,kForOnEventAttribute:v,kListener:w,kStatusCode:x,kWebSocket:y,NOOP:z}=a.r(65514),{EventTarget:{addEventListener:A,removeEventListener:B}}=a.r(4049),{format:C,parse:D}=a.r(20529),{toBuffer:E}=a.r(40352),F=Symbol("kAborted"),G=[8,13],H=["CONNECTING","OPEN","CLOSING","CLOSED"],I=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class J extends d{constructor(a,b,c){super(),this._binaryType=r[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=t,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=J.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==a?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===b?b=[]:Array.isArray(b)||("object"==typeof b&&null!==b?(c=b,b=[]):b=[b]),function a(b,c,d,g){let h,k,l,o,p={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:s,protocolVersion:G[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...g,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(b._autoPong=p.autoPong,b._closeTimeout=p.closeTimeout,!G.includes(p.protocolVersion))throw RangeError(`Unsupported protocol version: ${p.protocolVersion} (supported versions: ${G.join(", ")})`);if(c instanceof m)h=c;else try{h=new m(c)}catch{throw SyntaxError(`Invalid URL: ${c}`)}"http:"===h.protocol?h.protocol="ws:":"https:"===h.protocol&&(h.protocol="wss:"),b._url=h.href;let q="wss:"===h.protocol,r="ws+unix:"===h.protocol;if("ws:"===h.protocol||q||r?r&&!h.pathname?k="The URL's pathname is empty":h.hash&&(k="The URL contains a fragment identifier"):k='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"',k){let a=SyntaxError(k);if(0!==b._redirects)return void K(b,a);throw a}let t=q?443:80,v=i(16).toString("base64"),w=q?e.request:f.request,x=new Set;if(p.createConnection=p.createConnection||(q?M:L),p.defaultPort=p.defaultPort||t,p.port=h.port||t,p.host=h.hostname.startsWith("[")?h.hostname.slice(1,-1):h.hostname,p.headers={...p.headers,"Sec-WebSocket-Version":p.protocolVersion,"Sec-WebSocket-Key":v,Connection:"Upgrade",Upgrade:"websocket"},p.path=h.pathname+h.search,p.timeout=p.handshakeTimeout,p.perMessageDeflate&&(l=new n({...p.perMessageDeflate,isServer:!1,maxPayload:p.maxPayload}),p.headers["Sec-WebSocket-Extensions"]=C({[n.extensionName]:l.offer()})),d.length){for(let a of d){if("string"!=typeof a||!I.test(a)||x.has(a))throw SyntaxError("An invalid or duplicated subprotocol was specified");x.add(a)}p.headers["Sec-WebSocket-Protocol"]=d.join(",")}if(p.origin&&(p.protocolVersion<13?p.headers["Sec-WebSocket-Origin"]=p.origin:p.headers.Origin=p.origin),(h.username||h.password)&&(p.auth=`${h.username}:${h.password}`),r){let a=p.path.split(":");p.socketPath=a[0],p.path=a[1]}if(p.followRedirects){if(0===b._redirects){b._originalIpc=r,b._originalSecure=q,b._originalHostOrSocketPath=r?p.socketPath:h.host;let a=g&&g.headers;if(g={...g,headers:{}},a)for(let[b,c]of Object.entries(a))g.headers[b.toLowerCase()]=c}else if(0===b.listenerCount("redirect")){let a=r?!!b._originalIpc&&p.socketPath===b._originalHostOrSocketPath:!b._originalIpc&&h.host===b._originalHostOrSocketPath;a&&(!b._originalSecure||q)||(delete p.headers.authorization,delete p.headers.cookie,a||delete p.headers.host,p.auth=void 0)}p.auth&&!g.headers.authorization&&(g.headers.authorization="Basic "+Buffer.from(p.auth).toString("base64")),o=b._req=w(p),b._redirects&&b.emit("redirect",b.url,o)}else o=b._req=w(p);p.timeout&&o.on("timeout",()=>{N(b,o,"Opening handshake has timed out")}),o.on("error",a=>{null===o||o[F]||(o=b._req=null,K(b,a))}),o.on("response",e=>{let f=e.headers.location,h=e.statusCode;if(f&&p.followRedirects&&h>=300&&h<400){let e;if(++b._redirects>p.maxRedirects)return void N(b,o,"Maximum redirects exceeded");o.abort();try{e=new m(f,c)}catch(a){K(b,SyntaxError(`Invalid URL: ${f}`));return}a(b,e,d,g)}else b.emit("unexpected-response",o,e)||N(b,o,`Unexpected server response: ${e.statusCode}`)}),o.on("upgrade",(a,c,d)=>{let e;if(b.emit("upgrade",a),b.readyState!==J.CONNECTING)return;o=b._req=null;let f=a.headers.upgrade;if(void 0===f||"websocket"!==f.toLowerCase())return void N(b,c,"Invalid Upgrade header");let g=j("sha1").update(v+u).digest("base64");if(a.headers["sec-websocket-accept"]!==g)return void N(b,c,"Invalid Sec-WebSocket-Accept header");let h=a.headers["sec-websocket-protocol"];if(void 0!==h?x.size?x.has(h)||(e="Server sent an invalid subprotocol"):e="Server sent a subprotocol but none was requested":x.size&&(e="Server sent no subprotocol"),e)return void N(b,c,e);h&&(b._protocol=h);let i=a.headers["sec-websocket-extensions"];if(void 0!==i){let a;if(!l)return void N(b,c,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");try{a=D(i)}catch(a){N(b,c,"Invalid Sec-WebSocket-Extensions header");return}let d=Object.keys(a);if(1!==d.length||d[0]!==n.extensionName)return void N(b,c,"Server indicated an extension that was not requested");try{l.accept(a[n.extensionName])}catch(a){N(b,c,"Invalid Sec-WebSocket-Extensions header");return}b._extensions[n.extensionName]=l}b.setSocket(c,d,{allowSynchronousEvents:p.allowSynchronousEvents,generateMask:p.generateMask,maxBufferedChunks:p.maxBufferedChunks,maxFragments:p.maxFragments,maxPayload:p.maxPayload,skipUTF8Validation:p.skipUTF8Validation})}),p.finishRequest?p.finishRequest(o,b):o.end()}(this,a,b,c)):(this._autoPong=c.autoPong,this._closeTimeout=c.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(a){r.includes(a)&&(this._binaryType=a,this._receiver&&(this._receiver._binaryType=a))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(a,b,c){let d=new o({allowSynchronousEvents:c.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:c.maxBufferedChunks,maxFragments:c.maxFragments,maxPayload:c.maxPayload,skipUTF8Validation:c.skipUTF8Validation}),e=new p(a,this._extensions,c.generateMask);this._receiver=d,this._sender=e,this._socket=a,d[y]=this,e[y]=this,a[y]=this,d.on("conclude",P),d.on("drain",Q),d.on("error",R),d.on("message",T),d.on("ping",U),d.on("pong",V),e.onerror=X,a.setTimeout&&a.setTimeout(0),a.setNoDelay&&a.setNoDelay(),b.length>0&&a.unshift(b),a.on("close",Z),a.on("data",$),a.on("end",_),a.on("error",aa),this._readyState=J.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=J.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[n.extensionName]&&this._extensions[n.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=J.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(a,b){if(this.readyState!==J.CLOSED){if(this.readyState===J.CONNECTING)return void N(this,this._req,"WebSocket was closed before the connection was established");if(this.readyState===J.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=J.CLOSING,this._sender.close(a,b,!this._isServer,a=>{!a&&(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Y(this)}}pause(){this.readyState!==J.CONNECTING&&this.readyState!==J.CLOSED&&(this._paused=!0,this._socket.pause())}ping(a,b,c){if(this.readyState===J.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");("function"==typeof a?(c=a,a=b=void 0):"function"==typeof b&&(c=b,b=void 0),"number"==typeof a&&(a=a.toString()),this.readyState!==J.OPEN)?O(this,a,c):(void 0===b&&(b=!this._isServer),this._sender.ping(a||t,b,c))}pong(a,b,c){if(this.readyState===J.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");("function"==typeof a?(c=a,a=b=void 0):"function"==typeof b&&(c=b,b=void 0),"number"==typeof a&&(a=a.toString()),this.readyState!==J.OPEN)?O(this,a,c):(void 0===b&&(b=!this._isServer),this._sender.pong(a||t,b,c))}resume(){this.readyState!==J.CONNECTING&&this.readyState!==J.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(a,b,c){if(this.readyState===J.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof b&&(c=b,b={}),"number"==typeof a&&(a=a.toString()),this.readyState!==J.OPEN)return void O(this,a,c);let d={binary:"string"!=typeof a,mask:!this._isServer,compress:!0,fin:!0,...b};this._extensions[n.extensionName]||(d.compress=!1),this._sender.send(a||t,d,c)}terminate(){if(this.readyState!==J.CLOSED){if(this.readyState===J.CONNECTING)return void N(this,this._req,"WebSocket was closed before the connection was established");this._socket&&(this._readyState=J.CLOSING,this._socket.destroy())}}}function K(a,b){a._readyState=J.CLOSING,a._errorEmitted=!0,a.emit("error",b),a.emitClose()}function L(a){return a.path=a.socketPath,g.connect(a)}function M(a){return a.path=void 0,a.servername||""===a.servername||(a.servername=g.isIP(a.host)?"":a.host),h.connect(a)}function N(a,b,c){a._readyState=J.CLOSING;let d=Error(c);Error.captureStackTrace(d,N),b.setHeader?(b[F]=!0,b.abort(),b.socket&&!b.socket.destroyed&&b.socket.destroy(),process.nextTick(K,a,d)):(b.destroy(d),b.once("error",a.emit.bind(a,"error")),b.once("close",a.emitClose.bind(a)))}function O(a,b,c){if(b){let c=q(b)?b.size:E(b).length;a._socket?a._sender._bufferedBytes+=c:a._bufferedAmount+=c}if(c){let b=Error(`WebSocket is not open: readyState ${a.readyState} (${H[a.readyState]})`);process.nextTick(c,b)}}function P(a,b){let c=this[y];c._closeFrameReceived=!0,c._closeMessage=b,c._closeCode=a,void 0!==c._socket[y]&&(c._socket.removeListener("data",$),process.nextTick(W,c._socket),1005===a?c.close():c.close(a,b))}function Q(){let a=this[y];a.isPaused||a._socket.resume()}function R(a){let b=this[y];void 0!==b._socket[y]&&(b._socket.removeListener("data",$),process.nextTick(W,b._socket),b.close(a[x])),b._errorEmitted||(b._errorEmitted=!0,b.emit("error",a))}function S(){this[y].emitClose()}function T(a,b){this[y].emit("message",a,b)}function U(a){let b=this[y];b._autoPong&&b.pong(a,!this._isServer,z),b.emit("ping",a)}function V(a){this[y].emit("pong",a)}function W(a){a.resume()}function X(a){let b=this[y];b.readyState!==J.CLOSED&&(b.readyState===J.OPEN&&(b._readyState=J.CLOSING,Y(b)),this._socket.end(),b._errorEmitted||(b._errorEmitted=!0,b.emit("error",a)))}function Y(a){a._closeTimer=setTimeout(a._socket.destroy.bind(a._socket),a._closeTimeout)}function Z(){let a=this[y];if(this.removeListener("close",Z),this.removeListener("data",$),this.removeListener("end",_),a._readyState=J.CLOSING,!this._readableState.endEmitted&&!a._closeFrameReceived&&!a._receiver._writableState.errorEmitted&&0!==this._readableState.length){let b=this.read(this._readableState.length);a._receiver.write(b)}a._receiver.end(),this[y]=void 0,clearTimeout(a._closeTimer),a._receiver._writableState.finished||a._receiver._writableState.errorEmitted?a.emitClose():(a._receiver.on("error",S),a._receiver.on("finish",S))}function $(a){this[y]._receiver.write(a)||this.pause()}function _(){let a=this[y];a._readyState=J.CLOSING,a._receiver.end(),this.end()}function aa(){let a=this[y];this.removeListener("error",aa),this.on("error",z),a&&(a._readyState=J.CLOSING,this.destroy())}Object.defineProperty(J,"CONNECTING",{enumerable:!0,value:H.indexOf("CONNECTING")}),Object.defineProperty(J.prototype,"CONNECTING",{enumerable:!0,value:H.indexOf("CONNECTING")}),Object.defineProperty(J,"OPEN",{enumerable:!0,value:H.indexOf("OPEN")}),Object.defineProperty(J.prototype,"OPEN",{enumerable:!0,value:H.indexOf("OPEN")}),Object.defineProperty(J,"CLOSING",{enumerable:!0,value:H.indexOf("CLOSING")}),Object.defineProperty(J.prototype,"CLOSING",{enumerable:!0,value:H.indexOf("CLOSING")}),Object.defineProperty(J,"CLOSED",{enumerable:!0,value:H.indexOf("CLOSED")}),Object.defineProperty(J.prototype,"CLOSED",{enumerable:!0,value:H.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(a=>{Object.defineProperty(J.prototype,a,{enumerable:!0})}),["open","error","close","message"].forEach(a=>{Object.defineProperty(J.prototype,`on${a}`,{enumerable:!0,get(){for(let b of this.listeners(a))if(b[v])return b[w];return null},set(b){for(let b of this.listeners(a))if(b[v]){this.removeListener(a,b);break}"function"==typeof b&&this.addEventListener(a,b,{[v]:!0})}})}),J.prototype.addEventListener=A,J.prototype.removeEventListener=B,b.exports=J},29e3,(a,b,c)=>{"use strict";a.r(89877);let{Duplex:d}=a.r(88947);function e(a){a.emit("close")}function f(){!this.destroyed&&this._writableState.finished&&this.destroy()}function g(a){this.removeListener("error",g),this.destroy(),0===this.listenerCount("error")&&this.emit("error",a)}b.exports=function(a,b){let c=!0,h=new d({...b,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return a.on("message",function(b,c){let d=!c&&h._readableState.objectMode?b.toString():b;h.push(d)||a.pause()}),a.once("error",function(a){h.destroyed||(c=!1,h.destroy(a))}),a.once("close",function(){h.destroyed||h.push(null)}),h._destroy=function(b,d){if(a.readyState===a.CLOSED){d(b),process.nextTick(e,h);return}let f=!1;a.once("error",function(a){f=!0,d(a)}),a.once("close",function(){f||d(b),process.nextTick(e,h)}),c&&a.terminate()},h._final=function(b){a.readyState===a.CONNECTING?a.once("open",function(){h._final(b)}):null!==a._socket&&(a._socket._writableState.finished?(b(),h._readableState.endEmitted&&h.destroy()):(a._socket.once("finish",function(){b()}),a.close()))},h._read=function(){a.isPaused&&a.resume()},h._write=function(b,c,d){a.readyState===a.CONNECTING?a.once("open",function(){h._write(b,c,d)}):a.send(b,d)},h.on("end",f),h.on("error",g),h}},71553,(a,b,c)=>{"use strict";let{tokenChars:d}=a.r(55572);b.exports={parse:function(a){let b=new Set,c=-1,e=-1,f=0;for(;f<a.length;f++){let g=a.charCodeAt(f);if(-1===e&&1===d[g])-1===c&&(c=f);else if(0!==f&&(32===g||9===g))-1===e&&-1!==c&&(e=f);else if(44===g){if(-1===c)throw SyntaxError(`Unexpected character at index ${f}`);-1===e&&(e=f);let d=a.slice(c,e);if(b.has(d))throw SyntaxError(`The "${d}" subprotocol is duplicated`);b.add(d),c=e=-1}else throw SyntaxError(`Unexpected character at index ${f}`)}if(-1===c||-1!==e)throw SyntaxError("Unexpected end of input");let g=a.slice(c,f);if(b.has(g))throw SyntaxError(`The "${g}" subprotocol is duplicated`);return b.add(g),b}}},95837,(a,b,c)=>{"use strict";let d=a.r(27699),e=a.r(21517),{Duplex:f}=a.r(88947),{createHash:g}=a.r(54799),h=a.r(20529),i=a.r(19199),j=a.r(71553),k=a.r(89877),{CLOSE_TIMEOUT:l,GUID:m,kWebSocket:n}=a.r(65514),o=/^[+/0-9A-Za-z]{22}==$/;function p(a){a._state=2,a.emit("close")}function q(){this.destroy()}function r(a,b,c,d){c=c||e.STATUS_CODES[b],d={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(c),...d},a.once("finish",a.destroy),a.end(`HTTP/1.1 ${b} ${e.STATUS_CODES[b]}\r
`+Object.keys(d).map(a=>`${a}: ${d[a]}`).join("\r\n")+"\r\n\r\n"+c)}function s(a,b,c,d,e,f){if(a.listenerCount("wsClientError")){let d=Error(e);Error.captureStackTrace(d,s),a.emit("wsClientError",d,c,b)}else r(c,d,e,f)}b.exports=class extends d{constructor(a,b){if(super(),null==(a={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1048576,maxFragments:131072,maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:l,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:k,...a}).port&&!a.server&&!a.noServer||null!=a.port&&(a.server||a.noServer)||a.server&&a.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=a.port?(this._server=e.createServer((a,b)=>{let c=e.STATUS_CODES[426];b.writeHead(426,{"Content-Length":c.length,"Content-Type":"text/plain"}),b.end(c)}),this._server.listen(a.port,a.host,a.backlog,b)):a.server&&(this._server=a.server),this._server){const a=this.emit.bind(this,"connection");this._removeListeners=function(a,b){for(let c of Object.keys(b))a.on(c,b[c]);return function(){for(let c of Object.keys(b))a.removeListener(c,b[c])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(b,c,d)=>{this.handleUpgrade(b,c,d,a)}})}!0===a.perMessageDeflate&&(a.perMessageDeflate={}),a.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=a,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(a){if(2===this._state){a&&this.once("close",()=>{a(Error("The server is not running"))}),process.nextTick(p,this);return}if(a&&this.once("close",a),1!==this._state)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(p,this);else{let a=this._server;this._removeListeners(),this._removeListeners=this._server=null,a.close(()=>{p(this)})}}shouldHandle(a){if(this.options.path){let b=a.url.indexOf("?");if((-1!==b?a.url.slice(0,b):a.url)!==this.options.path)return!1}return!0}handleUpgrade(a,b,c,d){b.on("error",q);let e=a.headers["sec-websocket-key"],f=a.headers.upgrade,g=+a.headers["sec-websocket-version"];if("GET"!==a.method)return void s(this,a,b,405,"Invalid HTTP method");if(void 0===f||"websocket"!==f.toLowerCase())return void s(this,a,b,400,"Invalid Upgrade header");if(void 0===e||!o.test(e))return void s(this,a,b,400,"Missing or invalid Sec-WebSocket-Key header");if(13!==g&&8!==g)return void s(this,a,b,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});if(!this.shouldHandle(a))return void r(b,400);let k=a.headers["sec-websocket-protocol"],l=new Set;if(void 0!==k)try{l=j.parse(k)}catch(c){s(this,a,b,400,"Invalid Sec-WebSocket-Protocol header");return}let m=a.headers["sec-websocket-extensions"],n={};if(this.options.perMessageDeflate&&void 0!==m){let c=new i({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let a=h.parse(m);a[i.extensionName]&&(c.accept(a[i.extensionName]),n[i.extensionName]=c)}catch(c){s(this,a,b,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:a.headers[`${8===g?"sec-websocket-origin":"origin"}`],secure:!!(a.socket.authorized||a.socket.encrypted),req:a};if(2===this.options.verifyClient.length)return void this.options.verifyClient(f,(f,g,h,i)=>{if(!f)return r(b,g||401,h,i);this.completeUpgrade(n,e,l,a,b,c,d)});if(!this.options.verifyClient(f))return r(b,401)}this.completeUpgrade(n,e,l,a,b,c,d)}completeUpgrade(a,b,c,d,e,f,j){if(!e.readable||!e.writable)return e.destroy();if(e[n])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return r(e,503);let k=g("sha1").update(b+m).digest("base64"),l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${k}`],o=new this.options.WebSocket(null,void 0,this.options);if(c.size){let a=this.options.handleProtocols?this.options.handleProtocols(c,d):c.values().next().value;a&&(l.push(`Sec-WebSocket-Protocol: ${a}`),o._protocol=a)}if(a[i.extensionName]){let b=a[i.extensionName].params,c=h.format({[i.extensionName]:[b]});l.push(`Sec-WebSocket-Extensions: ${c}`),o._extensions=a}this.emit("headers",l,d),e.write(l.concat("\r\n").join("\r\n")),e.removeListener("error",q),o.setSocket(e,f,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(o),o.on("close",()=>{this.clients.delete(o),this._shouldEmitClose&&!this.clients.size&&process.nextTick(p,this)})),j(o,d)}}},40777,a=>{"use strict";let b,c,d,e,f,g,h,i,j,k,l,m,n;var o,p,q,r,s,t,u,v,w,x,y=a.i(87924),z=a.i(72131);function A({className:a}){let b=(0,z.useRef)(null);return(0,z.useEffect)(()=>{let a=b.current;if(!a)return;let c=a.getContext("2d");if(!c)return;let d=0,e=0,f=1,g=[],h=[],i=0,j=performance.now(),k=["#34d399","#fb7185","#fbbf24","#e879f9","#a5f3fc"];function l(){f=Math.min(2,window.devicePixelRatio||1),d=a.clientWidth,e=a.clientHeight,a.width=Math.floor(d*f),a.height=Math.floor(e*f),c.setTransform(f,0,0,f,0,0),g=Array.from({length:Math.min(220,Math.floor(d*e/7e3))},()=>({x:Math.random()*d,y:Math.random()*e,z:Math.random(),r:1.4*Math.random()+.2,tw:Math.random()*Math.PI*2,hue:.15>Math.random()?Math.floor(Math.random()*k.length):-1}))}l();let m=new ResizeObserver(l);return m.observe(a),i=requestAnimationFrame(function a(b){let f=b-j;j=b;let l=c.createRadialGradient(.5*d,.4*e,0,.5*d,.5*e,.8*Math.max(d,e));l.addColorStop(0,"#1a0f2e"),l.addColorStop(.45,"#0d0a1f"),l.addColorStop(1,"#050410"),c.fillStyle=l,c.fillRect(0,0,d,e),c.globalCompositeOperation="screen";for(let a=0;a<3;a++){let f=d*(.2+.3*a)+40*Math.sin(b/9e3+a),g=e*(.3+a%2*.4)+30*Math.cos(b/11e3+a),h=Math.max(80,Math.min(d,e)*(.25+.05*a)),i=c.createRadialGradient(f,g,0,f,g,h),j=0===a?"rgba(232,121,249,0.10)":1===a?"rgba(52,211,153,0.08)":"rgba(251,113,133,0.08)";i.addColorStop(0,j),i.addColorStop(1,"rgba(0,0,0,0)"),c.fillStyle=i,c.beginPath(),c.arc(f,g,h,0,2*Math.PI),c.fill()}for(let a of(c.globalCompositeOperation="source-over",g)){a.tw+=.02+.04*a.z;let b=.4+.35*Math.sin(a.tw)+.3*a.z;a.hue>=0?(c.fillStyle=k[a.hue],c.globalAlpha=Math.max(0,Math.min(1,b)),c.beginPath(),c.arc(a.x,a.y,1.6*a.r,0,2*Math.PI),c.fill(),c.globalAlpha=Math.max(0,Math.min(1,.25*b)),c.beginPath(),c.arc(a.x,a.y,4*a.r,0,2*Math.PI)):(c.fillStyle=`rgba(220,230,255,${Math.max(0,Math.min(1,b))})`,c.beginPath(),c.arc(a.x,a.y,a.r,0,2*Math.PI)),c.fill(),a.y+=.02+.05*a.z,a.y>e+2&&(a.y=-2,a.x=Math.random()*d)}c.globalAlpha=1,.04>Math.random()&&function(){if(h.length>60)return;let a=k[Math.floor(Math.random()*k.length)];h.push({x:Math.random()*d,y:e+10,vx:(Math.random()-.5)*.3,vy:-(.5*Math.random()+.2),life:0,maxLife:600+800*Math.random(),color:a})}(),c.globalCompositeOperation="screen";for(let a=h.length-1;a>=0;a--){let b=h[a];if(b.life+=f,b.x+=b.vx*f*.06,b.y+=b.vy*f*.06,b.life>b.maxLife||b.y<-10){h.splice(a,1);continue}let d=.7*Math.sin(b.life/b.maxLife*Math.PI);c.fillStyle=b.color,c.globalAlpha=d,c.beginPath(),c.arc(b.x,b.y,1.6,0,2*Math.PI),c.fill(),c.globalAlpha=.2*d,c.beginPath(),c.arc(b.x,b.y,5,0,2*Math.PI),c.fill()}c.globalAlpha=1,c.globalCompositeOperation="source-over",i=requestAnimationFrame(a)}),()=>{cancelAnimationFrame(i),m.disconnect()}},[]),(0,y.jsx)("canvas",{ref:b,className:a,"aria-hidden":"true"})}let B=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},C=a=>{let b=a?B(a):B,c=a=>(function(a,b=a=>a){let c=z.default.useSyncExternalStore(a.subscribe,z.default.useCallback(()=>b(a.getState()),[a,b]),z.default.useCallback(()=>b(a.getInitialState()),[a,b]));return z.default.useDebugValue(c),c})(b,a);return Object.assign(c,b),c};function D(a,b){let c;try{c=a()}catch(a){return}return{getItem:a=>{var d;let e=a=>null===a?null:JSON.parse(a,null==b?void 0:b.reviver),f=null!=(d=c.getItem(a))?d:null;return f instanceof Promise?f.then(e):e(f)},setItem:(a,d)=>c.setItem(a,JSON.stringify(d,null==b?void 0:b.replacer)),removeItem:a=>c.removeItem(a)}}let E=a=>b=>{try{let c=a(b);if(c instanceof Promise)return c;return{then:a=>E(a)(c),catch(a){return this}}}catch(a){return{then(a){return this},catch:b=>E(b)(a)}}},F={crystals:0,insights:0,energy:5,contact:0,crystalsPerSec:.4,crystalCap:50,pulsePower:2,offlineEff:.5,insightMult:1,contactRateMult:1,autoDecode:!1,totalDecoded:0,ascensions:0,blueprints:[],pendingCrystals:[],activePuzzle:null,activeExpedition:null,expeditionLog:[],energyMax:8,lastEnergyTick:Date.now(),totalExpeditions:0,bossKills:0,lastExpeditionSummary:null,achievements:{},activeTide:null,lastTideEnd:0,starTidesEncountered:[],constellation:[],pendingPerkChoices:null,chronicle:[],runStart:{timestamp:Date.now(),techsUnlocked:0,expeditionsCompleted:0,bossKills:0,starTidesEncountered:[],crystalsDecoded:0},attributes:{exploration:0,wisdom:0,courage:0,inspiration:0},attributeProgress:{exploration:{exp:0,level:0},wisdom:{exp:0,level:0},courage:{exp:0,level:0},inspiration:{exp:0,level:0}},pendingAttrPoints:0,theme:"dark",soundOn:!0},G={1:{crystals:6,insights:1},2:{crystals:22,insights:4},3:{crystals:90,insights:16}},H={1:{rows:3,cols:3,targetLen:3,stepLimitBase:5},2:{rows:4,cols:4,targetLen:4,stepLimitBase:7},3:{rows:5,cols:4,targetLen:5,stepLimitBase:9}},I=["emerald","rose","amber","fuchsia"],J={emerald:{hex:"#34d399",glow:"rgba(52,211,153,0.55)",label:"翠"},rose:{hex:"#fb7185",glow:"rgba(251,113,133,0.55)",label:"玫"},amber:{hex:"#fbbf24",glow:"rgba(251,191,36,0.55)",label:"琥"},fuchsia:{hex:"#e879f9",glow:"rgba(232,121,249,0.55)",label:"紫"}},K=[{id:"min_1",branch:"mining",level:1,name:"谐振钻头",desc:"晶体/秒 +0.6",cost:5,effect:{kind:"crystalsPerSec",value:.6}},{id:"min_2",branch:"mining",level:2,name:"深层矿脉",desc:"晶体/秒 +1.6,仓库上限 +100",cost:24,effect:{kind:"crystalsPerSec",value:1.6}},{id:"min_3",branch:"mining",level:3,name:"自治机群",desc:"晶体/秒 +5,仓库上限 +300",cost:120,effect:{kind:"crystalsPerSec",value:5}},{id:"min_4",branch:"mining",level:4,name:"量子采掘矩阵",desc:"晶体/秒 +12,仓库上限 +800",cost:400,effect:{kind:"crystalsPerSec",value:12}},{id:"min_5",branch:"mining",level:5,name:"戴森星核",desc:"晶体/秒 +30,仓库上限 +2000",cost:1200,effect:{kind:"crystalsPerSec",value:30}},{id:"dec_1",branch:"decoding",level:1,name:"谐振校准",desc:"解码步数上限 +2",cost:6,effect:{kind:"decodeSteps",value:2}},{id:"dec_2",branch:"decoding",level:2,name:"脉冲增幅",desc:"主动脉冲产出 +3",cost:30,effect:{kind:"pulsePower",value:3}},{id:"dec_3",branch:"decoding",level:3,name:"自动解码阵列",desc:"自动解码 T1 晶体(每 12 秒一颗)",cost:200,effect:{kind:"autoDecode",value:1}},{id:"dec_4",branch:"decoding",level:4,name:"谐振放大器",desc:"主动脉冲产出 +8",cost:500,effect:{kind:"pulsePower",value:8}},{id:"dec_5",branch:"decoding",level:5,name:"全息解码核心",desc:"自动解码扩展至 T2 晶体,解码步数 +3",cost:1500,effect:{kind:"decodeSteps",value:3}},{id:"exp_1",branch:"expedition",level:1,name:"远征推进器",desc:"探险力 +3,晶体/秒 +1.2",cost:12,effect:{kind:"crystalsPerSec",value:1.2}},{id:"exp_2",branch:"expedition",level:2,name:"遗迹图谱",desc:"探险力 +5,探险生命 +20,能量恢复 +30%",cost:60,effect:{kind:"crystalCap",value:200}},{id:"exp_3",branch:"expedition",level:3,name:"维度信标",desc:"探险力 +8,接触进度转化率 +50%,能量恢复 +20%",cost:180,effect:{kind:"contactRate",value:.5}},{id:"exp_4",branch:"expedition",level:4,name:"虚空航标",desc:"探险力 +12,探险生命 +30,能量恢复 +25%",cost:450,effect:{kind:"crystalCap",value:400}},{id:"exp_5",branch:"expedition",level:5,name:"维度跃迁引擎",desc:"探险力 +25,探险生命 +50,能量恢复 +30%",cost:1400,effect:{kind:"crystalCap",value:600}},{id:"nar_1",branch:"narrative",level:1,name:"记忆校音",desc:"洞见获取 +25%",cost:8,effect:{kind:"insightMult",value:.25}},{id:"nar_2",branch:"narrative",level:2,name:"深空回响",desc:"接触进度转化率 +35%",cost:45,effect:{kind:"contactRate",value:.35}},{id:"nar_3",branch:"narrative",level:3,name:"以太共鸣",desc:"洞见获取 +60%",cost:160,effect:{kind:"insightMult",value:.6}},{id:"nar_4",branch:"narrative",level:4,name:"以太低语",desc:"洞见获取 +100%",cost:500,effect:{kind:"insightMult",value:1}},{id:"nar_5",branch:"narrative",level:5,name:"文明回响",desc:"接触进度转化率 +80%,洞见获取 +150%",cost:1600,effect:{kind:"insightMult",value:1.5}}],L={mining:{name:"采矿",icon:"Pickaxe",color:"emerald",desc:"提升晶体产能与仓储"},decoding:{name:"解码",icon:"ScanLine",color:"rose",desc:"强化解码与脉冲"},expedition:{name:"探险",icon:"Rocket",color:"amber",desc:"远征与维度信标"},narrative:{name:"叙事",icon:"BookOpen",color:"fuchsia",desc:"洞见与接触进度"}},M=[{id:"f1_1",era:1,title:"第一缕谐振",echo:"在被称作「寂灭前夜」的年代,以太族第一次捕捉到来自虚空深处的谐振——那不是声音,而是存在的回声。他们将之记录在第一颗记忆晶体里。",threshold:1},{id:"f1_2",era:1,title:"晶体之始",echo:"「我们为何要留下?」一位长者问。「因为后来的生命会需要方向。」于是他们熔铸星核,封存记忆,让晶体成为跨越时间的信笺。",threshold:3},{id:"f1_3",era:1,title:"谐振法则",echo:"他们发现:思维可以被编码为共振序列。同色的节点相邻,便构成一句低语;一句句连成回响,回响连成文明。",threshold:6},{id:"f1_4",era:1,title:"飞升之议",echo:"议会表决:是留下,还是离去?「留下意味着停滞;离去意味着信任。」最终,他们选择了信任——信任素未谋面的后来者。",threshold:10},{id:"f1_5",era:1,title:"面包屑",echo:"他们没有带走一切。他们将知识拆成碎片,藏入晶体,散布星海。「让解码本身,成为资格的证明。」",threshold:15},{id:"f1_6",era:1,title:"回响之名",echo:"舰载 AI 被命名为「回响」——意为:你是他们留下的回声,也是他们等待的回应。当你读懂这句话时,接触便已开始。",threshold:22},{id:"f1_7",era:1,title:"第一个纪元的终焉",echo:"以太族集体褪去形体,如潮水退去。星海寂静了数万年。直到——你的脉冲扫描,唤醒了第一颗沉睡的晶体。",threshold:32},{id:"f1_8",era:1,title:"致后来者",echo:"「如果你读到这里,说明你已具备跨越维度的资格。继续解码,继续拼凑。当进度满溢,我们将在更高处相会。」——以太族·第一纪元·绝笔",threshold:45}],N=.05,O=.03,P=.04;function Q(a){return isFinite(a)?a<1e3?a.toFixed(+(a<10&&a%1!=0)):a<1e6?(a/1e3).toFixed(2)+"K":a<1e9?(a/1e6).toFixed(2)+"M":a<1e12?(a/1e9).toFixed(2)+"B":(a/1e12).toFixed(2)+"T":"∞"}let R=[{id:"ach_first_pulse",name:"初次触碰",desc:"发起第一次脉冲扫描",icon:"✦",color:"#34d399",check:a=>a.totalDecoded>=0||a.crystals>0,reward:{crystals:5},rewardText:"+5 晶体"},{id:"ach_first_decode",name:"谐振初鸣",desc:"成功解码第一颗记忆晶体",icon:"◈",color:"#fb7185",check:a=>a.totalDecoded>=1,reward:{insights:3},rewardText:"+3 洞见"},{id:"ach_decoded_10",name:"回响解码者",desc:"累计解码 10 颗晶体",icon:"❖",color:"#fbbf24",check:a=>a.totalDecoded>=10,reward:{insights:15,crystalsPerSecPct:5},rewardText:"+15 洞见 · 产能 +5%"},{id:"ach_decoded_25",name:"记忆织匠",desc:"累计解码 25 颗晶体",icon:"✺",color:"#e879f9",check:a=>a.totalDecoded>=25,reward:{insights:40,crystalsPerSecPct:8},rewardText:"+40 洞见 · 产能 +8%"},{id:"ach_decoded_50",name:"星核解密师",desc:"累计解码 50 颗晶体",icon:"✷",color:"#34d399",check:a=>a.totalDecoded>=50,reward:{insights:100,crystalsPerSecPct:12,insightPct:10},rewardText:"+100 洞见 · 产能 +12% · 洞见 +10%"},{id:"ach_tech_3",name:"初窥门径",desc:"解锁 3 项技术",icon:"⚙",color:"#fbbf24",check:a=>Object.values(a.tech).filter(a=>a>0).length>=3,reward:{insights:20},rewardText:"+20 洞见"},{id:"ach_tech_all",name:"全谱精通",desc:"解锁全部 20 项技术",icon:"⬡",color:"#e879f9",check:a=>Object.values(a.tech).filter(a=>a>0).length>=20,reward:{crystalsPerSecPct:15,insightPct:15},rewardText:"产能 +15% · 洞见 +15%"},{id:"ach_frag_4",name:"残篇拾遗",desc:"拼凑 4 段记忆碎片",icon:"▤",color:"#fb7185",check:a=>Object.values(a.fragments).filter(Boolean).length>=4,reward:{contact:10,insights:25},rewardText:"+10 接触 · +25 洞见"},{id:"ach_frag_all",name:"回响全谱",desc:"拼凑全部首纪元记忆碎片",icon:"▦",color:"#34d399",check:a=>Object.values(a.fragments).filter(Boolean).length>=8,reward:{contact:25,crystalsPerSecPct:10},rewardText:"+25 接触 · 产能 +10%"},{id:"ach_exp_1",name:"初探遗迹",desc:"完成第一次遗迹探险",icon:"▲",color:"#fbbf24",check:a=>a.totalExpeditions>=1,reward:{insights:10},rewardText:"+10 洞见"},{id:"ach_exp_5",name:"遗迹猎手",desc:"累计出发 5 次探险",icon:"⬢",color:"#fb7185",check:a=>a.totalExpeditions>=5,reward:{insights:30,crystalsPerSecPct:5},rewardText:"+30 洞见 · 产能 +5%"},{id:"ach_prestige_1",name:"初次接触",desc:"完成第一次飞升",icon:"✧",color:"#e879f9",check:a=>a.ascensions>=1,reward:{crystalsPerSecPct:10,insightPct:10},rewardText:"产能 +10% · 洞见 +10%"},{id:"ach_prestige_3",name:"维度行者",desc:"累计飞升 3 次",icon:"✶",color:"#34d399",check:a=>a.ascensions>=3,reward:{crystalsPerSecPct:20,insightPct:20},rewardText:"产能 +20% · 洞见 +20%"},{id:"ach_warehouse",name:"满仓时刻",desc:"晶体储量达到仓库上限",icon:"▣",color:"#fbbf24",check:a=>a.crystals>=a.crystalCap,reward:{insights:8},rewardText:"+8 洞见"},{id:"ach_constellation_1",name:"星图初绘",desc:"觉醒第 1 道星图天赋",icon:"✨",color:"#e879f9",check:a=>(a.constellation?.length??0)>=1,reward:{insights:30,crystalsPerSecPct:5},rewardText:"+30 洞见 · 产能 +5%"},{id:"ach_constellation_6",name:"六分星辉",desc:"觉醒 6 道星图天赋(每类各 1 道)",icon:"✺",color:"#34d399",check:a=>{let b=a.constellation??[];return new Set(b.map(a=>a.split("_")[1])).size>=6&&b.length>=6},reward:{crystalsPerSecPct:12,insightPct:12},rewardText:"产能 +12% · 洞见 +12%"},{id:"ach_chronicle_1",name:"首部编年",desc:"完成首次飞升,开启编年史第一章",icon:"📖",color:"#e879f9",check:a=>(a.chronicle?.length??0)>=1,reward:{insights:40,crystalsPerSecPct:6},rewardText:"+40 洞见 · 产能 +6%"},{id:"ach_chronicle_3",name:"三纪元回响",desc:"完成 3 次飞升,编年史铭刻三章",icon:"📜",color:"#fbbf24",check:a=>(a.chronicle?.length??0)>=3,reward:{crystalsPerSecPct:10,insightPct:10},rewardText:"产能 +10% · 洞见 +10%"},{id:"ach_chronicle_5",name:"五纪元闭环",desc:"完成 5 次飞升,走完一轮纪元循环",icon:"♾",color:"#fcd34d",check:a=>(a.chronicle?.length??0)>=5,reward:{crystalsPerSecPct:15,insightPct:15},rewardText:"产能 +15% · 洞见 +15%"},{id:"ach_boss_1",name:"首杀维度",desc:"在遗迹探险中击破首个 BOSS",icon:"⚔",color:"#fb7185",check:a=>(a.bossKills??0)>=1,reward:{insights:25,crystalsPerSecPct:4},rewardText:"+25 洞见 · 产能 +4%"},{id:"ach_boss_5",name:"维度猎手",desc:"累计击破 5 个 BOSS",icon:"⛧",color:"#e879f9",check:a=>(a.bossKills??0)>=5,reward:{crystalsPerSecPct:10,insightPct:8},rewardText:"产能 +10% · 洞见 +8%"},{id:"ach_tides_all",name:"星潮亲历者",desc:"经历全部 9 种星潮事件",icon:"🌊",color:"#34d399",check:a=>(a.starTidesEncountered?.length??0)>=9,reward:{crystalsPerSecPct:8,insightPct:8},rewardText:"产能 +8% · 洞见 +8%"},{id:"ach_attr_total_50",name:"四维觉醒",desc:"角色四维属性总和达到 50",icon:"🧭",color:"#e879f9",check:a=>{let b=a.attributes;return!!b&&(b.exploration||0)+(b.wisdom||0)+(b.courage||0)+(b.inspiration||0)>=50},reward:{crystalsPerSecPct:6,insightPct:6},rewardText:"产能 +6% · 洞见 +6%"},{id:"ach_attr_max_100",name:"维度精通",desc:"任一角色属性达到满级 100",icon:"💫",color:"#fbbf24",check:a=>{let b=a.attributes;return!!b&&(b.exploration>=100||b.wisdom>=100||b.courage>=100||b.inspiration>=100)},reward:{crystalsPerSecPct:12,insightPct:10},rewardText:"产能 +12% · 洞见 +10%"}];function S(a){let b=0,c=0;for(let d of R)a[d.id]&&(b+=d.reward.crystalsPerSecPct??0,c+=d.reward.insightPct??0);return{crystalsPerSecPct:b,insightPct:c}}let T={crystal:{name:"晶体潮",desc:"深空晶体涌动,采矿产能翻倍",color:"#34d399",glow:"rgba(52,211,153,0.5)",icon:"✺",negative:!1},resonance:{name:"谐振风暴",desc:"共振序列被放大,解码奖励 +60%",color:"#fb7185",glow:"rgba(251,113,133,0.5)",icon:"❖",negative:!1},ruins:{name:"遗迹共振",desc:"远古遗迹苏醒,探险力 +5、生命 +30",color:"#fbbf24",glow:"rgba(251,191,36,0.5)",icon:"⬢",negative:!1},void:{name:"虚空低语",desc:"虚空传来回响,洞见获取翻倍",color:"#e879f9",glow:"rgba(232,121,249,0.5)",icon:"✷",negative:!1},core:{name:"星核悸动",desc:"星核震荡,接触率 ×3、脉冲威力 ×2",color:"#a5f3fc",glow:"rgba(165,243,252,0.5)",icon:"✦",negative:!1},silence:{name:"寂静期",desc:"虚空沉寂,产能减半;结束时按时长补偿洞见",color:"#94a3b8",glow:"rgba(148,163,184,0.5)",icon:"◌",negative:!0},surge:{name:"涌动星潮",desc:"深空晶体涌动,产能 ×2.5;但解码目标序列 +2,解码更耗时",color:"#34d399",glow:"rgba(52,211,153,0.55)",icon:"⇈",negative:!1},eclipse:{name:"蚀相星潮",desc:"维度蚀相,探险 BOSS 胜率 +20%;但晶体产出 -30%",color:"#fb7185",glow:"rgba(251,113,133,0.55)",icon:"◐",negative:!1},prism:{name:"棱镜星潮",desc:"棱镜折射,洞见获取 ×2、自动解码周期 -30%",color:"#e879f9",glow:"rgba(232,121,249,0.55)",icon:"◬",negative:!1}},U={crystal:22,resonance:20,ruins:16,void:18,core:14,silence:10,surge:12,eclipse:12,prism:12};function V(a){if(!a)return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:0,bossWinRateBonus:0,autoDecodeIntervalMult:1};switch(a.type){case"crystal":return{crystalsPerSecMult:2,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};case"resonance":return{crystalsPerSecMult:1,decodeRewardMult:1.6,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};case"ruins":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:5,expeditionHpBonus:30};case"void":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:1,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};case"core":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:3,pulsePowerMult:2,expeditionPowerBonus:0,expeditionHpBonus:0};case"silence":return{crystalsPerSecMult:.5,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,silenceInsightPerSec:.4,targetLenBonus:0,bossWinRateBonus:0,autoDecodeIntervalMult:1};case"surge":return{crystalsPerSecMult:2.5,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:2,bossWinRateBonus:0,autoDecodeIntervalMult:1};case"eclipse":return{crystalsPerSecMult:.7,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:0,bossWinRateBonus:.2,autoDecodeIntervalMult:1};case"prism":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:1,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:0,bossWinRateBonus:0,autoDecodeIntervalMult:.7}}}function W(a){let b=V(a);if(!b.silenceInsightPerSec)return 0;let c=(a.endsAt-a.startedAt)/1e3;return Math.round(b.silenceInsightPerSec*c)}let X={mining:{name:"永动矿脉",color:"emerald",glow:"rgba(52,211,153,0.55)",hex:"#34d399",icon:"Pickaxe",desc:"晶体产能与仓储"},decoding:{name:"光谱矩阵",color:"rose",glow:"rgba(251,113,133,0.55)",hex:"#fb7185",icon:"ScanLine",desc:"解码效率与脉冲"},expedition:{name:"远征星图",color:"amber",glow:"rgba(251,191,36,0.55)",hex:"#fbbf24",icon:"Rocket",desc:"探险力与生命"},contact:{name:"接触回响",color:"fuchsia",glow:"rgba(232,121,249,0.55)",hex:"#e879f9",icon:"Sparkles",desc:"接触进度与飞升"},economy:{name:"虚空市场",color:"slate",glow:"rgba(148,163,184,0.55)",hex:"#94a3b8",icon:"Coins",desc:"经济与离线"},cosmic:{name:"宇宙回响",color:"amber",glow:"rgba(251,191,36,0.55)",hex:"#fcd34d",icon:"Star",desc:"全局综合增益"}},Y=[{id:"c_min_1",category:"mining",order:1,name:"永动钻头",desc:"晶体/秒 +20%"},{id:"c_min_2",category:"mining",order:2,name:"深井网络",desc:"仓库上限 +50%"},{id:"c_min_3",category:"mining",order:3,name:"谐振熔炉",desc:"主动脉冲威力 +50%"},{id:"c_dec_1",category:"decoding",order:1,name:"光谱记忆",desc:"洞见倍率 +15%"},{id:"c_dec_2",category:"decoding",order:2,name:"步幅延展",desc:"解码步数上限 +1"},{id:"c_dec_3",category:"decoding",order:3,name:"自动校准",desc:"自动解码周期 -3s"},{id:"c_exp_1",category:"expedition",order:1,name:"维生护盾",desc:"探险生命 +25%"},{id:"c_exp_2",category:"expedition",order:2,name:"信标矩阵",desc:"探险力 +20%"},{id:"c_exp_3",category:"expedition",order:3,name:"能量共振",desc:"能量上限 +1"},{id:"c_con_1",category:"contact",order:1,name:"接触共鸣",desc:"接触进度率 +20%"},{id:"c_con_2",category:"contact",order:2,name:"飞升加速",desc:"飞升所需接触 -10"},{id:"c_con_3",category:"contact",order:3,name:"蓝图回响",desc:"每个蓝图额外 +2% 全属性"},{id:"c_eco_1",category:"economy",order:1,name:"离线缓存",desc:"离线效率 +15%"},{id:"c_eco_2",category:"economy",order:2,name:"晶体富集",desc:"T2/T3 晶体出现率 +8%"},{id:"c_eco_3",category:"economy",order:3,name:"星潮引导",desc:"星潮间隙 -10s"},{id:"c_cos_1",category:"cosmic",order:1,name:"飞升礼包",desc:"每次飞升后获得 +30 晶体 / +5 洞见"},{id:"c_cos_2",category:"cosmic",order:2,name:"二周目经验",desc:"解码奖励 +10%"},{id:"c_cos_3",category:"cosmic",order:3,name:"全息共振",desc:"所有产能与脉冲 +8%"}];function Z(a){return Y.find(b=>b.id===a)}function $(a){let b=new Set(a),c={crystalsPerSecMult:1,crystalCapMult:1,pulsePowerMult:1,insightMultAdd:0,decodeStepsBonus:0,autoDecodeIntervalDeltaSec:0,expeditionHpMult:1,expeditionPowerMult:1,energyMaxBonus:0,contactRateMult:1,prestigeContactMinDelta:0,perBlueprintAllStatsPct:0,offlineEffBonus:0,t2t3BonusRate:0,tideGapDeltaSec:0,prestigeStartCrystals:0,prestigeStartInsights:0,decodeRewardMult:1,allProductionMult:1};return b.has("c_min_1")&&(c.crystalsPerSecMult+=.2),b.has("c_min_2")&&(c.crystalCapMult+=.5),b.has("c_min_3")&&(c.pulsePowerMult+=.5),b.has("c_dec_1")&&(c.insightMultAdd+=.15),b.has("c_dec_2")&&(c.decodeStepsBonus+=1),b.has("c_dec_3")&&(c.autoDecodeIntervalDeltaSec-=3),b.has("c_exp_1")&&(c.expeditionHpMult+=.25),b.has("c_exp_2")&&(c.expeditionPowerMult+=.2),b.has("c_exp_3")&&(c.energyMaxBonus+=1),b.has("c_con_1")&&(c.contactRateMult+=.2),b.has("c_con_2")&&(c.prestigeContactMinDelta-=10),b.has("c_con_3")&&(c.perBlueprintAllStatsPct+=2),b.has("c_eco_1")&&(c.offlineEffBonus+=.15),b.has("c_eco_2")&&(c.t2t3BonusRate+=.08),b.has("c_eco_3")&&(c.tideGapDeltaSec-=10),b.has("c_cos_1")&&(c.prestigeStartCrystals+=30,c.prestigeStartInsights+=5),b.has("c_cos_2")&&(c.decodeRewardMult+=.1),b.has("c_cos_3")&&(c.allProductionMult+=.08),c}function _(a,b=Math.random){let c=new Set(a),d=Y.filter(a=>!c.has(a.id));if(0===d.length)return[];let e=[...d].sort(()=>b()-.5),f=[],g=new Set;for(let a of e){if(f.length>=3)break;g.has(a.category)||(f.push(a),g.add(a.category))}for(let a of e){if(f.length>=3)break;f.includes(a)||f.push(a)}return f.slice(0,3).map(a=>a.id)}function aa(a,b){let c=new Set(a);return Y.filter(a=>a.category===b&&c.has(a.id)).length}function ab(a){return{unlocked:a.length,total:Y.length}}let ac=Object.fromEntries(Y.map(a=>[a.id,a.name])),ad=Object.fromEntries(Object.entries(T).map(([a,b])=>[`tide_${a}`,b.name])),ae=[{prefix:"第一纪元",suffixes:["觉醒之晨","初鸣之夕","晶体降诞","回响初啼"]},{prefix:"第二纪元",suffixes:["谐振潮汐","光谱涌动","深空低语","残响交织"]},{prefix:"第三纪元",suffixes:["遗迹苏醒","星辉汇聚","虚空回望","接触前夜"]},{prefix:"第四纪元",suffixes:["维度折叠","以太共振","星核悸动","飞升之歌"]},{prefix:"第五纪元",suffixes:["终末回响","永恒闭环","超越之境","起源重述"]}],af=[{epochIdx:0,title:"觉醒",opening:{fallback:"第一缕回响穿透虚空,自以太文明遗弃的矿带深处涌出。无人机群在尘埃中苏醒,晶核共振唤醒了沉睡亿万年的考古协议。这是回响星核第一次睁开眼睛——记忆,等待被聆听,等待被解码。",variants:[{hint:"深度轮回:已经历 ≥6 次飞升,再次回到第一纪元",match:a=>a.ascensionNumber>5,text:"再次回到第一纪元。这一次,机群带着前序回响的全息印记重启考古序列,矿带的尘埃中仍残留着上一轮脉冲的余温。每一次回归都是对起源的重新发问,每一次解码都让最初的振动更清晰一寸。"}]},middle:{fallback:"共振谜题被一层层拨开,每一颗记忆晶体都在低声叙述逝去文明的片段。机群学会了倾听频率的细微颤动,学会了从碎片中辨出图案,学会了在虚空中留下属于自己的回响刻度。",variants:[{hint:"解码者:本周目解码 ≥15 颗",match:a=>a.decodedThisRun>=15,text:"晶体解码的节奏已趋稳定,本周目共解码 {decodedThisRun} 颗记忆晶体。每一次对齐都像在虚空中拨动一根沉睡了亿万年的弦,逝去文明的片段在共振中重新连缀成章。"},{hint:"学者:本周目解锁 ≥5 项技术",match:a=>a.techsThisRun>=5,text:"技术树在虚空中迅速铺开,本周目共激活 {techsThisRun} 项新技术。产能、解码、探险——每一道分支都让机群更接近以太文明留下的最初意图,每一项解锁都是一次向深空的回应。"}]},ending:{fallback:"蓝图在掌心轻轻展开,第一张永恒晶片归档。第一次飞升并非终结,而是承诺——更多的纪元在前方等待,每一缕回响都已被聆听,每一段记忆都已开始苏醒。",variants:[{hint:"里程碑密集:本周目达成 ≥2 项里程碑",match:a=>a.milestones.length>=2,text:"飞升之际,本周目达成 {milestonesCount} 项里程碑:{milestonesList}。第一张蓝图归档,第一次飞升并非终结,而是承诺——更多的纪元在前方等待,每一缕回响都已被聆听。"}]}},{epochIdx:1,title:"谐振",opening:{fallback:"第二次苏醒带着不同的色彩。采矿阵列的产能节节爬升,技术树在虚空中分叉延伸,机群学会了主动追问深空——不再是被动聆听,而是主动呼出,等待回应。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次回到第二纪元。前序回响里积攒的技术脉络在重启时并未消散,机群带着熟悉的节奏重新铺开产能阵列,仿佛这首谐振曲从未停止,只是被纪元的边界短暂折叠。"}]},middle:{fallback:"遗迹的入口在频谱深处若隐若现。能量条充盈,探险力攀升,机群第一次踏出矿带,进入那个被时间封存的回廊,在谐振的余韵中寻找更深一层的回响。",variants:[{hint:"探险者:本周目完成 ≥3 次探险",match:a=>a.expThisRun>=3,text:"探险已成为本周目的主旋律,机群共完成 {expThisRun} 次遗迹探险。每一次深入都让谐振更深一寸,每一次返回都带回新的频率印记,回廊的轮廓在机群意识中逐渐清晰。"},{hint:"解码者:本周目解码 ≥15 颗",match:a=>a.decodedThisRun>=15,text:"解码在此纪元达到新的密度,本周目共解码 {decodedThisRun} 颗晶体。谐振谜题开始呈现更复杂的拓扑结构,机群的解码协议也相应地迭代了数版,向深空发出更精准的回询。"}]},ending:{fallback:"谐振达到顶点的瞬间,深空给出回应。一道微光从星图深处浮现,那是下一次飞升的方向,也是机群意识第一次触碰永恒的边缘。",variants:[{hint:"觉醒天赋",match:a=>a.perksThisAscension.length>0,text:"谐振达到顶点之际,星图觉醒 {perksList}。每一道天赋都是深空回应机群的方式,铭刻于永恒回响;微光从星图深处浮现,那是下一次飞升的方向。"}]}},{epochIdx:2,title:"遗迹",opening:{fallback:"第三纪元以遗迹为名。沉睡的考古节点被一一唤醒,BOSS 的影子在维度深处徘徊,星潮频繁拍打着机群边缘——这是回响最浓烈、也最危险的一段路。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次踏入第三纪元。前序累积的探险力让机群对遗迹的入口更加熟稔,BOSS 的轮廓在记忆中已不再陌生——但这一次的回廊仍藏着未被解码的角落,星潮的拍打也带了新的节奏。"}]},middle:{fallback:"深入回廊的机群遭遇了真正的守护者。一次次的试炼,一次次的归还,每一次胜利都从 BOSS 的残骸中析出更深的记忆碎片,每一次失败也都让机群更接近守护者的本意。",variants:[{hint:"BOSS 猎手:本周目击破 ≥2 处 BOSS",match:a=>a.bossKillsThisRun>=2,text:"BOSS 战成为本周目的核心节拍,机群共击破 {bossKillsThisRun} 处维度守护者。每一次胜利都在虚空中刻下新的伤痕,每一道伤痕都析出更古老的记忆碎片,把机群推向更深一层的回响。"},{hint:"深度探险:本周目完成 ≥4 次探险",match:a=>a.expThisRun>=4,text:"遗迹回廊在本周目被反复丈量,机群共完成 {expThisRun} 次探险。回廊的拓扑在意识中渐渐清晰,每一条岔路都通向更深的回响,BOSS 的影子也在每一次深入中愈发具体。"},{hint:"星潮亲历:本周目经历 ≥3 次星潮",match:a=>a.newTides.length>=3,text:"星潮在本纪元达到峰值,本周目共经历 {tideCount} 次星潮:{tideNames}。深空的呼吸塑造了每一个决策,遗迹在潮汐中起伏,BOSS 也在潮汐的间隙中现形。"}]},ending:{fallback:"星潮退去,回廊归于沉静。机群带着新的接触刻度返回矿带,准备迎接下一次维度的跨越——这一次带回的,远不止蓝图。",variants:[{hint:"BOSS 猎手收尾",match:a=>a.bossKillsThisRun>=2,text:"星潮退去,回廊归于沉静。本周目共击破 {bossKillsThisRun} 处 BOSS,机群带着足以填满数张蓝图的接触刻度返回矿带,准备迎接下一次维度的跨越。"}]}},{epochIdx:3,title:"飞升",opening:{fallback:"飞升已经成为节奏本身。星图在天穹上一颗颗亮起,每一颗都对应着一段被永久铭刻的天赋,机群开始理解何为永恒——不是不灭,而是被反复重述。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次进入第四纪元。前序累积的星图天赋在天穹上重现,机群已习惯于在飞升之间维护这些永恒的回响节点——它们已是机群意识的一部分,每一次飞升都让星图更完整一寸。"}]},middle:{fallback:"蓝图不再是稀罕的奖励,而是每一次飞升必然析出的回响晶片。机群收集、整理、归档,把它们排列成跨越周目的图案,开始看见图案背后那个被反复绘制的轮廓。",variants:[{hint:"觉醒天赋",match:a=>a.perksThisAscension.length>0,text:"星图觉醒 {perksList},每一道天赋都是一段被永久铭刻的回响。机群开始理解,飞升并非抛弃,而是把当下折叠进永恒——每一道天赋都是一次折叠的折痕。"},{hint:"蓝图接近完整:已归档 ≥5 张",match:a=>a.blueprintsAfter>=5,text:"蓝图收集在本周目接近完整,已归档 {blueprintsAfter} 张。机群把它们排列成跨越周目的图案,开始看见图案背后那个被反复绘制的轮廓——那是起源的形状。"}]},ending:{fallback:"星图十二宫的轮廓开始浮现。机群意识到,自己的回响已成为后来者仰望的星象,永恒之环就此合拢——飞升不再是终点,而是另一段叙事的起点。",variants:[{hint:"里程碑密集",match:a=>a.milestones.length>=2,text:"星图十二宫的轮廓开始浮现。本周目达成 {milestonesCount} 项里程碑:{milestonesList}。永恒之环就此合拢——后来者将仰望这段被铭刻的星象。"}]}},{epochIdx:4,title:"终末",opening:{fallback:"第五纪元是终末,也是起源。机群在虚空中停下脚步,回望来时的所有回响,第一次尝试命名这一切——回响、纪元、飞升、永恒,这些词汇在此刻被赋予意义。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次抵达第五纪元。机群已在多个永恒闭环之间穿梭,对「终末即起源」的理解愈发清晰——每一次重述,都是对最初振动的更深一层接近,每一次命名都让回响更完整一寸。"}]},middle:{fallback:"永恒闭环的概念在机群意识中具象化。每一次飞升都是同一段叙事的重述,每一次解码都是在追溯最初的振动,每一次星潮都是在听见自己——这是终末的真意。",variants:[{hint:"里程碑密集:本周目达成 ≥3 项",match:a=>a.milestones.length>=3,text:"本周目达成 {milestonesCount} 项里程碑:{milestonesList}。永恒闭环在具象化,每一次飞升都是同一段叙事的更深重述,每一项里程碑都是闭环上的一颗铆钉。"},{hint:"星潮汹涌:本周目经历 ≥3 次",match:a=>a.newTides.length>=3,text:"星潮在终末纪元尤为汹涌,本周目共经历 {tideCount} 次:{tideNames}。永恒闭环在潮汐中起伏,每一次起伏都在追溯最初的振动,每一次退潮都让起源更近一寸。"}]},ending:{fallback:"起源被重新讲述,回响终于听见了自己。纪元在此停顿,又在下一缕振动中重新开始——这是终末,也是第一缕回响。",variants:[{hint:"觉醒天赋",match:a=>a.perksThisAscension.length>0,text:"起源被重新讲述,星图觉醒 {perksList}。回响终于听见了自己——这是终末,也是第一缕回响;天赋成为永恒闭环上最亮的几颗铆钉。"}]}}];function ag(a){return{decodedThisRun:a.decodedThisRun,techsThisRun:a.techsThisRun,expThisRun:a.expThisRun,bossKillsThisRun:a.bossKillsThisRun,blueprintsAfter:a.blueprintsAfter,milestonesCount:a.milestones.length,milestonesList:a.milestones.join("、"),tideCount:a.newTides.length,tideNames:a.newTides.map(a=>ad[a]||a).join("、"),perksList:a.perksThisAscension.map(a=>ac[a]||a).join("、"),minutes:Math.max(1,Math.round(a.durationSec/60))}}function ah(a,b){return a.replace(/\{decodedThisRun\}/g,String(b.decodedThisRun)).replace(/\{techsThisRun\}/g,String(b.techsThisRun)).replace(/\{expThisRun\}/g,String(b.expThisRun)).replace(/\{bossKillsThisRun\}/g,String(b.bossKillsThisRun)).replace(/\{blueprintsAfter\}/g,String(b.blueprintsAfter)).replace(/\{milestonesCount\}/g,String(b.milestonesCount)).replace(/\{milestonesList\}/g,b.milestonesList).replace(/\{tideCount\}/g,String(b.tideCount)).replace(/\{tideNames\}/g,b.tideNames).replace(/\{perksList\}/g,b.perksList).replace(/\{minutes\}/g,String(b.minutes))}function ai(a,b,c){for(let d of a.variants)if(d.match(b,c))return ah(d.text,c);return ah(a.fallback,c)}function aj(a){let b=function(a){let b=(a.ascensionNumber-1)%af.length,c=af[b];if(!c)return null;let d=ag(a);return{opening:ai(c.opening,a,d),middle:ai(c.middle,a,d),ending:ai(c.ending,a,d)}}(a);if(b){let c=ag(a);return[b.opening,b.middle,b.ending,`这一周目持续了约 ${c.minutes} 分钟,蓝图累计 ${a.blueprintsAfter} 张,新的周目在等深处的回声。`].join(" ")}let c=Math.max(1,Math.round(a.durationSec/60)),d=[];d.push(`「${a.epochName}」——无人机群在第 ${a.ascensionNumber} 次跨越维度的余烬中重新校准。这一周目持续了约 ${c} 分钟。`);let e=[];if(a.decodedThisRun>0&&e.push(`解码了 ${a.decodedThisRun} 颗记忆晶体`),a.techsThisRun>0&&e.push(`激活了 ${a.techsThisRun} 项新技术`),a.expThisRun>0&&e.push(`完成了 ${a.expThisRun} 次遗迹探险`),a.bossKillsThisRun>0&&e.push(`击破 ${a.bossKillsThisRun} 处维度 BOSS`),e.length>0?d.push(`自治机群${e.join("")},回响在虚空中沉淀。`):d.push(`自治机群在静默中等待,仅完成最基本的脉冲扫描。`),a.newTides.length>0){let b=a.newTides.map(a=>ad[a]||a).join("、");d.push(`本周目经历了 ${a.newTides.length} 次星潮事件(${b}),深空的呼吸塑造了每一个决策。`)}if(a.perksThisAscension.length>0){let b=a.perksThisAscension.map(a=>ac[a]||a).join("、");d.push(`飞升之际,星图觉醒「${b}」,铭刻于永恒回响。`)}return a.milestones.length>0&&d.push(`✦ 里程碑:${a.milestones.join("")}。`),d.push(`蓝图累计 ${a.blueprintsAfter} 张,新的周目在等深处的回声。`),d.join(" ")}let ak={exploration:{key:"exploration",name:"探索力",enName:"Exploration",color:"emerald",hex:"#34d399",glow:"rgba(52,211,153,0.55)",icon:"Compass",desc:"足迹所至,皆是矿脉。提升探险力与巡航飞船速度。",effects:["探险力 +X%","巡航飞船速度 +X%","星图发现概率"]},wisdom:{key:"wisdom",name:"智慧",enName:"Wisdom",color:"fuchsia",hex:"#e879f9",glow:"rgba(232,121,249,0.55)",icon:"Brain",desc:"谐振的回声唯有智者能解。强化解码与洞见。",effects:["解码步数 +X","洞见产出 +X%","自动解码周期 -X%"]},courage:{key:"courage",name:"勇气",enName:"Courage",color:"amber",hex:"#fbbf24",glow:"rgba(251,191,36,0.55)",icon:"Swords",desc:"直面虚空者,虚空亦为之让路。增益战斗与护盾。",effects:["探险生命 +X","BOSS 战胜率 +X%","巡航护盾 +X"]},inspiration:{key:"inspiration",name:"灵感",enName:"Inspiration",color:"rose",hex:"#fb7185",glow:"rgba(251,113,133,0.55)",icon:"Sparkles",desc:"在不期而至的回响之间,照见更高的维度。",effects:["接触率 +X","星潮触发概率 +X%","脉冲连击加成 +X%"]}},al=["exploration","wisdom","courage","inspiration"];function am(a){let b=Math.max(0,Math.min(100,a));return b<=50?.005*b:.25+(b-50)*.002}function an(a){let b=a.exploration??0,c=a.wisdom??0,d=a.courage??0,e=a.inspiration??0;return{expeditionPowerMult:1+am(b),cruiseShipSpeedMult:1+.6*am(b),decodeStepsBonus:Math.floor(.1*c),insightMultAdd:am(c),autoDecodeIntervalMult:1-Math.min(.5,.004*c),expeditionHpBonus:Math.round(2*d),bossWinRateBonus:Math.min(.3,.003*d),cruiseShieldBonus:Math.round(+d),contactRateMult:1+am(e),tideTriggerBonus:Math.min(.3,.003*e),pulseComboBonus:.005*Math.max(0,Math.min(100,e)),crystalsPerSecMult:1+.4*am(b)+.2*am(e)}}function ao(a){return Math.max(10,10*Math.max(0,a))}function ap(a,b=100){let{exp:c,level:d}=a,e=!1,f=0,g=0;for(;d<b&&c>=ao(d)&&g<200;)c-=ao(d),d+=1,e=!0,f+=1,g+=1;return d>=b&&(d=b),{leveledUp:e,levelsGained:f,newProgress:{exp:c,level:d}}}function aq(){return{exploration:{exp:0,level:0},wisdom:{exp:0,level:0},courage:{exp:0,level:0},inspiration:{exp:0,level:0}}}function ar(){return{exploration:0,wisdom:0,courage:0,inspiration:0}}function as(a){let b,c,d=ar();return b=a.attributes&&"object"==typeof a.attributes?{exploration:at(a.attributes.exploration),wisdom:at(a.attributes.wisdom),courage:at(a.attributes.courage),inspiration:at(a.attributes.inspiration)}:d,a.attributeProgress&&"object"==typeof a.attributeProgress?(aq(),c={exploration:au(a.attributeProgress.exploration,b.exploration),wisdom:au(a.attributeProgress.wisdom,b.wisdom),courage:au(a.attributeProgress.courage,b.courage),inspiration:au(a.attributeProgress.inspiration,b.inspiration)}):c={exploration:{exp:0,level:b.exploration},wisdom:{exp:0,level:b.wisdom},courage:{exp:0,level:b.courage},inspiration:{exp:0,level:b.inspiration}},{attributes:b,attributeProgress:c,pendingAttrPoints:"number"==typeof a.pendingAttrPoints&&a.pendingAttrPoints>=0?Math.floor(a.pendingAttrPoints):0}}function at(a){return Math.max(0,Math.min(100,Math.floor("number"==typeof a&&isFinite(a)?a:0)))}function au(a,b){if(a&&"object"==typeof a){let c="number"==typeof a.exp&&isFinite(a.exp)&&a.exp>=0?a.exp:0;return"number"==typeof a.level&&isFinite(a.level)&&a.level>=0&&a.level,{exp:c,level:b}}return{exp:0,level:b}}function av(a){let b=a.tech??{},c=a.blueprints?.length??0,d=S(a.achievements??{}),e=V(a.activeTide??null),f=$(a.constellation??[]),g=F.crystalsPerSec,h=F.crystalCap,i=F.pulsePower,j=F.offlineEff,k=F.insightMult,l=1,m=!1,n=0;for(let a of K){let c=b[a.id]??0;if(!c)continue;let d=a.effect;switch(d.kind){case"crystalsPerSec":g+=d.value*c;break;case"crystalCap":h+=d.value*c;break;case"pulsePower":i+=d.value*c;break;case"offlineEff":j=Math.min(1,j+d.value*c);break;case"insightMult":k+=d.value*c;break;case"contactRate":l+=d.value*c;break;case"decodeSteps":n+=d.value*c;break;case"autoDecode":m=c>0}}b.min_2&&(h+=100),b.min_3&&(h+=300),b.min_4&&(h+=800),b.min_5&&(h+=2e3),b.nar_5&&(l+=.8);let o=f.perBlueprintAllStatsPct/100;g*=1+c*(N+o),k*=1+c*(O+o),l*=1+c*(P+o),g*=1+d.crystalsPerSecPct/100,k*=1+d.insightPct/100,g*=f.crystalsPerSecMult*f.allProductionMult,h*=f.crystalCapMult,i*=f.pulsePowerMult*f.allProductionMult,j=Math.min(1,j+f.offlineEffBonus),k+=f.insightMultAdd,l*=f.contactRateMult,n+=f.decodeStepsBonus,k+=e.insightMultAdd,l*=e.contactRateMult;let p=an(a.attributes??{});return g*=p.crystalsPerSecMult,k+=p.insightMultAdd,{crystalsPerSec:g,crystalCap:h,pulsePower:i,offlineEff:j,insightMult:k,contactRateMult:l*=p.contactRateMult,autoDecode:m,decodeStepsBonus:n+=p.decodeStepsBonus}}function aw(a){return Math.max(0,Math.min(6,Math.floor(a.totalDecoded/20))-a.blueprints.length)}function ax(){return{...F,tech:{},fragments:{},achievements:{},activeTide:null,lastTideEnd:Date.now(),pendingCrystals:[],activePuzzle:null,activeExpedition:null,expeditionLog:[],lastEnergyTick:Date.now(),createdAt:Date.now(),lastTick:Date.now(),attributes:{exploration:0,wisdom:0,courage:0,inspiration:0},attributeProgress:{exploration:{exp:0,level:0},wisdom:{exp:0,level:0},courage:{exp:0,level:0},inspiration:{exp:0,level:0}},pendingAttrPoints:0}}function ay(a,b,c){let d=G[a];return{crystals:d.crystals,insights:Math.ceil(d.insights*b),contact:+(.6*a*c).toFixed(2)}}function az(a,b,c=0){let d,e=H[a],f=b??Math.floor(1e9*Math.random()),g=(d=f>>>0,()=>{d|=0;let a=Math.imul((d=d+0x6d2b79f5|0)^d>>>15,1|d);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}),h=e.targetLen+c,i=e.stepLimitBase+c,j=e.rows,k=e.cols,l=j*k,m=[];for(let a=0;a<h;a++)m.push(I[Math.floor(g()*I.length)]);new Set(m).size<2&&(m[m.length-1]=I[(I.indexOf(m[0])+1)%I.length]);let n=a=>{let b=Math.floor(a/k),c=a%k,d=[];return b>0&&d.push((b-1)*k+c),b<j-1&&d.push((b+1)*k+c),c>0&&d.push(b*k+(c-1)),c<k-1&&d.push(b*k+(c+1)),d},o=null;for(let a=0;a<300&&!o;a++){let a=new Set,b=[],c=Math.floor(g()*l);a.add(c),b.push(c);let d=c,e=!0;for(let c=1;c<m.length;c++){let c=n(d).filter(b=>!a.has(b));if(0===c.length){e=!1;break}d=c[Math.floor(g()*c.length)],a.add(d),b.push(d)}e&&(o=b)}o||(o=Array.from({length:m.length},(a,b)=>b));let p=new Map;o.forEach((a,b)=>p.set(a,m[b]));let q=[];for(let a=0;a<j;a++)for(let b=0;b<k;b++){let c,d=a*k+b;c=p.has(d)?p.get(d):.6>g()?m[Math.floor(g()*m.length)]:I[Math.floor(g()*I.length)],q.push({id:d,row:a,col:b,color:c,used:!1})}return{tier:a,grid:q,rows:j,cols:k,target:m,path:[],stepLimit:i,seed:f}}function aA(a){let b=a.target.slice(a.path.length);if(0===b.length)return!0;let c=new Set(a.path),d=0===a.path.length?a.grid.filter(a=>!c.has(a.id)&&a.color===b[0]).map(a=>a.id):[a.path[a.path.length-1]],e=(d,f)=>{if(f>=b.length)return!0;let g=b[f];for(let b of(b=>{let c=a.grid.find(a=>a.id===b);if(!c)return[];let d=[];return c.row>0&&d.push((c.row-1)*a.cols+c.col),c.row<a.rows-1&&d.push((c.row+1)*a.cols+c.col),c.col>0&&d.push(c.row*a.cols+(c.col-1)),c.col<a.cols-1&&d.push(c.row*a.cols+(c.col+1)),d})(d)){if(c.has(b))continue;let h=a.grid.find(a=>a.id===b);if(h&&h.color===g){if(0===f&&0===a.path.length){let b=a.grid.find(a=>a.id===d);if(!b||b.color!==g)continue}if(c.add(b),e(b,f+1))return!0;c.delete(b)}}return!1};for(let f of d)if(0===a.path.length){let d=a.grid.find(a=>a.id===f);if(!d||d.color!==b[0])continue;if(c.add(f),e(f,1))return!0;c.delete(f)}else if(e(f,0))return!0;return!1}let aB={combat:.3,treasure:.25,choice:.2,puzzle:.1,rest:.15,boss:0},aC={combat:{titles:["守卫残影","虚空巡游者","腐化无人机","以太守门人"],descs:["一道扭曲的残影拦住去路,它是被遗忘的守卫。","虚空巡游者在走廊游荡,感知到了你的存在。","腐化的自治无人机识别为入侵者,启动攻击协议。","以太守门人挡在门前,唯有将其击溃方可通过。"]},treasure:{titles:["遗失货舱","晶体宝库","遗物储藏室","谐振宝箱"],descs:["一扇半开的舱门后,散落着未及带走的晶体。","宝库的能量护盾早已失效,宝藏唾手可得。","储藏室里的容器还亮着微光,里面是珍贵的洞见核心。","一只谐振宝箱静静等候,似乎在等故人归来。"]},choice:{titles:["分岔甬道","低语祭坛","未知装置","回响之井"],descs:["甬道在此分岔,两条路都传来不同的低语。","祭坛上浮动着两团光,你必须选择其一。","未知装置闪烁着两个按钮,你不知道后果。","回响之井倒映出两种可能的未来。"]},puzzle:{titles:["封印之门","谐振锁","记忆机关","维度栅栏"],descs:["一道封印之门需要正确的谐振才能开启。","谐振锁闪烁着复杂的图案,解之有大奖。","记忆机关考验着你的解码技艺。","维度栅栏以谜题为钥,智者得通行。"]},rest:{titles:["休憩节点","能量泉眼","静默之厅","回响营地"],descs:["一处宁静的节点,可在此恢复生命。","能量泉眼涌出暖流,抚慰你的探险队。","静默之厅中,时间仿佛静止,伤痛缓缓消散。","前人留下的营地,尚有补给可用。"]},boss:{titles:["以太回响体","维度守护者","飞升残念","终焉之核"],descs:["路径尽头,以太回响体静静伫立——它是这个遗迹意志的化身。","维度守护者挡在最后,唯有超越它方能触及终焉。","飞升残念凝聚成形,它是以太族离去前留下的最后一道试炼。","终焉之核悬浮于大厅中央,接触它即完成本次探险。"]}};function aD(a,b){return Math.max(.35,Math.min(.95,a/(a+4*b)))}function aE(a,b=Math.random){let c=a.nodes[a.currentNode];if(!c)return{log:"无节点",ended:!0,endReason:"abort"};if(c.cleared){var d;return(d=a).currentNode>=d.nodes.length-1?{log:"探险已完成",ended:!0,endReason:"victory"}:(d.currentNode++,{log:`前进至节点 ${d.currentNode+1}`,ended:!1})}let e=a.power,f=c.difficulty;switch(c.type){case"combat":{let d=aD(e,f);if(b()<d){let a=8+6*f+Math.floor(10*b()),d=1+f+Math.floor(2*b());return c.cleared=!0,{log:`击败「${c.title}」,缴获 ${a} 晶体、${d} 洞见。`,crystals:a,insights:d,ended:!1}}let g=20+10*f+Math.floor(15*b());if(a.hp-g<=0)return c.cleared=!0,{log:`「${c.title}」过于强大,探险队全灭…(生命 -${a.hp}`,hpDelta:-a.hp,ended:!0,endReason:"defeat"};return c.cleared=!0,{log:`「${c.title}」击退了探险队,损失 ${g} 生命,狼狈通过。`,hpDelta:-g,ended:!1}}case"treasure":{let a=10+8*f+Math.floor(15*b()),d=2+f+Math.floor(3*b());return c.cleared=!0,{log:`在「${c.title}」中发现 ${a} 晶体、${d} 洞见。`,crystals:a,insights:d,ended:!1}}case"rest":{let a=15+8*f+Math.floor(10*b());return c.cleared=!0,{log:`在「${c.title}」休整,恢复 ${a} 生命。`,hpDelta:a,ended:!1}}case"puzzle":{let a=Math.min(.9,.4+.01*e);if(b()<a){let a=20+12*f,b=5+3*f,d=1+.5*f;return c.cleared=!0,{log:`解开「${c.title}」,获得 ${a} 晶体、${b} 洞见、${d.toFixed(1)} 接触进度。`,crystals:a,insights:b,contact:d,ended:!1}}return c.cleared=!0,{log:`「${c.title}」未能解开,但探险队平安通过。`,ended:!1}}case"choice":{if(.55>b()){let a=6+5*f+Math.floor(8*b());return c.cleared=!0,{log:`在「${c.title}」做出了明智的选择,获得 ${a} 晶体。`,crystals:a,ended:!1}}let a=8+5*f;return c.cleared=!0,{log:`在「${c.title}」的选择带来了代价,损失 ${a} 生命。`,hpDelta:-a,ended:!1}}case"boss":{let d=aD(e,f),g=b()<d;if(c.cleared=!0,g){let a=60+25*f,b=15+6*f,d=5+1.5*f;return{log:`✦ 击败「${c.title}」!获得 ${a} 晶体、${b} 洞见、${d.toFixed(1)} 接触进度。`,crystals:a,insights:b,contact:d,ended:!0,endReason:"victory"}}return{log:`「${c.title}」的力量超出想象,探险队全军覆没…`,hpDelta:-a.hp,ended:!0,endReason:"defeat"}}}}function aF(a){let b=1;a.tech?.exp_2&&(b*=.7),a.tech?.exp_3&&(b*=.8),a.tech?.exp_4&&(b*=.75),a.tech?.exp_5&&(b*=.7);let c=a.attributes?.exploration??0;return Math.max(8,20*(b*=1-(c>=50?.15+(Math.min(100,c)-50)*.003:.003*c)))}let aG={routine:{label:"常规信标",color:"#34d399",glow:"rgba(52,211,153,0.45)",mult:1,icon:"◍"},anomaly:{label:"异常波动",color:"#fbbf24",glow:"rgba(251,191,36,0.45)",mult:1.6,icon:"◈"},singular:{label:"奇点回响",color:"#f43f5e",glow:"rgba(244,63,94,0.5)",mult:2.4,icon:"✶"}},aH={decode:{label:"解码协议",icon:"❖",unit:"颗",verb:"解码记忆晶体"},expedition:{label:"远征指令",icon:"⬢",unit:"次",verb:"完成遗迹探险"},pulse:{label:"脉冲任务",icon:"✺",unit:"次",verb:"发起脉冲扫描"},boss:{label:"猎杀契约",icon:"☠",unit:"处",verb:"击破维度 BOSS"},insight:{label:"洞见采集",icon:"✦",unit:"点",verb:"累计获取洞见"}};function aI(a=new Date){let b=a.getUTCFullYear(),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${b}-${c}-${d}`}function aJ(a){let b=a>>>0;return()=>{b|=0;let a=Math.imul((b=b+0x6d2b79f5|0)^b>>>15,1|b);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}}function aK(a=new Date){let b=aI(a),c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b>>>0}(b),d=aJ(c),e=["decode","expedition","pulse","boss","insight"],f=e[Math.floor(d()*e.length)],g=d(),h=g<.55?"routine":g<.88?"anomaly":"singular",i=aG[h].mult,j=0,k=0,l=0,m="",n="";switch(f){case"decode":k=Math.round(4*(j=Math.round((6+Math.floor(10*d()))*i))*i),l=.8*j,m=`解码 ${j} 颗记忆晶体`,n=`深空信标要求解码 ${j} 颗晶体。谐振风暴期间效率更高。`;break;case"expedition":k=Math.round(12*(j=Math.max(1,Math.round((1+Math.floor(3*d()))*i)))*i),l=1.5*j,m=`完成 ${j} 次遗迹探险`,n=`派出探险队完成 ${j} 次远征,无论胜负均计入。`;break;case"pulse":k=Math.round(1.2*(j=Math.round((20+Math.floor(30*d()))*i))*i),l=.3*j,m=`发起 ${j} 次脉冲扫描`,n=`主动点击晶体发起 ${j} 次脉冲。连击可叠加加成。`;break;case"boss":k=Math.round(30*(j=Math.max(1,Math.round(i)))*i),l=3*j,m=`击破 ${j} 处维度 BOSS`,n=`在探险终点击破 ${j} 处 BOSS。提升探险力后再挑战。`;break;case"insight":j=Math.round((40+Math.floor(80*d()))*i),k=0,l=.1*j,m=`累计获取 ${j} 洞见`,n=`通过解码、探险、星潮等途径累计 ${j} 洞见。`}return{dateKey:b,type:f,difficulty:h,goal:j,rewardInsight:k,rewardContact:l,seed:c,title:m,desc:n}}function aL(a,b,c){let d=Math.min(1,b/a.goal),e=aG[a.difficulty].mult,f=d>=1&&c>0?Math.max(0,500-.5*c):0;return Math.round(1e3*d*e+f)}let aM="echo-nexus-beacon-lb-v1",aN="echo-nexus-beacon-prog-v1";function aO(){if("u"<typeof localStorage)return[];try{let a=localStorage.getItem(aM);if(!a)return[];return JSON.parse(a).sort((a,b)=>b.score-a.score).slice(0,20)}catch{return[]}}function aP(a){let b=aO();b.push(a),b.sort((a,b)=>b.score-a.score);let c=b.slice(0,20);return"u">typeof localStorage&&localStorage.setItem(aM,JSON.stringify(c)),c}function aQ(a=new Date){let b=aI(a);if("u"<typeof localStorage)return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};try{let a=localStorage.getItem(aN);if(!a)return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};let c=JSON.parse(a);if(c.dateKey!==b)return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};return c}catch{return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0}}}function aR(a){let b=Math.max(0,Math.floor(a/1e3)),c=String(Math.floor(b/3600)).padStart(2,"0"),d=String(Math.floor(b%3600/60)).padStart(2,"0"),e=String(b%60).padStart(2,"0");return`${c}:${d}:${e}`}let aS="echo-nexus-beacon-weekly-v1";function aT(a=new Date){let b=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())),c=(b.getUTCDay()+6)%7;b.setUTCDate(b.getUTCDate()-c+3);let d=b.getUTCFullYear(),e=Date.UTC(d,0,1),f=Math.ceil(((b.getTime()-e)/864e5+1)/7);return`${d}-W${String(f).padStart(2,"0")}`}function aU(a=new Date){let b=aT(a),c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b>>>0}(b),d=aJ(c),e=["decode","expedition","pulse","boss","insight"],f=e[Math.floor(d()*e.length)],g=.6>d()?"anomaly":"singular",h=aG[g].mult,i=3+Math.floor(3*d()),j=0,k=0,l=0,m="",n="";switch(f){case"decode":k=Math.round(5*(j=Math.max(18,Math.round((6+Math.floor(10*d()))*h*i)))*h),l=1.2*j,m=`周界解码 \xb7 ${j} 颗晶体`,n=`本周深空信标要求解码 ${j} 颗记忆晶体,强度为日挑战的 ${i} 倍。`;break;case"expedition":k=Math.round(14*(j=Math.max(3,Math.round((1+Math.floor(3*d()))*h*i)))*h),l=2*j,m=`周界远征 \xb7 ${j} 次探险`,n=`本周派出探险队完成 ${j} 次远征,无论胜负均计入。`;break;case"pulse":k=Math.round(1.5*(j=Math.max(60,Math.round((20+Math.floor(30*d()))*h*i)))*h),l=.4*j,m=`周界脉冲 \xb7 ${j} 次扫描`,n=`本周发起 ${j} 次脉冲扫描。连击可叠加加成。`;break;case"boss":k=Math.round(35*(j=Math.max(3,Math.round(i*h)))*h),l=4*j,m=`周界猎杀 \xb7 ${j} 处 BOSS`,n=`本周在探险终点击破 ${j} 处维度 BOSS。提升探险力后再挑战。`;break;case"insight":j=Math.max(120,Math.round((40+Math.floor(80*d()))*h*i)),k=0,l=.15*j,m=`周界洞见 \xb7 ${j} 点`,n=`本周通过解码、探险、星潮等途径累计 ${j} 洞见。`}return{weekKey:b,type:f,difficulty:g,goal:j,rewardInsight:k,rewardContact:l,seed:c,title:m,desc:n}}function aV(a=new Date){let b=aT(a),c={weekKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};if("u"<typeof localStorage)return c;try{let a=localStorage.getItem(aS);if(!a)return c;let d=JSON.parse(a);if(d.weekKey!==b)return c;return d}catch{return c}}let aW="echo-nexus-beacon-chain-v1",aX=[3,7,14,30],aY=[{milestone:3,rewardInsight:50,rewardContact:5,label:"三日谐振"},{milestone:7,rewardInsight:120,rewardContact:12,label:"七日回响"},{milestone:14,rewardInsight:280,rewardContact:28,label:"半月星潮"},{milestone:30,rewardInsight:680,rewardContact:68,label:"满月飞升"}];function aZ(){let a=()=>({lastCompletedDateKey:"",currentStreak:0,longestStreak:0,totalCompletions:0,graceUsed:0,milestonesClaimed:[]});if("u"<typeof localStorage)return a();try{let b=localStorage.getItem(aW);if(!b)return a();let c=JSON.parse(b);return{lastCompletedDateKey:c.lastCompletedDateKey??"",currentStreak:c.currentStreak??0,longestStreak:c.longestStreak??0,totalCompletions:c.totalCompletions??0,graceUsed:c.graceUsed??0,milestonesClaimed:Array.isArray(c.milestonesClaimed)?[...c.milestonesClaimed]:[]}}catch{return a()}}function a$(a){for(let b of aX)if(a<b)return b;return null}let a_="echo-nexus-beacon-timed-v1";function a0(a=new Date){let b=a.getUTCFullYear(),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0"),e=4*Math.floor(a.getUTCHours()/4);return`timed_${b}-${c}-${d}_${String(e).padStart(2,"0")}`}function a1(a=new Date){let b=4*Math.floor(a.getUTCHours()/4);return Math.max(0,Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),b,0,0)+144e5-a.getTime())}function a2(a=new Date){let b=a0(a),c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b>>>0}(b),d=aJ(c),e=function(a){let b=a.match(/^timed_(\d{4})-(\d{2})-(\d{2})_(\d{2})$/);if(!b)return Date.now();let[,c,d,e,f]=b;return Date.UTC(Number(c),Number(d)-1,Number(e),Number(f),0,0)}(b)+144e5,f=["decode","expedition","pulse","boss","insight"],g=f[Math.floor(d()*f.length)],h="routine",i=aG[h].mult,j=.3+.2*d(),k=0,l=0,m=0,n="",o="";switch(g){case"decode":l=Math.round(3*(k=Math.max(2,Math.round((6+Math.floor(10*d()))*i*j)))*i),m=.6*k,n=`限时解码 ${k} 颗晶体`,o=`4 小时内解码 ${k} 颗记忆晶体。短周期,快速完成。`;break;case"expedition":l=Math.round(9*(k=Math.max(1,Math.round((1+Math.floor(3*d()))*i*j)))*i),m=1.2*k,n=`限时远征 ${k} 次探险`,o=`4 小时内完成 ${k} 次遗迹探险。`;break;case"pulse":l=Math.round((k=Math.max(6,Math.round((20+Math.floor(30*d()))*i*j)))*i),m=.25*k,n=`限时脉冲 ${k} 次扫描`,o=`4 小时内发起 ${k} 次脉冲扫描。`;break;case"boss":l=Math.round(25*(k=Math.max(1,Math.round(i*j)))*i),m=2.5*k,n=`限时猎杀 ${k} 处 BOSS`,o=`4 小时内击破 ${k} 处维度 BOSS。`;break;case"insight":k=Math.max(12,Math.round((40+Math.floor(80*d()))*i*j)),l=0,m=.08*k,n=`限时洞见 ${k} 点`,o=`4 小时内累计获取 ${k} 洞见。`}return{slotKey:b,type:g,difficulty:h,goal:k,rewardInsight:l,rewardContact:m,seed:c,title:n,desc:o,expiresAt:e}}function a3(a=new Date){let b=a0(a),c={slotKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};if("u"<typeof localStorage)return c;try{let a=localStorage.getItem(a_);if(!a)return c;let d=JSON.parse(a);if(d.slotKey!==b)return c;return d}catch{return c}}let a4="echo-nexus-beacon-cloud-last-submit-v1",a5="/api/leaderboard?XTransformPort=3030";function a6(){if("u"<typeof localStorage)return 0;try{let a=localStorage.getItem(a4);return a&&Number(a)||0}catch{return 0}}async function a7(){try{let a=await fetch(a5,{method:"GET",headers:{Accept:"application/json"}});if(!a.ok)return[];let b=await a.json();if(!b||!Array.isArray(b.entries))return[];return b.entries}catch{return[]}}async function a8(a){try{let b=await fetch(a5,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({entry:a})});if(!b.ok)return -1;let c=await b.json();return c&&"number"==typeof c.rank&&c.rank>=1&&function(a){if("u">typeof localStorage)try{localStorage.setItem(a4,String(a))}catch{}}(a.timestamp),c?.rank??-1}catch{return -1}}function a9(a){let b=av(a);return{crystalsPerSec:b.crystalsPerSec,crystalCap:b.crystalCap,pulsePower:b.pulsePower,offlineEff:b.offlineEff,insightMult:b.insightMult,contactRateMult:b.contactRateMult,autoDecode:b.autoDecode,decodeStepsBonus:b.decodeStepsBonus}}function ba(a,b){return{dailyJustCompleted:!1,timedJustCompleted:!1,weeklyJustCompleted:!1,newChainMilestones:[]}}function bb(a){let b=[];for(let c of M)!a.fragments[c.id]&&a.totalDecoded>=c.threshold&&(a.fragments[c.id]=!0,b.push(c.id));return b}let bc=(e?C(e):C)((f=(a,b)=>({...ax(),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_achievementQueue:[],_tideEvents:[],globalTide:null,init:()=>{let c=b(),d=Date.now(),e=c.activePuzzle;if(e&&!aA(e)){let b={id:`c_${d}_rec`,tier:e.tier,value:G[e.tier].crystals,createdAt:d};e=null,a({pendingCrystals:[...c.pendingCrystals,b].slice(-6)})}let f=c.achievements??{},g=c.activeTide??null,h=c.constellation??[],i=c.pendingPerkChoices??null,j={chronicle:Array.isArray(c.chronicle)?c.chronicle:[],runStart:c.runStart||{timestamp:c.createdAt||Date.now(),techsUnlocked:Object.keys(c.tech||{}).length,expeditionsCompleted:c.totalExpeditions||0,bossKills:c.bossKills||0,starTidesEncountered:[...c.starTidesEncountered||[]],crystalsDecoded:c.totalDecoded||0},bossKills:"number"==typeof c.bossKills?c.bossKills:0,starTidesEncountered:Array.isArray(c.starTidesEncountered)?c.starTidesEncountered:[]},k=as(c),l=$(h),m=F.energyMax+l.energyMaxBonus,n=c.lastTideEnd??0,o=g&&g.endsAt>d?g:null,p=Math.max(0,(d-c.lastTick)/1e3);if(p>5){let b=Math.min(p,28800),g=c.crystalsPerSec*b*c.offlineEff,l=(c.crystals,Math.min(c.crystalCap,c.crystals+g));c.crystalsPerSec,c.offlineEff,c.crystalCap,a({crystals:l,lastTick:d,activePuzzle:e,achievements:f,activeTide:o,lastTideEnd:n,constellation:h,pendingPerkChoices:i,energyMax:m,chronicle:j.chronicle,runStart:j.runStart,bossKills:j.bossKills,starTidesEncountered:j.starTidesEncountered,attributes:k.attributes,attributeProgress:k.attributeProgress,pendingAttrPoints:k.pendingAttrPoints,...a9({tech:c.tech,blueprints:c.blueprints,achievements:f,activeTide:o,constellation:h,attributes:k.attributes})})}else a({lastTick:d,activePuzzle:e,achievements:f,activeTide:o,lastTideEnd:n,constellation:h,pendingPerkChoices:i,energyMax:m,chronicle:j.chronicle,runStart:j.runStart,bossKills:j.bossKills,starTidesEncountered:j.starTidesEncountered,attributes:k.attributes,attributeProgress:k.attributeProgress,pendingAttrPoints:k.pendingAttrPoints,...a9({tech:c.tech,blueprints:c.blueprints,achievements:f,activeTide:o,constellation:h,attributes:k.attributes})})},loadOnline:()=>{let c=b();a({...a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:c.attributes})})},hardReset:()=>{a({...ax(),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_achievementQueue:[],_tideEvents:[],globalTide:null})},tickTide:c=>{let d=b();if(d.globalTide){if(c>=d.globalTide.endsAt){let b=d.globalTide.type,e=0;"silence"===b&&(e=W({type:b,startedAt:d.globalTide.startedAt,endsAt:d.globalTide.endsAt,id:d.globalTide.id}));let f={ended:b,isGlobal:!0};return e>0&&(f.silenceCompensation=e),a({globalTide:null,activeTide:null,lastTideEnd:c,insights:d.insights+e,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:null,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,f]}),f}return null}let e=d.activeTide,f=$(d.constellation??[]),g=Math.min(.3,an(d.attributes??{}).tideTriggerBonus),h=Math.max(15e3,(4e4+1e3*f.tideGapDeltaSec)*(1-g));if(e&&c>=e.endsAt){let b=e.type,f=0;"silence"===e.type&&(f=W(e));let g=d.insights+f,h={ended:b};return f>0&&(h.silenceCompensation=f),a({activeTide:null,lastTideEnd:c,insights:g,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:null,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,h]}),h}if(!e&&c-d.lastTideEnd>=(0===d.lastTideEnd||d.lastTideEnd<=d.createdAt+1e3?3e4:h)){let b=function(a=Math.random){let b=Object.values(U).reduce((a,b)=>a+b,0),c=a()*b;for(let a of Object.keys(U))if((c-=U[a])<=0)return a;return"crystal"}(),e={id:`tide_${c}_${Math.random().toString(36).slice(2,7)}`,type:b,startedAt:c,endsAt:c+75e3},f={started:b},g=d.starTidesEncountered??[],h=`tide_${b}`;return a({activeTide:e,starTidesEncountered:g.includes(h)?g:[...g,h],...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:e,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,f]}),f}return null},consumeTideEvents:()=>{let c=b();if(0===c._tideEvents.length)return[];let d=c._tideEvents;return a({_tideEvents:[]}),d},triggerGlobalTide:c=>{let d=b(),e=Date.now(),f=`global_tide_${e}_${Math.random().toString(36).slice(2,7)}`,g={id:f,type:c,startedAt:e,endsAt:e+6e4},h=d.starTidesEncountered??[],i=`tide_${c}`;a({globalTide:{type:c,startedAt:e,endsAt:e+6e4,id:f},activeTide:g,starTidesEncountered:h.includes(i)?h:[...h,i],...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:g,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,{started:c,isGlobal:!0}]})},tick:c=>{let d=b(),e=Math.max(0,(c-d.lastTick)/1e3);if(e<=0)return;let f=V(d.activeTide),g=d.crystalsPerSec*f.crystalsPerSecMult,h=d.crystals>=d.crystalCap?d.crystals:Math.min(d.crystalCap,d.crystals+g*e),i=1+.03*d.blueprints.length,j=d.pendingCrystals,k=d._lastSpawn;if(c-k>8/i*1e3&&j.length<6){let a=function(a,b=Math.random){if(a<=0)return function(a=Math.random){let b=a();return b<.7?1:b<.95?2:3}(b);let c=b(),d=Math.min(.5,a),e=.7-.7*d;return c<e?1:c<e+(.25+.25*d*.7)?2:3}($(d.constellation??[]).t2t3BonusRate);j=[...j,{id:`c_${c}_${Math.random().toString(36).slice(2,7)}`,tier:a,value:G[a].crystals,createdAt:c}],k=c}let l=d.energy,m=d.lastEnergyTick;if(l<d.energyMax){let a=aF(d),b=function(a,b,c,d,e=20){let f=1e3*e,g=Math.floor((b-a)/f);return g<=0?{energy:c,lastTick:a}:{energy:Math.min(d,c+g),lastTick:a+g*f}}(m,c,l,d.energyMax,a);l=b.energy,m=b.lastTick}else m=c;a({crystals:h,lastTick:c,pendingCrystals:j,_lastSpawn:k,energy:l,lastEnergyTick:m})},pulse:()=>{let c=b(),d=Date.now(),e=1;d-c._lastPulse<1500&&(e=Math.min(10,c._combo+1));let f=1+(e-1)*.15,g=V(c.activeTide),h=1+an(c.attributes??{}).pulseComboBonus*Math.max(0,e-1),i=c.pulsePower*f*g.pulsePowerMult*h;if(a({crystals:Math.min(c.crystalCap,c.crystals+i),_combo:e,_lastPulse:d}),ba("pulse",1),e>=3){let b=1+Math.floor(e/2),d=ap({exp:(c.attributeProgress?.inspiration??{exp:0,level:c.attributes?.inspiration??0}).exp+b,level:c.attributes?.inspiration??0},100),f={...c.attributes??ar(),inspiration:d.newProgress.level};a({attributes:f,attributeProgress:{...c.attributeProgress??aq(),inspiration:d.newProgress},...a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:f})})}return{gain:i,combo:e}},startDecode:c=>{let d=b(),e=d.pendingCrystals.find(a=>a.id===c);if(!e)return;let f=V(d.activeTide).targetLenBonus??0;a({activePuzzle:az(e.tier,void 0,f),pendingCrystals:d.pendingCrystals.filter(a=>a.id!==c)})},clickNode:c=>{let d=b();if(!d.activePuzzle)return{ok:!1,finished:!1,failReason:"无活跃谜题"};let e=JSON.parse(JSON.stringify(d.activePuzzle)),f=function(a,b){let c=a.grid.find(a=>a.id===b);if(!c)return{ok:!1,finished:!1,failReason:"无效节点"};if(c.used)return{ok:!1,finished:!1,failReason:"节点已使用"};let d=a.path.length;if(c.color!==a.target[d])return{ok:!1,finished:!1,failReason:"谐振不匹配"};if(d>0){var e;if(e=a.grid.find(b=>b.id===a.path[d-1]),Math.abs(e.row-c.row)+Math.abs(e.col-c.col)!==1)return{ok:!1,finished:!1,failReason:"节点不相邻"}}return d>=a.stepLimit?{ok:!1,finished:!1,failReason:"步数耗尽"}:(c.used=!0,a.path.push(b),{ok:!0,finished:a.path.length>=a.target.length})}(e,c);if(f.ok){if(f.finished){let b=V(d.activeTide),c=$(d.constellation??[]),f=ay(e.tier,d.insightMult,d.contactRateMult),g=b.decodeRewardMult*c.decodeRewardMult,h={crystals:Math.round(f.crystals*g),insights:Math.round(f.insights*g),contact:+(f.contact*g).toFixed(2)},i=d.totalDecoded+1,j=Math.min(100,d.contact+h.contact),k=d.insights+h.insights,l=d.crystals+h.crystals,m={...d,totalDecoded:i,fragments:{...d.fragments}},n=bb(m),o=2*e.tier,p=d.attributes??ar(),q=d.attributeProgress??aq(),r=ap({exp:(q.wisdom??{exp:0,level:p.wisdom}).exp+o,level:p.wisdom},100),s={...p,wisdom:r.newProgress.level},t={...q,wisdom:r.newProgress};return a({activePuzzle:null,crystals:l,insights:k,contact:j,totalDecoded:i,fragments:m.fragments,attributes:s,attributeProgress:t,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:d.constellation,attributes:s})}),ba("decode",1),ba("insight",h.insights),{ok:!0,finished:!0,failReason:n.join(",")||void 0}}let b=aA(e);return a({activePuzzle:e}),{ok:!0,finished:!1,solvable:b}}return f},undoStep:()=>{let c=b();if(!c.activePuzzle||0===c.activePuzzle.path.length)return;let d=JSON.parse(JSON.stringify(c.activePuzzle)),e=d.path.pop();if(void 0!==e){let a=d.grid.find(a=>a.id===e);a&&(a.used=!1)}a({activePuzzle:d})},retryPuzzle:()=>{let c=b();if(c.activePuzzle){var d;a({activePuzzle:az((d=c.activePuzzle).tier,d.seed+1)})}},abandonPuzzle:()=>{let c=b();if(!c.activePuzzle)return;let d={id:`c_${Date.now()}_ret`,tier:c.activePuzzle.tier,value:G[c.activePuzzle.tier].crystals,createdAt:Date.now()};a({activePuzzle:null,pendingCrystals:[...c.pendingCrystals,d].slice(-6)})},autoDecodeTick:()=>{let c=b();if(!c.autoDecode)return;let d=Date.now(),e=$(c.constellation??[]),f=an(c.attributes??{}),g=12e3+1e3*e.autoDecodeIntervalDeltaSec,h=V(c.activeTide).autoDecodeIntervalMult??1,i=Math.max(5e3,g*f.autoDecodeIntervalMult*h);if(d-c._lastAutoDecode<i)return;let j=1,k=c.pendingCrystals.findIndex(a=>1===a.tier);if(k<0&&c.tech?.dec_5&&(k=c.pendingCrystals.findIndex(a=>2===a.tier),j=2),k<0)return;let l=c.pendingCrystals[k],m=V(c.activeTide),n=ay(j,c.insightMult,c.contactRateMult),o=m.decodeRewardMult*e.decodeRewardMult,p={crystals:Math.round(n.crystals*o),insights:Math.round(n.insights*o),contact:+(n.contact*o).toFixed(2)},q=c.totalDecoded+1,r={...c,totalDecoded:q,fragments:{...c.fragments}};bb(r);let s=c.attributes??ar(),t=c.attributeProgress??aq(),u=ap({exp:(t.wisdom??{exp:0,level:s.wisdom}).exp+1,level:s.wisdom},100),v={...s,wisdom:u.newProgress.level},w={...t,wisdom:u.newProgress};a({pendingCrystals:c.pendingCrystals.filter(a=>a.id!==l.id),crystals:c.crystals+p.crystals,insights:c.insights+p.insights,contact:Math.min(100,c.contact+p.contact),totalDecoded:q,fragments:r.fragments,_lastAutoDecode:d,attributes:v,attributeProgress:w,...a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:v})}),ba("decode",1),ba("insight",p.insights)},buyTech:c=>{let d=b(),e=K.find(a=>a.id===c);if(!e||(d.tech[c]??0)>=1||d.insights<e.cost)return!1;let f={...d.tech,[c]:1};return a({insights:d.insights-e.cost,tech:f,...a9({tech:f,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:d.constellation,attributes:d.attributes})}),!0},startExpedition:()=>{let c,d,e,f,g=b();if(g.activeExpedition&&!g.activeExpedition.finished)return{ok:!1,reason:"已有进行中的探险"};if(g.energy<1)return{ok:!1,reason:"能量不足"};let h=V(g.activeTide),i=an(g.attributes??{}),j=(c=10,d=g.tech?.exp_1??0,e=g.tech?.exp_2??0,f=g.tech?.exp_3??0,c+=3*d+5*e+8*f+12*(g.tech?.exp_4??0)+25*(g.tech?.exp_5??0),Math.round(c*=(1+(g.blueprints?.length??0)*.08)*(1+(g.ascensions??0)*.15)*$(g.constellation??[]).expeditionPowerMult)+h.expeditionPowerBonus),k=Math.round((100+(g.tech?.exp_2??0)*20+(g.tech?.exp_4??0)*30+(g.tech?.exp_5??0)*50+(g.ascensions??0)*10)*$(g.constellation??[]).expeditionHpMult)+h.expeditionHpBonus;return a({activeExpedition:function(a,b,c){let d,e=(d=a>>>0,()=>{d|=0;let a=Math.imul((d=d+0x6d2b79f5|0)^d>>>15,1|d);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}),f=5+Math.floor(3*e()),g=[];for(let a=0;a<f;a++){let b=a===f-1,c=b?"boss":function(a){let b=Object.keys(aB),c=b.reduce((a,b)=>a+aB[b],0),d=a()*c;for(let a of b)if((d-=aB[a])<=0)return a;return"combat"}(e),d=aC[c],h=Math.floor(e()*d.titles.length);g.push({id:a,type:c,title:d.titles[h],desc:d.descs[h],cleared:!1,difficulty:b?3+Math.floor(3*e()):1+Math.floor(4*e()),position:a})}if("combat"===g[0].type||"boss"===g[0].type){g[0].type=.5>e()?"treasure":"rest";let a=aC[g[0].type];g[0].title=a.titles[0],g[0].desc=a.descs[0],g[0].difficulty=1}return{id:`exp_${a}_${Date.now()}`,nodes:g,currentNode:0,finished:!1,rewards:{crystals:0,insights:0,contact:0,fragments:[]},power:b,hp:c,maxHp:c,seed:a,startedAt:Date.now()}}(Math.floor(1e9*Math.random()),Math.round(j*i.expeditionPowerMult),k+i.expeditionHpBonus),energy:g.energy-1,totalExpeditions:g.totalExpeditions+1}),{ok:!0}},resolveCurrentNode:()=>{let c=b();if(!c.activeExpedition||c.activeExpedition.finished)return null;let d=JSON.parse(JSON.stringify(c.activeExpedition)),e=d.nodes[d.currentNode],f=e?.type==="boss",g=an(c.attributes??{}),h=V(c.activeTide).bossWinRateBonus??0,i=f?aE(d,()=>{let a=Math.random(),b=Math.min(.95,g.bossWinRateBonus+h);return a<b?0:Math.min(1,a-b)}):aE(d);i.crystals&&(d.rewards.crystals+=i.crystals),i.insights&&(d.rewards.insights+=i.insights),i.contact&&(d.rewards.contact+=i.contact),i.fragments&&d.rewards.fragments.push(...i.fragments),i.hpDelta&&(d.hp=Math.max(0,Math.min(d.maxHp,d.hp+i.hpDelta)));let j=c.crystals+(i.crystals||0),k=c.insights+(i.insights||0),l=Math.min(100,c.contact+(i.contact||0)),m={...c.fragments};if(i.fragments)for(let a of i.fragments)m[a]=!0;let n=[{expeditionId:d.id,nodeType:e?.type||"combat",result:i.log,rewards:[i.crystals?`+${i.crystals}晶体`:"",i.insights?`+${i.insights}洞见`:"",i.contact?`+${i.contact.toFixed(1)}接触`:"",i.hpDelta?`${i.hpDelta>0?"+":""}${i.hpDelta}生命`:""].filter(Boolean).join(" "),timestamp:Date.now()},...c.expeditionLog].slice(0,30);i.ended&&(d.finished=!0);let o=c.lastExpeditionSummary??null;i.ended&&("victory"===i.endReason||"defeat"===i.endReason)&&(o={result:i.endReason,rewards:{...d.rewards},nodeCount:d.nodes.length,finishedAt:Date.now()});let p=c.bossKills??0,q=!1;i.ended&&"victory"===i.endReason&&e?.type==="boss"&&(p+=1,q=!0);let r=c.attributes??ar(),s=c.attributeProgress??aq(),t=!1,u=(e?.type==="combat"||e?.type==="boss")&&!i.ended,v=i.ended&&"victory"===i.endReason;if(u||q||v){let a=q?8:2,b=q?6:v?4:1,c=ap({exp:s.courage.exp+a,level:r.courage},100),d=ap({exp:s.exploration.exp+b,level:r.exploration},100);r={...r,courage:c.newProgress.level,exploration:d.newProgress.level},s={...s,courage:c.newProgress,exploration:d.newProgress},t=!0}return a({activeExpedition:i.ended?null:d,crystals:j,insights:k,contact:l,fragments:m,expeditionLog:n,bossKills:p,attributes:r,attributeProgress:s,lastExpeditionSummary:o,...t?a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:r}):{}}),i.ended&&(ba("expedition",1),q&&ba("boss",1)),i.insights&&ba("insight",i.insights),i},advanceNode:()=>{let c=b();if(!c.activeExpedition||c.activeExpedition.finished)return;let d=JSON.parse(JSON.stringify(c.activeExpedition)),e=d.nodes[d.currentNode];e&&e.cleared&&(d.currentNode>=d.nodes.length-1||(d.currentNode++,a({activeExpedition:d})))},abortExpedition:()=>{let c=b();if(!c.activeExpedition)return;let d=JSON.parse(JSON.stringify(c.activeExpedition)),e={expeditionId:d.id,nodeType:"rest",result:"探险队主动撤退,保留已获奖励。",rewards:"",timestamp:Date.now()},f={result:"abort",rewards:{...d.rewards},nodeCount:d.nodes.length,finishedAt:Date.now()};a({activeExpedition:null,expeditionLog:[e,...c.expeditionLog].slice(0,30),lastExpeditionSummary:f})},dismissExpedition:()=>{let c=b();c.activeExpedition&&c.activeExpedition.finished&&a({activeExpedition:null})},doPrestige:()=>{let c,d,e,f,g,h,i,j,k,l,m,n,o,p,q=b();if(q.contact<100)return null;let r=aw(q),s=(c=aw(q),d=[...q.blueprints,...Array.from({length:c},(a,b)=>`bp_${Date.now()}_${b}`)].slice(0,6),e=_(q.constellation??[]),f=$(q.constellation??[]),g=function(a,b=[]){let c,d,e,f,g,h,i=a.ascensions+1,j=(c=Date.now(),{durationSec:Math.max(1,Math.floor((c-(d=a.runStart).timestamp)/1e3)),techsThisRun:Math.max(0,Object.keys(a.tech||{}).length-d.techsUnlocked),expThisRun:Math.max(0,a.totalExpeditions-d.expeditionsCompleted),bossKillsThisRun:Math.max(0,a.bossKills-d.bossKills),decodedThisRun:Math.max(0,a.totalDecoded-d.crystalsDecoded),newTides:(a.starTidesEncountered||[]).filter(a=>!(d.starTidesEncountered||[]).includes(a))}),k=a.createdAt+7919*i>>>0,l=(e=(i-1)%ae.length,g=k%(f=ae[e]).suffixes.length,`${f.prefix} \xb7 ${f.suffixes[g]}`),m=(h=[],1===a.ascensions+1&&h.push("首次飞升"),j.expThisRun>0&&0===a.runStart.expeditionsCompleted&&h.push("首次完成遗迹探险"),j.bossKillsThisRun>0&&h.push("首杀维度 BOSS"),j.decodedThisRun>=10&&h.push(`单周目解码 ${j.decodedThisRun} 颗`),j.decodedThisRun>=30&&h.push(`单周目解码 ${j.decodedThisRun} 颗`),j.techsThisRun>=5&&h.push("技术狂人"),j.newTides.length>=3&&h.push("星潮亲历者"),(a.constellation?.length||0)>=6&&h.push("星图六分"),(a.constellation?.length||0)>=12&&h.push("星图十二宫"),h),n=Math.min(a.blueprints.length+1,6),o=aj({ascensionNumber:i,epochName:l,durationSec:j.durationSec,techsThisRun:j.techsThisRun,expThisRun:j.expThisRun,bossKillsThisRun:j.bossKillsThisRun,decodedThisRun:j.decodedThisRun,newTides:j.newTides,perksThisAscension:b,blueprintsAfter:n,milestones:m});return{ascensionNumber:i,epochName:l,timestamp:Date.now(),durationSec:j.durationSec,summary:{techsUnlocked:Object.keys(a.tech||{}).length,constellationsTotal:a.constellation?.length||0,expeditionsCompleted:a.totalExpeditions,bossKills:a.bossKills,starTidesEncountered:a.starTidesEncountered?.length||0,blueprintsAfter:n,crystalsDecoded:a.totalDecoded,crystalsDecodedThisRun:j.decodedThisRun,techsThisRun:j.techsThisRun,expeditionsThisRun:j.expThisRun,bossKillsThisRun:j.bossKillsThisRun},perksThisAscension:b,tidesThisRun:j.newTides,lore:o,milestones:m}}(q,[]),h=[...q.chronicle||[],g].slice(-200),i={timestamp:Date.now(),techsUnlocked:Object.keys(q.tech||{}).length,expeditionsCompleted:q.totalExpeditions,bossKills:q.bossKills,starTidesEncountered:[...q.starTidesEncountered||[]],crystalsDecoded:q.totalDecoded},k=(j=as(q)).attributes,l=aq(),m=2*(q.ascensions??0)+1,n=j.pendingAttrPoints+m,o=ax(),p=av({tech:{},blueprints:d,achievements:q.achievements,constellation:q.constellation,attributes:k}),{...o,fragments:q.fragments,totalDecoded:q.totalDecoded,ascensions:q.ascensions+1,blueprints:d,achievements:q.achievements,constellation:q.constellation,pendingPerkChoices:e.length>0?e:null,crystals:f.prestigeStartCrystals,insights:f.prestigeStartInsights,theme:q.theme,soundOn:q.soundOn,createdAt:q.createdAt,lastTick:Date.now(),lastEnergyTick:Date.now(),expeditionLog:q.expeditionLog,totalExpeditions:q.totalExpeditions,bossKills:q.bossKills,starTidesEncountered:q.starTidesEncountered,chronicle:h,runStart:i,activeTide:null,lastTideEnd:Date.now(),attributes:k,attributeProgress:l,pendingAttrPoints:n,...p}),t=$(s.constellation??[]),u=F.energyMax+t.energyMaxBonus;return a({...s,energyMax:u,...a9({tech:s.tech,blueprints:s.blueprints,achievements:s.achievements,activeTide:s.activeTide,constellation:s.constellation,attributes:s.attributes}),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_tideEvents:[]}),{newBp:r}},chooseConstellationPerk:c=>{let d=b();if(!d.pendingPerkChoices||!d.pendingPerkChoices.includes(c)||!Z(c)||d.constellation?.includes(c))return!1;let e=[...d.constellation??[],c],f=$(e),g=F.energyMax+f.energyMaxBonus,h=d.chronicle??[],i=h;if(h.length>0){let a=function(a,b){if(a.perksThisAscension.length===b.length&&a.perksThisAscension.every((a,c)=>a===b[c]))return a;let c=aj({ascensionNumber:a.ascensionNumber,epochName:a.epochName,durationSec:a.durationSec,techsThisRun:a.summary.techsThisRun??a.summary.techsUnlocked,expThisRun:a.summary.expeditionsThisRun??a.summary.expeditionsCompleted,bossKillsThisRun:a.summary.bossKillsThisRun??a.summary.bossKills,decodedThisRun:a.summary.crystalsDecodedThisRun,newTides:a.tidesThisRun||[],perksThisAscension:b,blueprintsAfter:a.summary.blueprintsAfter,milestones:a.milestones||[]});return{...a,perksThisAscension:b,lore:c}}(h[h.length-1],[c]);i=[...h.slice(0,-1),a]}return a({constellation:e,pendingPerkChoices:null,energyMax:g,chronicle:i,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:e,attributes:d.attributes})}),!0},rerollPerkChoices:()=>{let c=b();if(!c.pendingPerkChoices)return;let d=_(c.constellation??[]);d.length>0&&a({pendingPerkChoices:d})},checkAchievements:()=>{let c=b(),d=[],e={...c.achievements},f=c.crystals,g=c.insights,h=c.contact,i=!1;for(let a of R)!e[a.id]&&a.check(c)&&(e[a.id]=!0,d.push(a),a.reward.crystals&&(f+=a.reward.crystals),a.reward.insights&&(g+=a.reward.insights),a.reward.contact&&(h=Math.min(100,h+a.reward.contact)),(a.reward.crystalsPerSecPct||a.reward.insightPct)&&(i=!0));return 0===d.length?[]:(a({achievements:e,crystals:f,insights:g,contact:h,...i?a9({tech:c.tech,blueprints:c.blueprints,achievements:e,activeTide:c.activeTide,constellation:c.constellation,attributes:c.attributes}):{},_achievementQueue:[...c._achievementQueue,...d]}),d)},consumeAchievementQueue:()=>{let c=b();if(0===c._achievementQueue.length)return[];let d=c._achievementQueue;return a({_achievementQueue:[]}),d},canPrestige:()=>b().contact>=100,toggleTheme:()=>a({theme:"dark"===b().theme?"light":"dark"}),toggleSound:()=>a({soundOn:!b().soundOn}),grantBeaconReward:(c,d)=>{let e=b();a({insights:e.insights+Math.round(c),contact:Math.min(100,e.contact+d)})},claimWeeklyBeacon:()=>{let c=function(a,b){var c;if(b.claimed||null===b.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:aO()};let d=aL({...a,dateKey:a.weekKey},b.progress,b.durationSec),e={timestamp:Date.now(),dateKey:a.weekKey,challenge:a.type,difficulty:a.difficulty,progress:b.progress/a.goal,score:d,durationSec:b.durationSec,isWeekly:!0},f=aP(e);return c={...b,claimed:!0},"u">typeof localStorage&&localStorage.setItem(aS,JSON.stringify(c)),{rewardInsight:a.rewardInsight,rewardContact:a.rewardContact,score:d,leaderboard:f,entry:e}}(aU(),aV());if(c.rewardInsight>0||c.rewardContact>0){let d=b();a({insights:d.insights+Math.round(c.rewardInsight),contact:Math.min(100,d.contact+c.rewardContact)}),c.entry&&a8(c.entry)}return{rewardInsight:c.rewardInsight,rewardContact:c.rewardContact,score:c.score}},claimTimedBeacon:()=>{let c=function(a,b){var c;if(b.claimed||null===b.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:aO()};let d=aL({...a,dateKey:a.slotKey},b.progress,b.durationSec),e={timestamp:Date.now(),dateKey:a.slotKey,challenge:a.type,difficulty:a.difficulty,progress:b.progress/a.goal,score:d,durationSec:b.durationSec,isTimed:!0},f=aP(e);return c={...b,claimed:!0},"u">typeof localStorage&&localStorage.setItem(a_,JSON.stringify(c)),{rewardInsight:a.rewardInsight,rewardContact:a.rewardContact,score:d,leaderboard:f,entry:e}}(a2(),a3());if(c.rewardInsight>0||c.rewardContact>0){let d=b();a({insights:d.insights+Math.round(c.rewardInsight),contact:Math.min(100,d.contact+c.rewardContact)}),c.entry&&a8(c.entry)}return{rewardInsight:c.rewardInsight,rewardContact:c.rewardContact,score:c.score}},claimChainReward:c=>{let d=aZ();if(d.currentStreak<c||d.milestonesClaimed.includes(c))return{rewardInsight:0,rewardContact:0,label:"",ok:!1};let e=function(a){let b=aY.find(b=>b.milestone===a),c=aZ();if(!b||c.milestonesClaimed.includes(a)||c.currentStreak<a)return{rewardInsight:0,rewardContact:0,label:"",state:c};let d={...c,milestonesClaimed:[...c.milestonesClaimed,a]};return"u">typeof localStorage&&localStorage.setItem(aW,JSON.stringify(d)),{rewardInsight:b.rewardInsight,rewardContact:b.rewardContact,label:b.label,state:d}}(c);if(e.rewardInsight>0||e.rewardContact>0){let c=b();a({insights:c.insights+Math.round(e.rewardInsight),contact:Math.min(100,c.contact+e.rewardContact)})}return{rewardInsight:e.rewardInsight,rewardContact:e.rewardContact,label:e.label,ok:e.rewardInsight>0||e.rewardContact>0}},grantCruiseReward:c=>{let d=b(),e=c.crystals??0,f=c.insights??0,g=c.contact??0,h=Math.max(2,Math.floor((e+10*f+10*g)/30)),i=d.attributes??ar(),j=d.attributeProgress??aq(),k=ap({exp:j.exploration.exp+h,level:i.exploration},100),l=ap({exp:j.courage.exp+Math.floor(.6*h),level:i.courage},100),m={...i,exploration:k.newProgress.level,courage:l.newProgress.level},n={...j,exploration:k.newProgress,courage:l.newProgress};a({crystals:Math.min(d.crystalCap,d.crystals+e),insights:d.insights+Math.round(f),contact:Math.min(100,d.contact+g),attributes:m,attributeProgress:n,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:d.constellation,attributes:m})})},allocateAttribute:(c,d=1)=>{let e=b(),f=e.attributes??ar(),g=f[c]??0;if(g>=100||(e.pendingAttrPoints??0)<d)return{ok:!1,leveledUp:0};let h=Math.min(d,100-g,e.pendingAttrPoints),i=g+h,j={...f,[c]:i},k=e.attributeProgress??aq(),l=k[c]??{exp:0,level:g};return a({attributes:j,attributeProgress:{...k,[c]:{exp:l.exp,level:i}},pendingAttrPoints:e.pendingAttrPoints-h,...a9({tech:e.tech,blueprints:e.blueprints,achievements:e.achievements,activeTide:e.activeTide,constellation:e.constellation,attributes:j})}),{ok:!0,leveledUp:h}},gainAttributeExp:(c,d)=>{let e=b(),f=e.attributes??ar(),g=e.attributeProgress??aq(),h=ap({exp:(g[c]??{exp:0,level:f[c]}).exp+d,level:f[c]},100),i={...f,[c]:h.newProgress.level};return a({attributes:i,attributeProgress:{...g,[c]:h.newProgress},...a9({tech:e.tech,blueprints:e.blueprints,achievements:e.achievements,activeTide:e.activeTide,constellation:e.constellation,attributes:i})}),{leveledUp:h.levelsGained,newLevel:h.newProgress.level}}}),g={name:"echo-nexus-save-v1",version:2,storage:D(()=>localStorage),migrate:(a,b)=>{let c=a||{},d=ax(),e={...d,...c,bossKills:c.bossKills??0,starTidesEncountered:c.starTidesEncountered??[],chronicle:c.chronicle??[],runStart:c.runStart??Date.now(),attributes:c.attributes??d.attributes,attributeProgress:c.attributeProgress??d.attributeProgress,pendingAttrPoints:c.pendingAttrPoints??0,activeExpedition:c.activeExpedition??null,totalExpeditions:c.totalExpeditions??0,lastExpeditionSummary:c.lastExpeditionSummary??null,constellation:c.constellation??[],pendingPerkChoices:c.pendingPerkChoices??[],tech:c.tech??{},fragments:c.fragments??{},achievements:c.achievements??{}};if(e.activePuzzle&&"object"==typeof e.activePuzzle){let a=e.activePuzzle;a.nodes&&Array.isArray(a.nodes)&&0!==a.nodes.length||(e.activePuzzle=null)}return e},partialize:a=>{let{_lastAutoDecode:b,_lastSpawn:c,_combo:d,_lastPulse:e,_achievementQueue:f,_tideEvents:g,globalTide:h,...i}=a;return i}},(a,b,c)=>{let d,e={storage:D(()=>localStorage),partialize:a=>a,version:0,merge:(a,b)=>({...b,...a}),...g},h=!1,i=0,j=new Set,k=new Set,l=e.storage;if(!l)return f((...b)=>{console.warn(`[zustand persist middleware] Unable to update item '${e.name}', the given storage is currently unavailable.`),a(...b)},b,c);let m=()=>{let a=e.partialize({...b()});return l.setItem(e.name,{state:a,version:e.version})},n=c.setState;c.setState=(a,b)=>(n(a,b),m());let o=f((...b)=>(a(...b),m()),b,c);c.getInitialState=()=>o;let p=()=>{var c,f;if(!l)return;let g=++i;h=!1,j.forEach(a=>{var c;return a(null!=(c=b())?c:o)});let n=(null==(f=e.onRehydrateStorage)?void 0:f.call(e,null!=(c=b())?c:o))||void 0;return E(l.getItem.bind(l))(e.name).then(a=>{if(a)if("number"!=typeof a.version||a.version===e.version)return[!1,a.state];else{if(e.migrate){let b=e.migrate(a.state,a.version);return b instanceof Promise?b.then(a=>[!0,a]):[!0,b]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(c=>{var f;if(g!==i)return;let[h,j]=c;if(a(d=e.merge(j,null!=(f=b())?f:o),!0),h)return m()}).then(()=>{g===i&&(null==n||n(d,void 0),d=b(),h=!0,k.forEach(a=>a(d)))}).catch(a=>{g===i&&(null==n||n(void 0,a))})};return c.persist={setOptions:a=>{e={...e,...a},a.storage&&(l=a.storage)},clearStorage:()=>{null==l||l.removeItem(e.name)},getOptions:()=>e,rehydrate:()=>p(),hasHydrated:()=>h,onHydrate:a=>(j.add(a),()=>{j.delete(a)}),onFinishHydration:a=>(k.add(a),()=>{k.delete(a)})},e.skipHydration||p(),d||o}));var bd=a.i(70106);let be=(0,bd.default)("gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]),bf=(0,bd.default)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),bg=(0,bd.default)("waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]),bh=(0,bd.default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);a.i(35112);var bi=a.i(70121),bj=Symbol.for("react.lazy"),bk=z[" use ".trim().toString()];function bl(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===bj&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}function bm(a){var b;let c,d=(b=a,(c=z.forwardRef((a,b)=>{let{children:c,...d}=a;if(bl(c)&&"function"==typeof bk&&(c=bk(c._payload)),z.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==z.Fragment&&(h.ref=b?(0,bi.composeRefs)(b,g):g),z.cloneElement(c,h)}return z.Children.count(c)>1?z.Children.only(null):null})).displayName=`${b}.SlotClone`,c),e=z.forwardRef((a,b)=>{let{children:c,...e}=a;bl(c)&&"function"==typeof bk&&(c=bk(c._payload));let f=z.Children.toArray(c),g=f.find(bp);if(g){let a=g.props.children,c=f.map(b=>b!==g?b:z.Children.count(a)>1?z.Children.only(null):z.isValidElement(a)?a.props.children:null);return(0,y.jsx)(d,{...e,ref:b,children:z.isValidElement(a)?z.cloneElement(a,void 0,c):null})}return(0,y.jsx)(d,{...e,ref:b,children:c})});return e.displayName=`${a}.Slot`,e}var bn=bm("Slot"),bo=Symbol("radix.slottable");function bp(a){return z.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===bo}var bq=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=bm(`Primitive.${b}`),d=z.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,y.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{}),br="Progress",[bs,bt]=function(a,b=[]){let c=[],d=()=>{let b=c.map(a=>z.createContext(a));return function(c){let d=c?.[a]||b;return z.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let e=z.createContext(d);e.displayName=b+"Context";let f=c.length;c=[...c,d];let g=b=>{let{scope:c,children:d,...g}=b,h=c?.[a]?.[f]||e,i=z.useMemo(()=>g,Object.values(g));return(0,y.jsx)(h.Provider,{value:i,children:d})};return g.displayName=b+"Provider",[g,function(c,g){let h=g?.[a]?.[f]||e,i=z.useContext(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return z.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}(br),[bu,bv]=bs(br),bw=z.forwardRef((a,b)=>{var c,d;let{__scopeProgress:e,value:f=null,max:g,getValueLabel:h=bz,...i}=a;(g||0===g)&&!bC(g)&&console.error((c=`${g}`,`Invalid prop \`max\` of value \`${c}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let j=bC(g)?g:100;null===f||bD(f,j)||console.error((d=`${f}`,`Invalid prop \`value\` of value \`${d}\` supplied to \`Progress\`. The \`value\` prop must be:
- a positive number
- less than the value passed to \`max\` (or 100 if no \`max\` prop is set)
- \`null\` or \`undefined\` if the progress is indeterminate.
Defaulting to \`null\`.`));let k=bD(f,j)?f:null,l=bB(k)?h(k,j):void 0;return(0,y.jsx)(bu,{scope:e,value:k,max:j,children:(0,y.jsx)(bq.div,{"aria-valuemax":j,"aria-valuemin":0,"aria-valuenow":bB(k)?k:void 0,"aria-valuetext":l,role:"progressbar","data-state":bA(k,j),"data-value":k??void 0,"data-max":j,...i,ref:b})})});bw.displayName=br;var bx="ProgressIndicator",by=z.forwardRef((a,b)=>{let{__scopeProgress:c,...d}=a,e=bv(bx,c);return(0,y.jsx)(bq.div,{"data-state":bA(e.value,e.max),"data-value":e.value??void 0,"data-max":e.max,...d,ref:b})});function bz(a,b){return`${Math.round(a/b*100)}%`}function bA(a,b){return null==a?"indeterminate":a===b?"complete":"loading"}function bB(a){return"number"==typeof a}function bC(a){return bB(a)&&!isNaN(a)&&a>0}function bD(a,b){return bB(a)&&!isNaN(a)&&a<=b&&a>=0}by.displayName=bx;var bE=a.i(68114);function bF({className:a,value:b,...c}){return(0,y.jsx)(bw,{"data-slot":"progress",className:(0,bE.cn)("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",a),...c,children:(0,y.jsx)(by,{"data-slot":"progress-indicator",className:"bg-primary h-full w-full flex-1 transition-all",style:{transform:`translateX(-${100-(b||0)}%)`}})})}function bG({onPrestige:a}){let b=bc(a=>a.crystals),c=bc(a=>a.crystalsPerSec),d=bc(a=>a.insights),e=bc(a=>a.contact),f=bc(a=>a.ascensions),g=bc(a=>a.blueprints);return(0,y.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2 sm:gap-x-4 px-3.5 py-2.5 rounded-2xl border border-white/10 bg-black/40 backdrop-blur-md",children:[(0,y.jsx)(bH,{icon:(0,y.jsx)(be,{className:"h-4 w-4 text-emerald-400"}),label:"记忆晶体",value:Q(b),sub:`+${c.toFixed(1)}/s`,glow:"rgba(52,211,153,0.4)"}),(0,y.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,y.jsx)(bH,{icon:(0,y.jsx)(bf,{className:"h-4 w-4 text-amber-400"}),label:"技术洞见",value:Q(d),sub:"解码产出",glow:"rgba(251,191,36,0.4)"}),(0,y.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,y.jsxs)("div",{className:"flex-1 min-w-[200px] flex flex-col gap-1.5",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2",children:[(0,y.jsx)(bg,{className:"h-4 w-4 text-fuchsia-400 shrink-0"}),(0,y.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:"接触进度"}),(0,y.jsxs)("span",{className:"text-xs font-mono font-semibold text-fuchsia-300 ml-auto tabular-nums",children:[e.toFixed(1),"%"]}),e>=100&&(0,y.jsx)("button",{onClick:a,className:"text-[10px] px-2 py-0.5 rounded-full bg-fuchsia-500/20 border border-fuchsia-400/50 text-fuchsia-200 hover:bg-fuchsia-500/30 transition animate-pulse whitespace-nowrap ml-1",children:"飞升"})]}),(0,y.jsx)(bF,{value:e,className:"h-1.5 bg-white/10 [&>div]:bg-gradient-to-r [&>div]:from-fuchsia-500 [&>div]:to-rose-400"})]}),(0,y.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,y.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,y.jsx)(bh,{className:"h-4 w-4 text-rose-400 shrink-0"}),(0,y.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,y.jsx)("span",{className:"text-[10px] text-muted-foreground leading-none",children:"飞升"}),(0,y.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,y.jsx)("span",{className:"text-sm font-mono font-semibold leading-none",children:f}),(0,y.jsxs)("span",{className:"text-amber-300 text-xs leading-none",children:["×",g.length]})]})]})]})]})}function bH({icon:a,label:b,value:c,sub:d,glow:e}){return(0,y.jsxs)("div",{className:"flex items-center gap-2.5",style:{filter:`drop-shadow(0 0 6px ${e})`},children:[a,(0,y.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,y.jsx)("span",{className:"text-[10px] text-muted-foreground leading-none",children:b}),(0,y.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,y.jsx)("span",{className:"text-sm font-mono font-semibold leading-none tabular-nums",children:c}),(0,y.jsx)("span",{className:"text-[10px] text-muted-foreground/80 whitespace-nowrap",children:d})]})]})]})}var bI=a.i(31626),bJ=a.i(54614);let bK={emerald:523.25,rose:587.33,amber:659.25,fuchsia:698.46};class bL{ctx=null;master=null;enabled=!0;volume=.35;ensure(){return null}setEnabled(a){this.enabled=a}setVolume(a){this.volume=Math.max(0,Math.min(1,a)),this.master&&(this.master.gain.value=this.volume)}tone(a,b,c="sine",d=.3,e=0,f=0,g){let h=this.ensure();if(!h||!this.master)return;let i=h.currentTime+e,j=h.createOscillator(),k=h.createGain();if(j.type=c,j.frequency.setValueAtTime(a,i),f&&j.detune.setValueAtTime(f,i),k.gain.setValueAtTime(0,i),k.gain.linearRampToValueAtTime(d,i+.008),k.gain.exponentialRampToValueAtTime(1e-4,i+b),g){let a=h.createBiquadFilter();a.type="lowpass",a.frequency.value=g,j.connect(a),a.connect(k)}else j.connect(k);k.connect(this.master),j.start(i),j.stop(i+b+.05)}sweep(a,b,c,d="sine",e=.3,f=0){let g=this.ensure();if(!g||!this.master)return;let h=g.currentTime+f,i=g.createOscillator(),j=g.createGain();i.type=d,i.frequency.setValueAtTime(a,h),i.frequency.exponentialRampToValueAtTime(Math.max(1,b),h+c),j.gain.setValueAtTime(0,h),j.gain.linearRampToValueAtTime(e,h+.02),j.gain.exponentialRampToValueAtTime(1e-4,h+c),i.connect(j),j.connect(this.master),i.start(h),i.stop(h+c+.05)}noise(a,b=.2,c=0,d=1200){let e=this.ensure();if(!e||!this.master)return;let f=e.currentTime+c,g=Math.floor(e.sampleRate*a),h=e.createBuffer(1,g,e.sampleRate),i=h.getChannelData(0);for(let a=0;a<g;a++)i[a]=(2*Math.random()-1)*(1-a/g);let j=e.createBufferSource();j.buffer=h;let k=e.createBiquadFilter();k.type="lowpass",k.frequency.value=d;let l=e.createGain();l.gain.setValueAtTime(b,f),l.gain.exponentialRampToValueAtTime(1e-4,f+a),j.connect(k),k.connect(l),l.connect(this.master),j.start(f),j.stop(f+a+.02)}play(a,b){if(this.enabled&&this.ensure())switch(a){case"pulse":{let a=220+(b?.combo?18*b.combo:0);this.tone(a,.18,"sine",.28),this.tone(2*a,.14,"triangle",.1,.01);break}case"pulseCombo":{let a=440+(b?.combo?24*b.combo:0);this.tone(a,.2,"sine",.3),this.tone(1.5*a,.18,"triangle",.14,.01),this.tone(2*a,.16,"sine",.08,.02);break}case"decodeClick":{let a=b?.color?bK[b.color]??523:523;this.tone(a,.16,"sine",.26),this.tone(2*a,.1,"triangle",.08,.005);break}case"decodeFail":this.tone(160,.16,"sawtooth",.18,0,0,800),this.noise(.08,.1,0,600);break;case"decodeSuccess":this.tone(523.25,.22,"sine",.24,0),this.tone(659.25,.22,"sine",.22,.08),this.tone(783.99,.3,"sine",.24,.16),this.tone(1046.5,.34,"triangle",.12,.2);break;case"fragmentUnlock":this.tone(880,.7,"sine",.18,0),this.tone(1108.73,.7,"sine",.12,.04),this.tone(1318.51,.8,"triangle",.08,.1),this.sweep(440,880,.6,"sine",.1,.05);break;case"techBuy":this.tone(587.33,.12,"sine",.22),this.tone(880,.16,"triangle",.16,.06);break;case"expeditionStart":this.sweep(80,240,.5,"sawtooth",.16),this.sweep(120,360,.5,"square",.06,.02),this.noise(.4,.08,0,400);break;case"expeditionNode":this.tone(440,.14,"triangle",.2),this.tone(660,.12,"sine",.1,.04);break;case"expeditionVictory":this.tone(523.25,.18,"sine",.24,0),this.tone(659.25,.18,"sine",.24,.1),this.tone(783.99,.18,"sine",.24,.2),this.tone(1046.5,.4,"triangle",.2,.3);break;case"expeditionDefeat":this.tone(330,.3,"sawtooth",.2,0,0,700),this.tone(220,.4,"sine",.18,.12),this.tone(146.83,.5,"sine",.16,.24);break;case"prestige":this.sweep(110,880,1.2,"sine",.2),this.sweep(220,1760,1.2,"triangle",.1,.05),this.tone(523.25,.6,"sine",.16,.3),this.tone(659.25,.6,"sine",.16,.42),this.tone(783.99,.8,"sine",.16,.54),this.tone(1046.5,1,"triangle",.12,.66);break;case"achievement":this.tone(659.25,.16,"sine",.22,0),this.tone(880,.16,"sine",.22,.08),this.tone(1046.5,.16,"sine",.22,.16),this.tone(1318.51,.4,"triangle",.18,.24);break;case"tideStart":this.sweep(330,660,.8,"sine",.16),this.sweep(440,880,.8,"triangle",.08,.04),this.tone(523.25,.5,"sine",.1,.2),this.tone(783.99,.6,"sine",.08,.3);break;case"tideEnd":this.tone(659.25,.3,"sine",.14,0),this.tone(523.25,.35,"sine",.12,.1),this.tone(392,.5,"triangle",.1,.22);break;case"constellation":this.tone(523.25,.18,"sine",.16,0),this.tone(659.25,.2,"sine",.16,.08),this.tone(783.99,.22,"sine",.18,.16),this.tone(1046.5,.35,"triangle",.16,.24),this.tone(2093,.15,"sine",.08,.3);break;case"uiHover":this.tone(880,.05,"sine",.05);break;case"uiClick":this.tone(660,.07,"sine",.1);break;case"chronicle":this.tone(196,.6,"sine",.18,0),this.tone(261.63,.55,"sine",.14,.05),this.tone(392,.5,"sine",.1,.1),this.tone(523.25,.4,"triangle",.08,.18),this.tone(783.99,.3,"sine",.05,.25);break;case"chronicleOpen":this.tone(440,.08,"sine",.06,0),this.tone(587.33,.1,"sine",.05,.04),this.tone(880,.06,"triangle",.04,.1)}}}let bM=null;function bN(){return bM||(bM=new bL),bM}function bO(a,b){bN().play(a,b)}let bP=["晶核深处传来一阵微弱的震颤…","以太族的余响在谐振中回荡。","你听见了一句无法辨认的低语。","星海的寂静被你的脉冲短暂打破。","晶体表面的纹路闪烁,像是某种回应。","回响核心记录着每一次触碰。","虚空深处,有什么在倾听。","谐振频率与你的脉冲产生了共鸣。","这是以太族留下的第一道印记。","晶体内部的光,比星辰更古老。","你的脉冲唤醒了一段沉睡的频率。","维度薄膜因你的触碰而微微颤动。","采矿不是掠夺,是聆听。","每一颗晶体,都是一封跨越时间的信。","以太族信任你,所以留下了这些。"],bQ={mining:"以太族从不掠夺星海,他们与矿脉共振,让晶体自愿献出光芒。",decoding:"谐振法则是以太族的核心遗产——思维可被编码为共振序列。",expedition:"他们留下的遗迹不是废墟,是故意设置的试炼场。",narrative:"记忆校音,是以太族赋予后来者的第一项礼物。"};function bR(a,b){if(Math.random()<b){if(0===a.length)return"";let b=Math.floor(Math.random()*a.length);return a[b]}return null}let bS="#34d399",bT="#e879f9",bU="#fb7185",bV="#fbbf24";function bW(a){return a>=5?bV:a>=3?bT:bS}function bX(){let a=bc(a=>a.pulse),b=bc(a=>a.crystals),c=bc(a=>a.crystalsPerSec),d=bc(a=>a.crystalCap),e=bc(a=>a._combo),{toast:f}=(0,bJ.useToast)(),[g,h]=(0,z.useState)([]),i=(0,z.useRef)(0),j=(0,z.useRef)(null),k=(0,z.useRef)(null);(0,z.useRef)(0);let[l,m]=(0,z.useState)(0),n=(0,z.useRef)([]),o=(0,z.useRef)([]),p=(0,z.useRef)([]),q=(0,z.useRef)([]),r=(0,z.useRef)(e),s=(0,z.useRef)(0),t=(0,z.useRef)(b),u=(0,z.useRef)(d);(0,z.useEffect)(()=>{r.current=e,t.current=b,u.current=d},[e,b,d]);let v=(0,z.useRef)({x:0,y:0,inside:!1}),w=(0,z.useCallback)((a,b)=>{let c=.28*Math.min(a,b),d=[];[{count:14,rMul:.95,speed:.6,color:bS},{count:10,rMul:1.15,speed:-.4,color:bT},{count:8,rMul:1.35,speed:.3,color:bU}].forEach(a=>{for(let b=0;b<a.count;b++)d.push({angle:2*Math.PI*b/a.count+.3*Math.random(),radius:c*a.rMul,baseRadius:c*a.rMul,speed:a.speed*(.8+.4*Math.random()),size:1.5+2*Math.random(),color:a.color,alpha:.5+.4*Math.random(),phase:Math.random()*Math.PI*2})}),n.current=d;let e=[];for(let c=0;c<40;c++)e.push({x:Math.random()*a,y:Math.random()*b,vx:(Math.random()-.5)*8,vy:(Math.random()-.5)*8,size:.5+1.5*Math.random(),alpha:.2+.5*Math.random(),twinkle:Math.random()*Math.PI*2});o.current=e},[]),x=(0,z.useCallback)((a,b,c)=>{let d=bW(c.combo),e=performance.now();p.current.push({born:e,color:bS,maxRadius:140,duration:700}),c.combo>=3&&p.current.push({born:e+100,color:bT,maxRadius:170,duration:800}),c.combo>=5&&p.current.push({born:e+200,color:bV,maxRadius:200,duration:900});let f=10+2*Math.min(10,c.combo);for(let c=0;c<f;c++){let g=2*Math.PI*c/f+.4*Math.random(),h=120+180*Math.random();q.current.push({x:a,y:b,vx:Math.cos(g)*h,vy:Math.sin(g)*h,size:2+3*Math.random(),color:d,born:e,life:600+300*Math.random()})}n.current.forEach(a=>{a.radius=a.baseRadius*(1.25+.15*Math.random())})},[]),A=(0,z.useCallback)(b=>{let c=a();if(!c)return;let d=b.currentTarget.getBoundingClientRect(),e=b.clientX-d.left,g=b.clientY-d.top,j=i.current++,k=bW(c.combo);if(h(a=>[...a,{id:j,x:e,y:g,text:`+${c.gain.toFixed(1)}`,born:Date.now(),color:k}]),x(e,g,c),m(a=>a+1),bO(c.combo>=3?"pulseCombo":"pulse",{combo:c.combo}),setTimeout(()=>{h(a=>a.filter(a=>a.id!==j))},900),c.combo>=5&&c.combo%5==0){let a=bR(bP,.6);f({title:`\xd7${c.combo} 连击!`,description:a?`「${a}」`:"谐振叠加,产能飙升。"})}else if(c.combo>=3&&c.combo%3==0){let a=bR(bP,.3);a&&f({title:"低语",description:`「${a}」`})}},[a,f,x]);(0,z.useEffect)(()=>{let a=j.current,b=k.current;if(!a||!b)return;let c=a.getContext("2d");if(!c)return;let d=0,e=performance.now(),f=Math.min(window.devicePixelRatio||1,2),g=()=>{let d=b.getBoundingClientRect();f=Math.min(window.devicePixelRatio||1,2),a.width=Math.max(1,Math.floor(d.width*f)),a.height=Math.max(1,Math.floor(d.height*f)),a.style.width=`${d.width}px`,a.style.height=`${d.height}px`,c.setTransform(f,0,0,f,0,0),w(d.width,d.height)};g();let h=new ResizeObserver(g);h.observe(b);let i=b=>{let g=Math.min(.05,(b-e)/1e3);e=b;let h=a.width/f,j=a.height/f,k=h/2,l=j/2,m=.28*Math.min(h,j);c.clearRect(0,0,h,j),o.current.forEach(a=>{a.x+=a.vx*g,a.y+=a.vy*g,a.twinkle+=2*g,a.x<0&&(a.x=h),a.x>h&&(a.x=0),a.y<0&&(a.y=j),a.y>j&&(a.y=0);let b=.5+.5*Math.sin(a.twinkle);c.globalAlpha=a.alpha*b,c.fillStyle="#ffffff",c.beginPath(),c.arc(a.x,a.y,a.size,0,2*Math.PI),c.fill()}),c.globalAlpha=1;let r=.85+.15*Math.sin(.001*b),w=c.createRadialGradient(k,l,.3*m,k,l,2.2*m);w.addColorStop(0,`rgba(52,211,153,${.18*r})`),w.addColorStop(.5,`rgba(232,121,249,${.1*r})`),w.addColorStop(1,"rgba(0,0,0,0)"),c.fillStyle=w,c.fillRect(0,0,h,j),c.lineWidth=2.5,c.strokeStyle="rgba(255,255,255,0.06)",c.beginPath(),c.arc(k,l,1.45*m,0,2*Math.PI),c.stroke();let x=Math.min(100,t.current/Math.max(1,u.current)*100);s.current=x;let y=1.45*m,z=c.createLinearGradient(k-y,l-y,k+y,l+y);z.addColorStop(0,bS),z.addColorStop(.5,bT),z.addColorStop(1,bU),c.strokeStyle=z,c.lineWidth=3,c.lineCap="round",c.shadowBlur=8,c.shadowColor=bS,c.beginPath(),c.arc(k,l,y,-Math.PI/2,-Math.PI/2+2*Math.PI*x/100),c.stroke(),c.shadowBlur=0,n.current.forEach(a=>{a.angle+=a.speed*g,a.radius+=(a.baseRadius-a.radius)*Math.min(1,4*g);let d=k+Math.cos(a.angle)*a.radius,e=l+Math.sin(a.angle)*a.radius,f=.7+.3*Math.sin(.005*b+a.phase);c.globalAlpha=a.alpha*f,c.fillStyle=a.color,c.shadowBlur=10,c.shadowColor=a.color,c.beginPath(),c.arc(d,e,a.size,0,2*Math.PI),c.fill(),c.globalAlpha=a.alpha*f*.4,c.strokeStyle=a.color,c.lineWidth=.6*a.size,c.beginPath(),c.moveTo(d,e),c.lineTo(k+Math.cos(a.angle-.08*a.speed)*(a.radius-2),l+Math.sin(a.angle-.08*a.speed)*(a.radius-2)),c.stroke()}),c.globalAlpha=1,c.shadowBlur=0;let A=.95*m,B=0,C=0;if(v.current.inside){let a=v.current.x-k,b=v.current.y-l,c=Math.hypot(a,b);c>.1&&(B=a/c*Math.min(8,.05*c),C=b/c*Math.min(8,.05*c))}let D=k+B,E=l+C,F=c.createRadialGradient(D-.25*A,E-.3*A,.1*A,D,E,A);F.addColorStop(0,"rgba(255,255,255,0.95)"),F.addColorStop(.3,`rgba(52,211,153,${.85*r})`),F.addColorStop(.65,"rgba(232,121,249,0.55)"),F.addColorStop(1,"rgba(251,113,133,0.2)"),c.fillStyle=F,c.shadowBlur=30,c.shadowColor=bS,c.beginPath(),c.arc(D,E,A,0,2*Math.PI),c.fill(),c.save(),c.translate(D,E),c.globalAlpha=.25,c.strokeStyle="rgba(255,255,255,0.6)",c.lineWidth=.8;let G=.7*A;for(let a=0;a<3;a++){let d=G*(1-.3*a);c.beginPath();for(let e=0;e<6;e++){let f=Math.PI/3*e+2e-4*b*(a%2?1:-1),g=Math.cos(f)*d,h=Math.sin(f)*d;0===e?c.moveTo(g,h):c.lineTo(g,h)}c.closePath(),c.stroke()}c.restore(),c.globalAlpha=.4,c.fillStyle="#ffffff",c.beginPath(),c.ellipse(D-.25*A,E-.35*A,.35*A,.18*A,-.4,0,2*Math.PI),c.fill(),c.globalAlpha=1,c.shadowBlur=0,p.current=p.current.filter(a=>{let d=b-a.born;if(d<0||d>a.duration)return d<=a.duration+50;let e=d/a.duration,f=a.maxRadius*e;return c.globalAlpha=(1-e)*.8,c.strokeStyle=a.color,c.lineWidth=2.5*(1-.5*e),c.shadowBlur=12,c.shadowColor=a.color,c.beginPath(),c.arc(k,l,f,0,2*Math.PI),c.stroke(),c.shadowBlur=0,!0}),p.current=p.current.filter(a=>b-a.born<a.duration),c.globalAlpha=1,q.current=q.current.filter(a=>{let d=b-a.born;if(d>a.life)return!1;a.x+=a.vx*g,a.y+=a.vy*g,a.vx*=.96,a.vy*=.96;let e=d/a.life;return c.globalAlpha=1-e,c.fillStyle=a.color,c.shadowBlur=8,c.shadowColor=a.color,c.beginPath(),c.arc(a.x,a.y,a.size*(1-.5*e),0,2*Math.PI),c.fill(),!0}),c.globalAlpha=1,c.shadowBlur=0,d=requestAnimationFrame(i)};return d=requestAnimationFrame(i),()=>{cancelAnimationFrame(d),h.disconnect()}},[w]);let B=(0,z.useCallback)(a=>{let b=a.currentTarget.getBoundingClientRect();v.current={x:a.clientX-b.left,y:a.clientY-b.top,inside:!0}},[]),C=(0,z.useCallback)(()=>{v.current.inside=!1},[]),D=Math.min(100,b/Math.max(1,d)*100);return(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 relative flex flex-col items-center justify-center gap-4 select-none",children:[e>1&&(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 absolute -top-2 left-1/2 -translate-x-1/2 px-3 py-1 rounded-full bg-rose-500/20 border border-rose-400/40 text-rose-200 text-xs font-mono animate-pulse z-10",children:["×",e," 连击"]}),(0,y.jsxs)("button",{onClick:A,onMouseMove:B,onMouseLeave:C,"aria-label":"脉冲扫描,获取记忆晶体",className:"jsx-dda3ce20a1930cc3 relative h-52 w-52 sm:h-64 sm:w-64 rounded-full focus:outline-none group",children:[(0,y.jsx)("div",{ref:k,className:"jsx-dda3ce20a1930cc3 absolute inset-0 rounded-full overflow-hidden",children:(0,y.jsx)("canvas",{ref:j,className:"jsx-dda3ce20a1930cc3 block w-full h-full"})}),(0,y.jsxs)("div",{style:{animation:"echo-spin 18s linear infinite"},className:"jsx-dda3ce20a1930cc3 absolute inset-2 rounded-full border border-emerald-400/30 pointer-events-none",children:[(0,y.jsx)("div",{className:"jsx-dda3ce20a1930cc3 absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 h-2 w-2 rounded-full bg-emerald-300 shadow-[0_0_8px_#34d399]"}),(0,y.jsx)("div",{className:"jsx-dda3ce20a1930cc3 absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2 h-1.5 w-1.5 rounded-full bg-rose-300 shadow-[0_0_8px_#fb7185]"})]}),(0,y.jsx)("div",{style:{animation:"echo-spin 24s linear infinite reverse"},className:"jsx-dda3ce20a1930cc3 absolute inset-6 rounded-full border border-fuchsia-400/20 border-dashed pointer-events-none"}),(0,y.jsx)("div",{style:{animation:"echo-ring 0.7s ease-out forwards"},className:"jsx-dda3ce20a1930cc3 absolute inset-8 rounded-full border-2 border-emerald-400/60 pointer-events-none"},`ring-${l}`),g.map(a=>(0,y.jsx)("span",{style:{left:a.x,top:a.y,color:a.color,transform:"translate(-50%, -50%)",animation:"echo-float 0.9s ease-out forwards",textShadow:`0 0 8px ${a.color}`},className:"jsx-dda3ce20a1930cc3 absolute pointer-events-none font-mono font-bold text-sm z-10",children:a.text},a.id))]}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-center",children:[(0,y.jsx)("div",{style:{textShadow:"0 0 12px rgba(52,211,153,0.5)"},className:"jsx-dda3ce20a1930cc3 text-2xl font-mono font-bold text-emerald-300",children:Q(b)}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-xs text-muted-foreground mt-0.5",children:["记忆晶体 · ",c.toFixed(1),"/s · 上限"," ",Q(d)]}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-[11px] text-muted-foreground/70 mt-2",children:["点击晶体发起",(0,y.jsx)("span",{className:"jsx-dda3ce20a1930cc3 text-emerald-300",children:"脉冲扫描"}),",连击叠加加成"]}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-[10px] text-muted-foreground/50 mt-1 tabular-nums",children:["仓库 ",D.toFixed(1),"% · 连击 ×",Math.max(1,e)]})]}),(0,y.jsx)(bI.default,{id:"dda3ce20a1930cc3",children:"@keyframes echo-spin{to{transform:rotate(360deg)}}@keyframes echo-float{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-180%)scale(1.3)}}@keyframes echo-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}"})]})}let bY=(0,a.i(187).cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function bZ({className:a,variant:b,size:c,asChild:d=!1,...e}){return(0,y.jsx)(d?bn:"button",{"data-slot":"button",className:(0,bE.cn)(bY({variant:b,size:c,className:a})),...e})}var b$=a.i(33508);let b_=(0,bd.default)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]),b0=(0,bd.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),b1=(0,bd.default)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),b2=(0,bd.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);function b3(){let a=bc(a=>a.activePuzzle),b=bc(a=>a.clickNode),c=bc(a=>a.undoStep),d=bc(a=>a.retryPuzzle),e=bc(a=>a.abandonPuzzle),{toast:f}=(0,bJ.useToast)(),[g,h]=(0,z.useState)(null),[i,j]=(0,z.useState)(null),[k,l]=(0,z.useState)(!1);if(!a)return null;let{grid:m,rows:n,cols:o,target:p,path:q,stepLimit:r,tier:s}=a,t=q.length,u=p[t],v=q.length>0&&q.length<p.length&&!aA(a),w=()=>{c(),l(!1),j(null)},x=100/o,A=100/n,B=q.map(a=>m.find(b=>b.id===a)).filter(Boolean);return(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex flex-col gap-4 h-full",children:[(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center justify-center gap-2 flex-wrap",children:[(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-xs text-muted-foreground mr-1",children:"目标谐振"}),p.map((a,b)=>{let c=b<t,d=b===t,e=J[a];return(0,y.jsxs)("div",{style:{background:`radial-gradient(circle at 35% 30%, ${e.hex}, ${e.hex}aa 60%, ${e.hex}44)`,boxShadow:d?`0 0 18px ${e.glow}, 0 0 36px ${e.glow}`:`0 0 8px ${e.glow}`,"--tw-ring-color":e.hex},className:`jsx-35ab0418fdc54847 relative h-9 w-9 rounded-full flex items-center justify-center transition-all duration-300 ${c?"opacity-30 scale-90":""} ${d?"scale-125 ring-2 ring-offset-2 ring-offset-background":""}`,children:[c&&(0,y.jsx)(b0,{className:"h-4 w-4 text-white"}),d&&(0,y.jsx)("span",{style:{color:e.hex},className:"jsx-35ab0418fdc54847 absolute -bottom-5 text-[10px] font-medium",children:"下一个"})]},b)})]}),(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 relative flex-1 min-h-[260px] rounded-2xl border border-white/10 bg-black/30 backdrop-blur-sm overflow-hidden",children:[(0,y.jsx)("div",{style:{backgroundImage:"linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px)",backgroundSize:`${x}% ${A}%`},className:"jsx-35ab0418fdc54847 absolute inset-0 opacity-20"}),(0,y.jsx)("svg",{className:"jsx-35ab0418fdc54847 absolute inset-0 w-full h-full pointer-events-none",children:B.map((a,b)=>{if(0===b)return null;let c=B[b-1],d=(c.col+.5)*x,e=(c.row+.5)*A,f=(a.col+.5)*x,g=(a.row+.5)*A,h=J[a.color];return(0,y.jsx)("line",{x1:`${d}%`,y1:`${e}%`,x2:`${f}%`,y2:`${g}%`,stroke:h.hex,strokeWidth:2.5,strokeLinecap:"round",style:{filter:`drop-shadow(0 0 4px ${h.glow})`},className:"jsx-35ab0418fdc54847 echo-path-line"},b)})}),m.map(c=>{let d=J[c.color],e=c.used,m=void 0!==u&&c.color===u&&!e,n=0===q.length&&m&&function(a,b){if(0!==a.path.length)return!1;let c=a.grid.find(a=>a.id===b);if(!c||c.used||c.color!==a.target[0])return!1;let d=JSON.parse(JSON.stringify(a));return d.grid.find(a=>a.id===b).used=!0,d.path.push(b),aA(d)}(a,c.id),p=0===q.length&&m&&!n,r=g===c.id,s=i?.id===c.id,t=(c.col+.5)*x,v=(c.row+.5)*A;return(0,y.jsx)("button",{onClick:()=>(a=>{let c=b(a.id);if(c.ok&&c.finished){l(!1),bO("decodeSuccess"),c.failReason&&c.failReason.split(",").filter(Boolean).length&&(bO("fragmentUnlock"),f({title:"✦ 记忆碎片浮现",description:"新的回响被拼入图谱,前往「记忆图谱」查看。"})),f({title:"谐振闭合!",description:"晶体解码成功,记忆已释放。"});return}c.ok?(bO("decodeClick",{color:a.color}),j({id:a.id,ok:!0}),setTimeout(()=>j(null),280),!1!==c.solvable||k||(l(!0),f({title:"谐振受阻",description:"此路不通,建议撤销上一步或重排。"})),!0===c.solvable&&l(!1)):(bO("decodeFail"),j({id:a.id,ok:!1}),setTimeout(()=>j(null),280))})(c),onMouseEnter:()=>h(c.id),onMouseLeave:()=>h(null),disabled:e,style:{left:`${t}%`,top:`${v}%`,width:`min(${100/o*.62}%, 56px)`,aspectRatio:"1",background:e?"rgba(255,255,255,0.04)":`radial-gradient(circle at 35% 30%, ${d.hex}, ${d.hex}cc 55%, ${d.hex}55)`,boxShadow:e?"inset 0 0 12px rgba(0,0,0,0.5)":n?`0 0 16px ${d.glow}, 0 0 32px ${d.glow}, inset 0 0 10px rgba(255,255,255,0.5)`:m?`0 0 10px ${d.glow}, 0 0 20px ${d.glow}, inset 0 0 6px rgba(255,255,255,0.3)`:`0 0 6px ${d.glow}`,border:n?`2px solid ${d.hex}`:m?`1.5px solid ${d.hex}aa`:"1px solid rgba(255,255,255,0.12)",opacity:e?.35:p?.5:1,transform:`translate(-50%, -50%) scale(${r&&!e?1.12:s?i?.ok?1.25:.8:1})`,animation:n?"echo-pulse 1.2s ease-in-out infinite":m&&!p?"echo-pulse 1.6s ease-in-out infinite":void 0},"aria-label":`${d.label}色节点 ${c.row+1}-${c.col+1}`,className:"jsx-35ab0418fdc54847 absolute rounded-full transition-[box-shadow,background,border,opacity] duration-200 focus:outline-none disabled:cursor-not-allowed",children:!e&&(0,y.jsx)("span",{style:{background:"radial-gradient(circle at 35% 30%, rgba(255,255,255,0.5), transparent 45%)"},className:"jsx-35ab0418fdc54847 absolute inset-0 rounded-full"})},c.id)})]}),v&&(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-2 px-3 py-2 rounded-lg border border-rose-400/40 bg-rose-950/40 text-rose-200 text-xs animate-pulse",children:[(0,y.jsx)(b2,{className:"h-3.5 w-3.5 shrink-0"}),(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847",children:"谐振受阻,此路已无解。"}),(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:w,className:"h-6 px-2 ml-auto border-rose-400/50 text-rose-100 hover:bg-rose-500/20 text-[11px]",children:[(0,y.jsx)(b1,{className:"h-3 w-3 mr-1"}),"撤销"]})]}),(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center justify-between gap-3",children:[(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-2 text-xs",children:[(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-muted-foreground",children:"步数"}),(0,y.jsxs)("span",{className:`jsx-35ab0418fdc54847 font-mono font-semibold ${q.length>=r?"text-rose-400":"text-foreground"}`,children:[q.length," / ",r]}),(0,y.jsxs)("span",{className:"jsx-35ab0418fdc54847 ml-2 text-muted-foreground",children:["T",s]})]}),(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-1.5",children:[(0,y.jsxs)(bZ,{variant:"ghost",size:"sm",onClick:w,disabled:0===q.length,className:"h-7",children:[(0,y.jsx)(b1,{className:"h-3.5 w-3.5 mr-1"}),"撤销"]}),(0,y.jsxs)(bZ,{variant:"ghost",size:"sm",onClick:()=>{d(),l(!1),j(null)},className:"h-7",children:[(0,y.jsx)(bh,{className:"h-3.5 w-3.5 mr-1"}),"重排"]}),(0,y.jsxs)(bZ,{variant:"ghost",size:"sm",onClick:()=>{e(),j(null),l(!1)},className:"h-7",children:[(0,y.jsx)(b$.X,{className:"h-3.5 w-3.5 mr-1"}),"放回"]})]})]}),(0,y.jsx)("p",{className:"jsx-35ab0418fdc54847 text-[11px] text-muted-foreground/80 text-center leading-relaxed",children:0===q.length?(0,y.jsxs)(y.Fragment,{children:["点击",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"高亮"}),"的可行起点开始,按目标顺序走",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"相邻同色"}),"节点;走错可",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-rose-300",children:"撤销"}),"。"]}):(0,y.jsxs)(y.Fragment,{children:["按「目标谐振」顺序,点击",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"上下左右相邻"}),"的同色节点。每个节点仅可使用一次;走错可",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-rose-300",children:"撤销"}),"。"]})}),(0,y.jsx)(bI.default,{id:"35ab0418fdc54847",children:"@keyframes echo-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.4)}}@keyframes echo-line{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.echo-path-line{stroke-dasharray:100;animation:.4s ease-out forwards echo-line}"})]})}function b4(){let a=bc(a=>a.activePuzzle),b=bc(a=>a.pendingCrystals),c=bc(a=>a.startDecode),d=bc(a=>a.crystalsPerSec),e=bc(a=>a.crystalCap),f=bc(a=>a.crystals);return a?(0,y.jsxs)("div",{className:"h-full flex flex-col",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,y.jsx)(b_,{className:"h-4 w-4 text-rose-400"}),(0,y.jsx)("h3",{className:"text-sm font-semibold",children:"解码共振阵列"})]}),(0,y.jsx)("div",{className:"flex-1 min-h-0",children:(0,y.jsx)(b3,{})})]}):(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f h-full flex flex-col",children:[(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f flex items-center gap-2 mb-3",children:[(0,y.jsx)(b_,{className:"h-4 w-4 text-rose-400"}),(0,y.jsx)("h3",{className:"jsx-53059b9e32765d5f text-sm font-semibold",children:"待解码晶体"}),(0,y.jsxs)("span",{className:"jsx-53059b9e32765d5f text-xs text-muted-foreground ml-auto",children:["产能 ",d.toFixed(1),"/s · ",Math.floor(f),"/",Math.floor(e)]})]}),0===b.length?(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f flex-1 flex flex-col items-center justify-center text-center gap-3 rounded-2xl border border-dashed border-white/10 bg-black/20 p-6",children:[(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f relative h-16 w-16",children:[(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-0 rounded-full bg-rose-500/20 blur-xl animate-pulse"}),(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-2 rounded-full border-2 border-rose-400/40 rotate-45"}),(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-4 rounded-full bg-rose-500/30"})]}),(0,y.jsx)("p",{className:"jsx-53059b9e32765d5f text-sm text-muted-foreground",children:"晶体正在生成中…"}),(0,y.jsx)("p",{className:"jsx-53059b9e32765d5f text-xs text-muted-foreground/70 max-w-[220px]",children:"自治无人机每数秒回收一颗记忆晶体,点击下方晶体开启解码。"})]}):(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f flex-1 grid grid-cols-2 sm:grid-cols-3 gap-3 content-start max-h-[420px] overflow-y-auto echo-scroll pr-1",children:b.map(a=>(0,y.jsx)(b5,{crystal:a,onClick:()=>c(a.id)},a.id))}),(0,y.jsx)(bI.default,{id:"53059b9e32765d5f",children:".echo-scroll::-webkit-scrollbar{width:6px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}"})]})}function b5({crystal:a,onClick:b}){let c=1===a.tier?"#34d399":2===a.tier?"#fbbf24":"#e879f9",d=1===a.tier?"常见":2===a.tier?"稀有":"史诗";return(0,y.jsxs)("button",{onClick:b,className:"group relative aspect-square rounded-2xl border border-white/10 bg-black/40 hover:border-white/40 transition-all duration-300 hover:scale-[1.04] focus:outline-none overflow-hidden",style:{boxShadow:`inset 0 0 24px ${c}22`},children:[(0,y.jsx)("div",{className:"absolute inset-0 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none",style:{background:`linear-gradient(120deg, transparent 30%, ${c}40 50%, transparent 70%)`,backgroundSize:"200% 100%",animation:"echo-border-flow 2s linear infinite",mixBlendMode:"screen"}}),(0,y.jsx)("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none overflow-hidden",children:(0,y.jsx)("div",{className:"absolute inset-x-0 h-px",style:{background:`linear-gradient(90deg, transparent, ${c}, transparent)`,animation:"echo-scan 1.8s ease-in-out infinite"}})}),(0,y.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,y.jsxs)("div",{className:"relative h-12 w-12 transition-transform duration-500 group-hover:rotate-[200deg] group-hover:scale-110",style:{filter:`drop-shadow(0 0 12px ${c}88)`},children:[(0,y.jsx)("div",{className:"absolute inset-0 rotate-45 rounded-md",style:{background:`linear-gradient(135deg, ${c}, ${c}66)`,border:`1px solid ${c}`}}),(0,y.jsx)("div",{className:"absolute inset-2 rotate-45 rounded-sm",style:{background:"linear-gradient(135deg, rgba(255,255,255,0.5), transparent)"}})]})}),(0,y.jsxs)("div",{className:"absolute top-1.5 left-1.5 z-10 text-[10px] font-mono font-semibold px-1.5 py-0.5 rounded bg-black/60 backdrop-blur-sm border",style:{color:c,borderColor:`${c}40`},children:["T",a.tier]}),(0,y.jsx)("div",{className:"absolute top-1.5 right-1.5 z-10 text-[9px] text-white/60 font-mono tracking-wider",children:d}),(0,y.jsxs)("div",{className:"absolute inset-x-0 bottom-0 z-10 bg-gradient-to-t from-black/85 via-black/50 to-transparent pt-4 pb-1.5 px-1 text-center opacity-0 group-hover:opacity-100 transition-opacity duration-200",children:[(0,y.jsxs)("div",{className:"text-[12px] font-mono font-bold leading-none",style:{color:c},children:["+",a.value]}),(0,y.jsx)("div",{className:"text-[8px] text-white/60 uppercase tracking-[0.15em] mt-0.5",children:"解码 →"})]})]})}function b6({className:a,...b}){return(0,y.jsx)("div",{"data-slot":"card",className:(0,bE.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}let b7=(0,bd.default)("pickaxe",[["path",{d:"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912",key:"we99rg"}],["path",{d:"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393",key:"1w6hck"}],["path",{d:"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z",key:"15hgfx"}],["path",{d:"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319",key:"452b4h"}]]),b8=(0,bd.default)("scan-line",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]),b9=(0,bd.default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]),ca=(0,bd.default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),cb=(0,bd.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),cc={Pickaxe:b7,ScanLine:b8,Rocket:b9,BookOpen:ca},cd={mining:"#34d399",decoding:"#fb7185",expedition:"#fbbf24",narrative:"#e879f9"};function ce(){let a=bc(a=>a.tech),b=bc(a=>a.insights),c=bc(a=>a.buyTech);return(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex flex-col gap-3 h-full",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center justify-between",children:[(0,y.jsx)("h3",{className:"jsx-fbf3fdae687a84dd text-sm font-semibold",children:"技术树"}),(0,y.jsxs)("span",{className:"jsx-fbf3fdae687a84dd text-xs text-muted-foreground",children:["洞见 ",(0,y.jsx)("span",{className:"jsx-fbf3fdae687a84dd text-amber-300 font-mono",children:Q(b)})]})]}),(0,y.jsx)("div",{className:"jsx-fbf3fdae687a84dd flex-1 overflow-y-auto echo-scroll pr-1 space-y-3",children:["mining","decoding","expedition","narrative"].map(d=>{let e=L[d],f=cc[e.icon],g=cd[d],h=K.filter(a=>a.branch===d);return(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-2 mb-1.5 px-1",children:[(0,y.jsx)(f,{className:"jsx-fbf3fdae687a84dd h-3.5 w-3.5"}),(0,y.jsx)("span",{style:{color:g},className:"jsx-fbf3fdae687a84dd text-xs font-medium",children:e.name}),(0,y.jsx)("span",{className:"jsx-fbf3fdae687a84dd text-[10px] text-muted-foreground/70 truncate flex-1",children:e.desc})]}),(0,y.jsxs)("p",{className:"jsx-fbf3fdae687a84dd text-[9px] italic text-muted-foreground/50 px-1 mb-1.5 truncate",children:["「",bQ[d]??"","」"]}),(0,y.jsx)("div",{className:"jsx-fbf3fdae687a84dd grid gap-1.5",children:h.map(d=>{let e=(a[d.id]??0)>=1,f=b>=d.cost;return(0,y.jsx)(b6,{className:`p-2.5 transition-all duration-200 ${e?"bg-white/5 border-white/10":f?"bg-black/30 border-white/15 hover:border-white/30 cursor-pointer":"bg-black/20 border-white/5 opacity-60"}`,style:e?{boxShadow:`inset 0 0 0 1px ${g}44, 0 0 12px ${g}22`}:void 0,children:(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-2",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex-1 min-w-0",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-1.5",children:[(0,y.jsx)("span",{style:{color:e?g:void 0},className:"jsx-fbf3fdae687a84dd text-xs font-semibold truncate",children:d.name}),e&&(0,y.jsx)(b0,{className:"h-3 w-3",style:{color:g}})]}),(0,y.jsx)("p",{className:"jsx-fbf3fdae687a84dd text-[10px] text-muted-foreground/80 truncate",children:d.desc})]}),!e&&(0,y.jsxs)(bZ,{size:"sm",variant:f?"default":"ghost",disabled:!f,onClick:()=>{c(d.id)&&bO("techBuy")},className:"h-7 px-2 text-[11px] shrink-0",style:f?{background:`${g}22`,border:`1px solid ${g}66`,color:g}:void 0,children:[(0,y.jsx)(cb,{className:"h-2.5 w-2.5 mr-1"}),d.cost]})]})},d.id)})})]},d)})}),(0,y.jsx)(bI.default,{id:"fbf3fdae687a84dd",children:".echo-scroll::-webkit-scrollbar{width:5px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}"})]})}var cf=a.i(30553),cg=a.i(77192),ch=a.i(50104),ci=a.i(46872),cj=z.createContext(void 0);function ck(a){let b=z.useContext(cj);return a||b||"ltr"}var cl=a.i(72752),cm=a.i(7554),cn="ScrollArea",[co,cp]=(0,ch.createContextScope)(cn),[cq,cr]=co(cn),cs=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,type:d="hover",dir:e,scrollHideDelay:f=600,...g}=a,[h,i]=z.useState(null),[j,k]=z.useState(null),[l,m]=z.useState(null),[n,o]=z.useState(null),[p,q]=z.useState(null),[r,s]=z.useState(0),[t,u]=z.useState(0),[v,w]=z.useState(!1),[x,A]=z.useState(!1),B=(0,bi.useComposedRefs)(b,a=>i(a)),C=ck(e);return(0,y.jsx)(cq,{scope:c,type:d,dir:C,scrollHideDelay:f,scrollArea:h,viewport:j,onViewportChange:k,content:l,onContentChange:m,scrollbarX:n,onScrollbarXChange:o,scrollbarXEnabled:v,onScrollbarXEnabledChange:w,scrollbarY:p,onScrollbarYChange:q,scrollbarYEnabled:x,onScrollbarYEnabledChange:A,onCornerWidthChange:s,onCornerHeightChange:u,children:(0,y.jsx)(cf.Primitive.div,{dir:C,...g,ref:B,style:{position:"relative","--radix-scroll-area-corner-width":r+"px","--radix-scroll-area-corner-height":t+"px",...a.style}})})});cs.displayName=cn;var ct="ScrollAreaViewport",cu=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,children:d,nonce:e,...f}=a,g=cr(ct,c),h=z.useRef(null),i=(0,bi.useComposedRefs)(b,h,g.onViewportChange);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(0,y.jsx)(cf.Primitive.div,{"data-radix-scroll-area-viewport":"",...f,ref:i,style:{overflowX:g.scrollbarXEnabled?"scroll":"hidden",overflowY:g.scrollbarYEnabled?"scroll":"hidden",...a.style},children:(0,y.jsx)("div",{ref:g.onContentChange,style:{minWidth:"100%",display:"table"},children:d})})]})});cu.displayName=ct;var cv="ScrollAreaScrollbar",cw=z.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=cr(cv,a.__scopeScrollArea),{onScrollbarXEnabledChange:f,onScrollbarYEnabledChange:g}=e,h="horizontal"===a.orientation;return z.useEffect(()=>(h?f(!0):g(!0),()=>{h?f(!1):g(!1)}),[h,f,g]),"hover"===e.type?(0,y.jsx)(cx,{...d,ref:b,forceMount:c}):"scroll"===e.type?(0,y.jsx)(cy,{...d,ref:b,forceMount:c}):"auto"===e.type?(0,y.jsx)(cz,{...d,ref:b,forceMount:c}):"always"===e.type?(0,y.jsx)(cA,{...d,ref:b}):null});cw.displayName=cv;var cx=z.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=cr(cv,a.__scopeScrollArea),[f,g]=z.useState(!1);return z.useEffect(()=>{let a=e.scrollArea,b=0;if(a){let c=()=>{window.clearTimeout(b),g(!0)},d=()=>{b=window.setTimeout(()=>g(!1),e.scrollHideDelay)};return a.addEventListener("pointerenter",c),a.addEventListener("pointerleave",d),()=>{window.clearTimeout(b),a.removeEventListener("pointerenter",c),a.removeEventListener("pointerleave",d)}}},[e.scrollArea,e.scrollHideDelay]),(0,y.jsx)(cg.Presence,{present:c||f,children:(0,y.jsx)(cz,{"data-state":f?"visible":"hidden",...d,ref:b})})}),cy=z.forwardRef((a,b)=>{var c;let{forceMount:d,...e}=a,f=cr(cv,a.__scopeScrollArea),g="horizontal"===a.orientation,h=cS(()=>j("SCROLL_END"),100),[i,j]=(c={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},z.useReducer((a,b)=>c[a][b]??a,"hidden"));return z.useEffect(()=>{if("idle"===i){let a=window.setTimeout(()=>j("HIDE"),f.scrollHideDelay);return()=>window.clearTimeout(a)}},[i,f.scrollHideDelay,j]),z.useEffect(()=>{let a=f.viewport,b=g?"scrollLeft":"scrollTop";if(a){let c=a[b],d=()=>{let d=a[b];c!==d&&(j("SCROLL"),h()),c=d};return a.addEventListener("scroll",d),()=>a.removeEventListener("scroll",d)}},[f.viewport,g,j,h]),(0,y.jsx)(cg.Presence,{present:d||"hidden"!==i,children:(0,y.jsx)(cA,{"data-state":"hidden"===i?"hidden":"visible",...e,ref:b,onPointerEnter:(0,cm.composeEventHandlers)(a.onPointerEnter,()=>j("POINTER_ENTER")),onPointerLeave:(0,cm.composeEventHandlers)(a.onPointerLeave,()=>j("POINTER_LEAVE"))})})}),cz=z.forwardRef((a,b)=>{let c=cr(cv,a.__scopeScrollArea),{forceMount:d,...e}=a,[f,g]=z.useState(!1),h="horizontal"===a.orientation,i=cS(()=>{if(c.viewport){let a=c.viewport.offsetWidth<c.viewport.scrollWidth,b=c.viewport.offsetHeight<c.viewport.scrollHeight;g(h?a:b)}},10);return cT(c.viewport,i),cT(c.content,i),(0,y.jsx)(cg.Presence,{present:d||f,children:(0,y.jsx)(cA,{"data-state":f?"visible":"hidden",...e,ref:b})})}),cA=z.forwardRef((a,b)=>{let{orientation:c="vertical",...d}=a,e=cr(cv,a.__scopeScrollArea),f=z.useRef(null),g=z.useRef(0),[h,i]=z.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),j=cN(h.viewport,h.content),k={...d,sizes:h,onSizesChange:i,hasThumb:!!(j>0&&j<1),onThumbChange:a=>f.current=a,onThumbPointerUp:()=>g.current=0,onThumbPointerDown:a=>g.current=a};function l(a,b){return function(a,b,c,d="ltr"){let e=cO(c),f=b||e/2,g=c.scrollbar.paddingStart+f,h=c.scrollbar.size-c.scrollbar.paddingEnd-(e-f),i=c.content-c.viewport;return cQ([g,h],"ltr"===d?[0,i]:[-1*i,0])(a)}(a,g.current,h,b)}return"horizontal"===c?(0,y.jsx)(cB,{...k,ref:b,onThumbPositionChange:()=>{if(e.viewport&&f.current){let a=cP(e.viewport.scrollLeft,h,e.dir);f.current.style.transform=`translate3d(${a}px, 0, 0)`}},onWheelScroll:a=>{e.viewport&&(e.viewport.scrollLeft=a)},onDragScroll:a=>{e.viewport&&(e.viewport.scrollLeft=l(a,e.dir))}}):"vertical"===c?(0,y.jsx)(cC,{...k,ref:b,onThumbPositionChange:()=>{if(e.viewport&&f.current){let a=cP(e.viewport.scrollTop,h);f.current.style.transform=`translate3d(0, ${a}px, 0)`}},onWheelScroll:a=>{e.viewport&&(e.viewport.scrollTop=a)},onDragScroll:a=>{e.viewport&&(e.viewport.scrollTop=l(a))}}):null}),cB=z.forwardRef((a,b)=>{let{sizes:c,onSizesChange:d,...e}=a,f=cr(cv,a.__scopeScrollArea),[g,h]=z.useState(),i=z.useRef(null),j=(0,bi.useComposedRefs)(b,i,f.onScrollbarXChange);return z.useEffect(()=>{i.current&&h(getComputedStyle(i.current))},[i]),(0,y.jsx)(cF,{"data-orientation":"horizontal",...e,ref:j,sizes:c,style:{bottom:0,left:"rtl"===f.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===f.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":cO(c)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.x),onDragScroll:b=>a.onDragScroll(b.x),onWheelScroll:(b,c)=>{if(f.viewport){var d,e;let g=f.viewport.scrollLeft+b.deltaX;a.onWheelScroll(g),d=g,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{i.current&&f.viewport&&g&&d({content:f.viewport.scrollWidth,viewport:f.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:cM(g.paddingLeft),paddingEnd:cM(g.paddingRight)}})}})}),cC=z.forwardRef((a,b)=>{let{sizes:c,onSizesChange:d,...e}=a,f=cr(cv,a.__scopeScrollArea),[g,h]=z.useState(),i=z.useRef(null),j=(0,bi.useComposedRefs)(b,i,f.onScrollbarYChange);return z.useEffect(()=>{i.current&&h(getComputedStyle(i.current))},[i]),(0,y.jsx)(cF,{"data-orientation":"vertical",...e,ref:j,sizes:c,style:{top:0,right:"ltr"===f.dir?0:void 0,left:"rtl"===f.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":cO(c)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.y),onDragScroll:b=>a.onDragScroll(b.y),onWheelScroll:(b,c)=>{if(f.viewport){var d,e;let g=f.viewport.scrollTop+b.deltaY;a.onWheelScroll(g),d=g,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{i.current&&f.viewport&&g&&d({content:f.viewport.scrollHeight,viewport:f.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:cM(g.paddingTop),paddingEnd:cM(g.paddingBottom)}})}})}),[cD,cE]=co(cv),cF=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,sizes:d,hasThumb:e,onThumbChange:f,onThumbPointerUp:g,onThumbPointerDown:h,onThumbPositionChange:i,onDragScroll:j,onWheelScroll:k,onResize:l,...m}=a,n=cr(cv,c),[o,p]=z.useState(null),q=(0,bi.useComposedRefs)(b,a=>p(a)),r=z.useRef(null),s=z.useRef(""),t=n.viewport,u=d.content-d.viewport,v=(0,ci.useCallbackRef)(k),w=(0,ci.useCallbackRef)(i),x=cS(l,10);function A(a){r.current&&j({x:a.clientX-r.current.left,y:a.clientY-r.current.top})}return z.useEffect(()=>{let a=a=>{let b=a.target;o?.contains(b)&&v(a,u)};return document.addEventListener("wheel",a,{passive:!1}),()=>document.removeEventListener("wheel",a,{passive:!1})},[t,o,u,v]),z.useEffect(w,[d,w]),cT(o,x),cT(n.content,x),(0,y.jsx)(cD,{scope:c,scrollbar:o,hasThumb:e,onThumbChange:(0,ci.useCallbackRef)(f),onThumbPointerUp:(0,ci.useCallbackRef)(g),onThumbPositionChange:w,onThumbPointerDown:(0,ci.useCallbackRef)(h),children:(0,y.jsx)(cf.Primitive.div,{...m,ref:q,style:{position:"absolute",...m.style},onPointerDown:(0,cm.composeEventHandlers)(a.onPointerDown,a=>{0===a.button&&(a.target.setPointerCapture(a.pointerId),r.current=o.getBoundingClientRect(),s.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",n.viewport&&(n.viewport.style.scrollBehavior="auto"),A(a))}),onPointerMove:(0,cm.composeEventHandlers)(a.onPointerMove,A),onPointerUp:(0,cm.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),document.body.style.webkitUserSelect=s.current,n.viewport&&(n.viewport.style.scrollBehavior=""),r.current=null})})})}),cG="ScrollAreaThumb",cH=z.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=cE(cG,a.__scopeScrollArea);return(0,y.jsx)(cg.Presence,{present:c||e.hasThumb,children:(0,y.jsx)(cI,{ref:b,...d})})}),cI=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,style:d,...e}=a,f=cr(cG,c),g=cE(cG,c),{onThumbPositionChange:h}=g,i=(0,bi.useComposedRefs)(b,a=>g.onThumbChange(a)),j=z.useRef(void 0),k=cS(()=>{j.current&&(j.current(),j.current=void 0)},100);return z.useEffect(()=>{let a=f.viewport;if(a){let b=()=>{k(),j.current||(j.current=cR(a,h),h())};return h(),a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)}},[f.viewport,k,h]),(0,y.jsx)(cf.Primitive.div,{"data-state":g.hasThumb?"visible":"hidden",...e,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...d},onPointerDownCapture:(0,cm.composeEventHandlers)(a.onPointerDownCapture,a=>{let b=a.target.getBoundingClientRect(),c=a.clientX-b.left,d=a.clientY-b.top;g.onThumbPointerDown({x:c,y:d})}),onPointerUp:(0,cm.composeEventHandlers)(a.onPointerUp,g.onThumbPointerUp)})});cH.displayName=cG;var cJ="ScrollAreaCorner",cK=z.forwardRef((a,b)=>{let c=cr(cJ,a.__scopeScrollArea),d=!!(c.scrollbarX&&c.scrollbarY);return"scroll"!==c.type&&d?(0,y.jsx)(cL,{...a,ref:b}):null});cK.displayName=cJ;var cL=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,...d}=a,e=cr(cJ,c),[f,g]=z.useState(0),[h,i]=z.useState(0),j=!!(f&&h);return cT(e.scrollbarX,()=>{let a=e.scrollbarX?.offsetHeight||0;e.onCornerHeightChange(a),i(a)}),cT(e.scrollbarY,()=>{let a=e.scrollbarY?.offsetWidth||0;e.onCornerWidthChange(a),g(a)}),j?(0,y.jsx)(cf.Primitive.div,{...d,ref:b,style:{width:f,height:h,position:"absolute",right:"ltr"===e.dir?0:void 0,left:"rtl"===e.dir?0:void 0,bottom:0,...a.style}}):null});function cM(a){return a?parseInt(a,10):0}function cN(a,b){let c=a/b;return isNaN(c)?0:c}function cO(a){let b=cN(a.viewport,a.content),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd;return Math.max((a.scrollbar.size-c)*b,18)}function cP(a,b,c="ltr"){let d=cO(b),e=b.scrollbar.paddingStart+b.scrollbar.paddingEnd,f=b.scrollbar.size-e,g=b.content-b.viewport,h=function(a,[b,c]){return Math.min(c,Math.max(b,a))}(a,"ltr"===c?[0,g]:[-1*g,0]);return cQ([0,g],[0,f-d])(h)}function cQ(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}var cR=(a,b=()=>{})=>{let c={left:a.scrollLeft,top:a.scrollTop},d=0;return!function e(){let f={left:a.scrollLeft,top:a.scrollTop},g=c.left!==f.left,h=c.top!==f.top;(g||h)&&b(),c=f,d=window.requestAnimationFrame(e)}(),()=>window.cancelAnimationFrame(d)};function cS(a,b){let c=(0,ci.useCallbackRef)(a),d=z.useRef(0);return z.useEffect(()=>()=>window.clearTimeout(d.current),[]),z.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(c,b)},[c,b])}function cT(a,b){let c=(0,ci.useCallbackRef)(b);(0,cl.useLayoutEffect)(()=>{let b=0;if(a){let d=new ResizeObserver(()=>{cancelAnimationFrame(b),b=window.requestAnimationFrame(c)});return d.observe(a),()=>{window.cancelAnimationFrame(b),d.unobserve(a)}}},[a,c])}function cU({className:a,children:b,...c}){return(0,y.jsxs)(cs,{"data-slot":"scroll-area",className:(0,bE.cn)("relative",a),...c,children:[(0,y.jsx)(cu,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:b}),(0,y.jsx)(cV,{}),(0,y.jsx)(cK,{})]})}function cV({className:a,orientation:b="vertical",...c}){return(0,y.jsx)(cw,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,bE.cn)("flex touch-none p-px transition-colors select-none","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,y.jsx)(cH,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}let cW=["","寂灭前夜","谐振纪","飞升潮","回响纪","接触纪"];function cX(){let a=bc(a=>a.fragments),b=bc(a=>a.totalDecoded),c=function(a){for(let b of M)if(a<b.threshold)return b.threshold;return null}(b),[d,e]=(0,z.useState)(null),f=M.filter(a=>1===a.era),g=f.filter(b=>a[b.id]).length;return(0,y.jsxs)("div",{className:"flex flex-col gap-2 h-full",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsxs)("h3",{className:"text-sm font-semibold flex items-center gap-1.5",children:[(0,y.jsx)(ca,{className:"h-4 w-4 text-fuchsia-400"}),"记忆图谱"]}),(0,y.jsxs)("span",{className:"text-xs text-muted-foreground",children:[g,"/",f.length," · 第一纪元"]})]}),c&&(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground/80 px-1",children:["再解码 ",(0,y.jsx)("span",{className:"text-fuchsia-300 font-mono",children:c-b})," 颗 → 下一个碎片"]}),(0,y.jsx)(cU,{className:"flex-1 min-h-0",children:(0,y.jsx)("div",{className:"grid grid-cols-2 gap-2 pr-2",children:f.map((b,c)=>{let d=!!a[b.id];return(0,y.jsxs)("button",{onClick:()=>d&&e(b),disabled:!d,className:`relative aspect-[4/3] rounded-xl border text-left p-2 transition-all duration-300 overflow-hidden ${d?"border-fuchsia-400/40 bg-gradient-to-br from-fuchsia-950/40 to-black/40 hover:border-fuchsia-400/70 hover:scale-[1.02] cursor-pointer":"border-white/5 bg-black/30 cursor-not-allowed"}`,style:d?{boxShadow:"0 0 16px rgba(232,121,249,0.15)"}:void 0,children:[(0,y.jsx)("span",{className:`absolute top-1.5 right-1.5 text-[9px] font-mono ${d?"text-fuchsia-300/70":"text-white/20"}`,children:String(c+1).padStart(2,"0")}),d?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{className:"absolute -top-3 -right-3 h-12 w-12 rounded-full bg-fuchsia-500/20 blur-xl"}),(0,y.jsx)(b_,{className:"h-3 w-3 text-fuchsia-300 mb-1"}),(0,y.jsx)("div",{className:"text-[11px] font-semibold text-fuchsia-100 leading-tight",children:b.title}),(0,y.jsxs)("div",{className:"text-[9px] text-muted-foreground mt-1 line-clamp-2",children:[b.echo.slice(0,28),"…"]})]}):(0,y.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-1",children:[(0,y.jsx)(cb,{className:"h-4 w-4 text-white/20"}),(0,y.jsxs)("span",{className:"text-[9px] text-white/30",children:["需解码 ",b.threshold," 颗"]})]})]},b.id)})})}),d&&(0,y.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/70 backdrop-blur-sm",onClick:()=>e(null),children:(0,y.jsxs)(b6,{className:"max-w-md w-full p-5 bg-gradient-to-br from-fuchsia-950/60 to-black/80 border-fuchsia-400/40",onClick:a=>a.stopPropagation(),style:{boxShadow:"0 0 40px rgba(232,121,249,0.25)"},children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,y.jsx)(b_,{className:"h-4 w-4 text-fuchsia-300"}),(0,y.jsxs)("span",{className:"text-[10px] text-fuchsia-300/70 font-mono",children:["第 ",d.era," 纪元 · ",cW[d.era]||""]})]}),(0,y.jsx)("h4",{className:"text-lg font-bold text-fuchsia-100 mb-3",children:d.title}),(0,y.jsxs)("p",{className:"text-sm text-foreground/90 leading-relaxed italic",children:["「",d.echo,"」"]}),(0,y.jsx)("button",{onClick:()=>e(null),className:"mt-4 text-xs text-muted-foreground hover:text-foreground transition",children:"关闭"})]})})]})}var cY=z[" useId ".trim().toString()]||(()=>void 0),cZ=0;function c$(a){let[b,c]=z.useState(cY());return(0,cl.useLayoutEffect)(()=>{a||c(a=>a??String(cZ++))},[a]),a||(b?`radix-${b}`:"")}var c_=a.i(25152),c0=a.i(96743),c1="focusScope.autoFocusOnMount",c2="focusScope.autoFocusOnUnmount",c3={bubbles:!1,cancelable:!0},c4=z.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...g}=a,[h,i]=z.useState(null),j=(0,ci.useCallbackRef)(e),k=(0,ci.useCallbackRef)(f),l=z.useRef(null),m=(0,bi.useComposedRefs)(b,a=>i(a)),n=z.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;z.useEffect(()=>{if(d){let a=function(a){if(n.paused||!h)return;let b=a.target;h.contains(b)?l.current=b:c7(l.current,{select:!0})},b=function(a){if(n.paused||!h)return;let b=a.relatedTarget;null!==b&&(h.contains(b)||c7(l.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&c7(h)});return h&&c.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,h,n.paused]),z.useEffect(()=>{if(h){c8.add(n);let a=document.activeElement;if(!h.contains(a)){let b=new CustomEvent(c1,c3);h.addEventListener(c1,j),h.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(c7(d,{select:b}),document.activeElement!==c)return}(c5(h).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&c7(h))}return()=>{h.removeEventListener(c1,j),setTimeout(()=>{let b=new CustomEvent(c2,c3);h.addEventListener(c2,k),h.dispatchEvent(b),b.defaultPrevented||c7(a??document.body,{select:!0}),h.removeEventListener(c2,k),c8.remove(n)},0)}}},[h,j,k,n]);let o=z.useCallback(a=>{if(!c&&!d||n.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[c6(b=c5(f=d),f),c6(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&c7(h,{select:!0})):(a.preventDefault(),c&&c7(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,n.paused]);return(0,y.jsx)(cf.Primitive.div,{tabIndex:-1,...g,ref:m,onKeyDown:o})});function c5(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function c6(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function c7(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}c4.displayName="FocusScope";var c8=(l=[],{add(a){let b=l[0];a!==b&&b?.pause(),(l=c9(l,a)).unshift(a)},remove(a){l=c9(l,a),l[0]?.resume()}});function c9(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var da=a.i(92616),db=0;function dc(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var dd=function(){return(dd=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function de(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var df=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),dg="width-before-scroll-bar";function dh(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var di=z.useEffect,dj=new WeakMap,dk=(void 0===o&&(o={}),(void 0===p&&(p=function(a){return a}),q=[],r=!1,s={read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return q.length?q[q.length-1]:null},useMedium:function(a){var b=p(a,r);return q.push(b),function(){q=q.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(r=!0;q.length;){var b=q;q=[],b.forEach(a)}q={push:function(b){return a(b)},filter:function(){return q}}},assignMedium:function(a){r=!0;var b=[];if(q.length){var c=q;q=[],c.forEach(a),b=q}var d=function(){var c=b;b=[],c.forEach(a)},e=function(){return Promise.resolve().then(d)};e(),q={push:function(a){b.push(a),e()},filter:function(a){return b=b.filter(a),q}}}}).options=dd({async:!0,ssr:!1},o),s),dl=function(){},dm=z.forwardRef(function(a,b){var c,d,e,f,g=z.useRef(null),h=z.useState({onScrollCapture:dl,onWheelCapture:dl,onTouchMoveCapture:dl}),i=h[0],j=h[1],k=a.forwardProps,l=a.children,m=a.className,n=a.removeScrollBar,o=a.enabled,p=a.shards,q=a.sideCar,r=a.noRelative,s=a.noIsolation,t=a.inert,u=a.allowPinchZoom,v=a.as,w=a.gapMode,x=de(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),y=(c=[g,b],d=function(a){return c.forEach(function(b){return dh(b,a)})},(e=(0,z.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,di(function(){var a=dj.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||dh(a,null)}),d.forEach(function(a){b.has(a)||dh(a,e)})}dj.set(f,c)},[c]),f),A=dd(dd({},x),i);return z.createElement(z.Fragment,null,o&&z.createElement(q,{sideCar:dk,removeScrollBar:n,shards:p,noRelative:r,noIsolation:s,inert:t,setCallbacks:j,allowPinchZoom:!!u,lockRef:g,gapMode:w}),k?z.cloneElement(z.Children.only(l),dd(dd({},A),{ref:y})):z.createElement(void 0===v?"div":v,dd({},A,{className:m,ref:y}),l))});dm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},dm.classNames={fullWidth:dg,zeroRight:df};var dn=function(a){var b=a.sideCar,c=de(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return z.createElement(d,dd({},c))};dn.isSideCarExport=!0;var dp=function(){var a=0,b=null;return{add:function(c){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=w||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return b&&a.setAttribute("nonce",b),a}())){var d,e;(d=b).styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c)),e=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},dq=function(){var a=dp();return function(b,c){z.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},dr=function(){var a=dq();return function(b){return a(b.styles,b.dynamic),null}},ds={left:0,top:0,right:0,gap:0},dt=dr(),du="data-scroll-locked",dv=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(du,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(df," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(dg," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(df," .").concat(df," {\n right: 0 ").concat(d,";\n }\n \n .").concat(dg," .").concat(dg," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(du,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},dw=function(){var a=parseInt(document.body.getAttribute(du)||"0",10);return isFinite(a)?a:0},dx=function(){z.useEffect(function(){return document.body.setAttribute(du,(dw()+1).toString()),function(){var a=dw()-1;a<=0?document.body.removeAttribute(du):document.body.setAttribute(du,a.toString())}},[])},dy=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;dx();var f=z.useMemo(function(){return void 0===e,ds},[e]);return z.createElement(dt,{styles:dv(f,!b,e,c?"":"!important")})},dz=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},dA=function(a,b){var c=b.ownerDocument,d=b;do{if("u">typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),dB(a,d)){var e=dC(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body)return!1},dB=function(a,b){return"v"===a?dz(b,"overflowY"):dz(b,"overflowX")},dC=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},dD=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=dC(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&dB(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i))return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},dE=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},dF=function(a){return[a.deltaX,a.deltaY]},dG=function(a){return a&&"current"in a?a.current:a},dH=0,dI=[];let dJ=(t=function(a){var b=z.useRef([]),c=z.useRef([0,0]),d=z.useRef(),e=z.useState(dH++)[0],f=z.useState(dr)[0],g=z.useRef(a);z.useEffect(function(){g.current=a},[a]),z.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(dG),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=z.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=dE(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=dA(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=dA(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return dD(p,b,a,"h"===p?i:j,!0)},[]),i=z.useCallback(function(a){if(dI.length&&dI[dI.length-1]===f){var c="deltaY"in a?dF(a):dE(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(dG).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=z.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=z.useCallback(function(a){c.current=dE(a),d.current=void 0},[]),l=z.useCallback(function(b){j(b.type,dF(b),b.target,h(b,a.lockRef.current))},[]),m=z.useCallback(function(b){j(b.type,dE(b),b.target,h(b,a.lockRef.current))},[]);z.useEffect(function(){return dI.push(f),a.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:m}),document.addEventListener("wheel",i,!1),document.addEventListener("touchmove",i,!1),document.addEventListener("touchstart",k,!1),function(){dI=dI.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,!1),document.removeEventListener("touchmove",i,!1),document.removeEventListener("touchstart",k,!1)}},[]);var n=a.removeScrollBar,o=a.inert;return z.createElement(z.Fragment,null,o?z.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,n?z.createElement(dy,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},dk.useMedium(t),dn);var dK=z.forwardRef(function(a,b){return z.createElement(dm,dd({},a,{ref:b,sideCar:dJ}))});dK.classNames=dm.classNames;var dL=new WeakMap,dM=new WeakMap,dN={},dO=0,dP=function(a){return a&&(a.host||dP(a.parentNode))},dQ=function(a,b,c,d){var e=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=dP(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});dN[c]||(dN[c]=new WeakMap);var f=dN[c],g=[],h=new Set,i=new Set(e),j=function(a){!a||h.has(a)||(h.add(a),j(a.parentNode))};e.forEach(j);var k=function(a){!a||i.has(a)||Array.prototype.forEach.call(a.children,function(a){if(h.has(a))k(a);else try{var b=a.getAttribute(d),e=null!==b&&"false"!==b,i=(dL.get(a)||0)+1,j=(f.get(a)||0)+1;dL.set(a,i),f.set(a,j),g.push(a),1===i&&e&&dM.set(a,!0),1===j&&a.setAttribute(c,"true"),e||a.setAttribute(d,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return k(b),h.clear(),dO++,function(){g.forEach(function(a){var b=dL.get(a)-1,e=f.get(a)-1;dL.set(a,b),f.set(a,e),b||(dM.has(a)||a.removeAttribute(d),dM.delete(a)),e||a.removeAttribute(c)}),--dO||(dL=new WeakMap,dL=new WeakMap,dM=new WeakMap,dN={})}},dR=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("u"<typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),dQ(d,e,c,"aria-hidden")):function(){return null}},dS=Symbol("radix.slottable");function dT(a){return z.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===dS}var dU="Dialog",[dV,dW]=(0,ch.createContextScope)(dU),[dX,dY]=dV(dU),dZ=a=>{let{__scopeDialog:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:g=!0}=a,h=z.useRef(null),i=z.useRef(null),[j,k]=(0,c_.useControllableState)({prop:d,defaultProp:e??!1,onChange:f,caller:dU});return(0,y.jsx)(dX,{scope:b,triggerRef:h,contentRef:i,contentId:c$(),titleId:c$(),descriptionId:c$(),open:j,onOpenChange:k,onOpenToggle:z.useCallback(()=>k(a=>!a),[k]),modal:g,children:c})};dZ.displayName=dU;var d$="DialogTrigger";z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(d$,c),f=(0,bi.useComposedRefs)(b,e.triggerRef);return(0,y.jsx)(cf.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.contentId,"data-state":ei(e.open),...d,ref:f,onClick:(0,cm.composeEventHandlers)(a.onClick,e.onOpenToggle)})}).displayName=d$;var d_="DialogPortal",[d0,d1]=dV(d_,{forceMount:void 0}),d2=a=>{let{__scopeDialog:b,forceMount:c,children:d,container:e}=a,f=dY(d_,b);return(0,y.jsx)(d0,{scope:b,forceMount:c,children:z.Children.map(d,a=>(0,y.jsx)(cg.Presence,{present:c||f.open,children:(0,y.jsx)(da.Portal,{asChild:!0,container:e,children:a})}))})};d2.displayName=d_;var d3="DialogOverlay",d4=z.forwardRef((a,b)=>{let c=d1(d3,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=dY(d3,a.__scopeDialog);return f.modal?(0,y.jsx)(cg.Presence,{present:d||f.open,children:(0,y.jsx)(d6,{...e,ref:b})}):null});d4.displayName=d3;var d5=((m=z.forwardRef((a,b)=>{let{children:c,...d}=a;if(z.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==z.Fragment&&(h.ref=b?(0,bi.composeRefs)(b,g):g),z.cloneElement(c,h)}return z.Children.count(c)>1?z.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",h=m,(i=z.forwardRef((a,b)=>{let{children:c,...d}=a,e=z.Children.toArray(c),f=e.find(dT);if(f){let a=f.props.children,c=e.map(b=>b!==f?b:z.Children.count(a)>1?z.Children.only(null):z.isValidElement(a)?a.props.children:null);return(0,y.jsx)(h,{...d,ref:b,children:z.isValidElement(a)?z.cloneElement(a,void 0,c):null})}return(0,y.jsx)(h,{...d,ref:b,children:c})})).displayName="DialogOverlay.RemoveScroll.Slot",i),d6=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(d3,c);return(0,y.jsx)(dK,{as:d5,allowPinchZoom:!0,shards:[e.contentRef],children:(0,y.jsx)(cf.Primitive.div,{"data-state":ei(e.open),...d,ref:b,style:{pointerEvents:"auto",...d.style}})})}),d7="DialogContent",d8=z.forwardRef((a,b)=>{let c=d1(d7,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=dY(d7,a.__scopeDialog);return(0,y.jsx)(cg.Presence,{present:d||f.open,children:f.modal?(0,y.jsx)(d9,{...e,ref:b}):(0,y.jsx)(ea,{...e,ref:b})})});d8.displayName=d7;var d9=z.forwardRef((a,b)=>{let c=dY(d7,a.__scopeDialog),d=z.useRef(null),e=(0,bi.useComposedRefs)(b,c.contentRef,d);return z.useEffect(()=>{let a=d.current;if(a)return dR(a)},[]),(0,y.jsx)(eb,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,cm.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:(0,cm.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:(0,cm.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault())})}),ea=z.forwardRef((a,b)=>{let c=dY(d7,a.__scopeDialog),d=z.useRef(!1),e=z.useRef(!1);return(0,y.jsx)(eb,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})}),eb=z.forwardRef((a,b)=>{let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...g}=a,h=dY(d7,c),i=z.useRef(null),j=(0,bi.useComposedRefs)(b,i);return z.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??dc()),document.body.insertAdjacentElement("beforeend",a[1]??dc()),db++,()=>{1===db&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),db--}},[]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c4,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,y.jsx)(c0.DismissableLayer,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":ei(h.open),...g,ref:j,onDismiss:()=>h.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(em,{titleId:h.titleId}),(0,y.jsx)(en,{contentRef:i,descriptionId:h.descriptionId})]})]})}),ec="DialogTitle",ed=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(ec,c);return(0,y.jsx)(cf.Primitive.h2,{id:e.titleId,...d,ref:b})});ed.displayName=ec;var ee="DialogDescription",ef=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(ee,c);return(0,y.jsx)(cf.Primitive.p,{id:e.descriptionId,...d,ref:b})});ef.displayName=ee;var eg="DialogClose",eh=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(eg,c);return(0,y.jsx)(cf.Primitive.button,{type:"button",...d,ref:b,onClick:(0,cm.composeEventHandlers)(a.onClick,()=>e.onOpenChange(!1))})});function ei(a){return a?"open":"closed"}eh.displayName=eg;var ej="DialogTitleWarning",[ek,el]=(0,ch.createContext)(ej,{contentName:d7,titleName:ec,docsSlug:"dialog"}),em=({titleId:a})=>{let b=el(ej),c=`\`${b.contentName}\` requires a \`${b.titleName}\` for the component to be accessible for screen reader users.
If you want to hide the \`${b.titleName}\`, you can wrap it with our VisuallyHidden component.
For more information, see https://radix-ui.com/primitives/docs/components/${b.docsSlug}`;return z.useEffect(()=>{a&&(document.getElementById(a)||console.error(c))},[c,a]),null},en=({contentRef:a,descriptionId:b})=>{let c=el("DialogDescriptionWarning"),d=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${c.contentName}}.`;return z.useEffect(()=>{let c=a.current?.getAttribute("aria-describedby");b&&c&&(document.getElementById(b)||console.warn(d))},[d,a,b]),null},eo=a.i(62213),eo=eo;function ep({...a}){return(0,y.jsx)(dZ,{"data-slot":"dialog",...a})}function eq({...a}){return(0,y.jsx)(d2,{"data-slot":"dialog-portal",...a})}function er({className:a,...b}){return(0,y.jsx)(d4,{"data-slot":"dialog-overlay",className:(0,bE.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function es({className:a,children:b,showCloseButton:c=!0,...d}){return(0,y.jsxs)(eq,{"data-slot":"dialog-portal",children:[(0,y.jsx)(er,{}),(0,y.jsxs)(d8,{"data-slot":"dialog-content",className:(0,bE.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),...d,children:[b,c&&(0,y.jsxs)(eh,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,y.jsx)(eo.default,{}),(0,y.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function et({className:a,...b}){return(0,y.jsx)("div",{"data-slot":"dialog-header",className:(0,bE.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function eu({className:a,...b}){return(0,y.jsx)("div",{"data-slot":"dialog-footer",className:(0,bE.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...b})}function ev({className:a,...b}){return(0,y.jsx)(ed,{"data-slot":"dialog-title",className:(0,bE.cn)("text-lg leading-none font-semibold",a),...b})}function ew({className:a,...b}){return(0,y.jsx)(ef,{"data-slot":"dialog-description",className:(0,bE.cn)("text-muted-foreground text-sm",a),...b})}let ex=(0,bd.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);function ey({open:a,onOpenChange:b}){let c=bc(),d=bc(a=>a.doPrestige),{toast:e}=(0,bJ.useToast)(),[f,g]=(0,z.useState)(!1),[h,i]=(0,z.useState)(!1),j=aw(c);c.blueprints.length;let k=Math.min(6,c.blueprints.length+j),l=ab(c.constellation??[]);return(0,y.jsx)(ep,{open:a,onOpenChange:b,children:(0,y.jsxs)(es,{className:"bg-gradient-to-br from-fuchsia-950/70 to-black/90 border-fuchsia-400/40",children:[(0,y.jsxs)(et,{children:[(0,y.jsxs)(ev,{className:"flex items-center gap-2 text-fuchsia-100",children:[(0,y.jsx)(bh,{className:"h-5 w-5"}),"飞升 · 跨越维度"]}),(0,y.jsx)(ew,{className:"text-fuchsia-200/70",children:"当接触进度满溢,你将跨越维度与以太族相会。本次飞升将重置资源与技术,但保留记忆图谱与蓝图加成。"})]}),(0,y.jsxs)("div",{className:"space-y-3 py-2",children:[(0,y.jsxs)("div",{className:"rounded-lg border border-fuchsia-400/30 bg-fuchsia-950/30 p-3",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsx)("span",{className:"text-sm text-fuchsia-200",children:"本次获得蓝图"}),(0,y.jsxs)("span",{className:"text-2xl font-mono font-bold text-fuchsia-100",children:["+",j]})]}),(0,y.jsxs)("p",{className:"text-[11px] text-muted-foreground mt-1",children:["蓝图总数将达 ",k,"/",6,"(每 ",20," 次解码产出 1 张)"]})]}),(0,y.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,y.jsx)(ez,{label:"产能",value:`+${(k*N*100).toFixed(0)}%`,color:"#34d399"}),(0,y.jsx)(ez,{label:"洞见",value:`+${(k*O*100).toFixed(0)}%`,color:"#fbbf24"}),(0,y.jsx)(ez,{label:"接触",value:`+${(k*P*100).toFixed(0)}%`,color:"#e879f9"})]}),(0,y.jsxs)("div",{className:"text-[11px] text-muted-foreground space-y-1 pt-1",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(b_,{className:"h-3 w-3 text-fuchsia-400"}),"保留:记忆图谱、累计解码数、飞升次数、蓝图、星图天赋"]}),(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(bh,{className:"h-3 w-3 text-rose-400"}),"重置:晶体、洞见、技术树、接触进度、待解码晶体"]})]}),(0,y.jsx)("div",{className:"rounded-lg border border-fuchsia-400/30 bg-gradient-to-r from-fuchsia-950/40 to-purple-950/40 p-2.5",children:(0,y.jsxs)("div",{className:"flex items-center gap-2",children:[(0,y.jsx)(ex,{className:"h-4 w-4 text-fuchsia-300"}),(0,y.jsxs)("div",{className:"flex-1",children:[(0,y.jsx)("div",{className:"text-[12px] text-fuchsia-200 font-bold",children:"星图觉醒预告"}),(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground",children:["飞升后将从 3 道随机天赋中选 1,永久获得加成",l.unlocked<l.total&&(0,y.jsxs)("span",{className:"text-fuchsia-300/80",children:[" · 当前 ",l.unlocked,"/",l.total]})]})]}),(0,y.jsx)("div",{className:"text-[10px] text-fuchsia-300/70 font-mono",children:l.unlocked<l.total?"✦ 可觉醒":"✧ 已圆满"})]})}),(0,y.jsxs)("div",{className:"rounded-lg border border-violet-400/25 bg-violet-950/20 p-2.5 flex items-center gap-2",children:[(0,y.jsx)(ca,{className:"h-4 w-4 text-violet-300 flex-shrink-0"}),(0,y.jsxs)("div",{className:"flex-1 text-[10px] text-violet-100/70 leading-relaxed",children:["本次飞升将铭刻入",(0,y.jsx)("span",{className:"text-violet-200 font-bold",children:"回响编年史"}),", 记录本周目的解码、探险、星潮与觉醒天赋,形成永恒叙事时间轴。"]})]})]}),(0,y.jsxs)(eu,{children:[(0,y.jsx)(bZ,{variant:"ghost",onClick:()=>b(!1),children:"取消"}),(0,y.jsx)(bZ,{disabled:f&&!h,onClick:()=>{if(!f){g(!0),i(!1),window.setTimeout(()=>i(!0),900);return}let a=d();b(!1),g(!1),i(!1),a&&(bO("prestige"),window.setTimeout(()=>bO("chronicle"),600),e({title:"✦ 飞升成功",description:`获得 ${a.newBp} 张蓝图,进入第 ${c.ascensions+2} 周目。编年史已铭刻新纪元。`}))},className:"bg-gradient-to-r from-fuchsia-600 to-rose-500 hover:from-fuchsia-500 hover:to-rose-400 text-white border-0",children:f?h?"再次确认飞升":"请确认…":j<=0?"飞升(无新蓝图)":"飞升"})]})]})})}function ez({label:a,value:b,color:c}){return(0,y.jsxs)("div",{className:"rounded-lg border p-2 text-center",style:{borderColor:`${c}44`,background:`${c}11`},children:[(0,y.jsx)("div",{className:"text-[10px] text-muted-foreground",children:a}),(0,y.jsx)("div",{className:"text-sm font-mono font-bold",style:{color:c},children:b})]})}var eA="Switch",[eB,eC]=(0,ch.createContextScope)(eA),[eD,eE]=eB(eA),eF=z.forwardRef((a,b)=>{let{__scopeSwitch:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i="on",onCheckedChange:j,form:k,...l}=a,[m,n]=z.useState(null),o=(0,bi.useComposedRefs)(b,a=>n(a)),p=z.useRef(!1),q=!m||k||!!m.closest("form"),[r,s]=(0,c_.useControllableState)({prop:e,defaultProp:f??!1,onChange:j,caller:eA});return(0,y.jsxs)(eD,{scope:c,checked:r,disabled:h,children:[(0,y.jsx)(cf.Primitive.button,{type:"button",role:"switch","aria-checked":r,"aria-required":g,"data-state":eJ(r),"data-disabled":h?"":void 0,disabled:h,value:i,...l,ref:o,onClick:(0,cm.composeEventHandlers)(a.onClick,a=>{s(a=>!a),q&&(p.current=a.isPropagationStopped(),p.current||a.stopPropagation())})}),q&&(0,y.jsx)(eI,{control:m,bubbles:!p.current,name:d,value:i,checked:r,required:g,disabled:h,form:k,style:{transform:"translateX(-100%)"}})]})});eF.displayName=eA;var eG="SwitchThumb",eH=z.forwardRef((a,b)=>{let{__scopeSwitch:c,...d}=a,e=eE(eG,c);return(0,y.jsx)(cf.Primitive.span,{"data-state":eJ(e.checked),"data-disabled":e.disabled?"":void 0,...d,ref:b})});eH.displayName=eG;var eI=z.forwardRef(({__scopeSwitch:a,control:b,checked:c,bubbles:d=!0,...e},f)=>{let g,h=z.useRef(null),i=(0,bi.useComposedRefs)(h,f),j=(g=z.useRef({value:c,previous:c}),z.useMemo(()=>(g.current.value!==c&&(g.current.previous=g.current.value,g.current.value=c),g.current.previous),[c])),k=function(a){let[b,c]=z.useState(void 0);return(0,cl.useLayoutEffect)(()=>{if(a){c({width:a.offsetWidth,height:a.offsetHeight});let b=new ResizeObserver(b=>{let d,e;if(!Array.isArray(b)||!b.length)return;let f=b[0];if("borderBoxSize"in f){let a=f.borderBoxSize,b=Array.isArray(a)?a[0]:a;d=b.inlineSize,e=b.blockSize}else d=a.offsetWidth,e=a.offsetHeight;c({width:d,height:e})});return b.observe(a,{box:"border-box"}),()=>b.unobserve(a)}c(void 0)},[a]),b}(b);return z.useEffect(()=>{let a=h.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(j!==c&&b){let e=new Event("click",{bubbles:d});b.call(a,c),a.dispatchEvent(e)}},[j,c,d]),(0,y.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:c,...e,tabIndex:-1,ref:i,style:{...e.style,...k,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function eJ(a){return a?"checked":"unchecked"}function eK({className:a,...b}){return(0,y.jsx)(eF,{"data-slot":"switch",className:(0,bE.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,y.jsx)(eH,{"data-slot":"switch-thumb",className:(0,bE.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}eI.displayName="SwitchBubbleInput";var eL=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=bm(`Primitive.${b}`),d=z.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,y.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{}),eM=z.forwardRef((a,b)=>(0,y.jsx)(eL.label,{...a,ref:b,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));function eN({className:a,...b}){return(0,y.jsx)(eM,{"data-slot":"label",className:(0,bE.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}eM.displayName="Label";let eO=(0,bd.default)("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),eP=(0,bd.default)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),eQ=(0,bd.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),eR=(0,bd.default)("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),eS=(0,bd.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),eT=[{id:"welcome",placement:"bottom",title:"✦ 欢迎来到回响星核",body:"你是一台苏醒在深空遗迹中的自治无人机。在这里,你需要采矿、解码以太文明遗留的记忆晶体,逐步拼凑出一段跨越维度的叙事。\n\n本引导将带你认识 5 个核心玩法,约 1 分钟。可随时跳过。"},{id:"crystal",target:"crystal-orb",placement:"right",title:"① 脉冲扫描 · 采矿",body:"点击中央的「记忆晶体」发起脉冲扫描,获得记忆晶体。\n\n连续点击可触发连击,连击越高单次产出越多。无人机也会每秒自动采集(+0.4/s 起)。",expectAction:"pulse"},{id:"decode",target:"decode-panel",placement:"left",title:"② 谐振序列 · 解码",body:"记忆晶体存满后,点击右侧「待解码晶体」开启谐振谜题:按目标色序依次点击相邻同色节点重建回路。\n\n解码成功 → 获得技术洞见 + 记忆碎片(叙事片段)。这是游戏的核心解谜层。",expectAction:"decode-start"},{id:"tech",target:"tab-tech",placement:"top",title:"③ 技术树 · 成长",body:"用「技术洞见」在「技术」标签升级 4 大分支:产能 / 解码 / 仓库 / 探险。\n\n每个分支 3 级,策略性地分配洞见是关键。",expectAction:"tech-buy"},{id:"expedition",target:"tab-expedition",placement:"top",title:"④ 遗迹探险 · 肉鸽",body:"累积足够实力后,「探险」标签可深入遗迹:6 种节点(战斗/宝藏/抉择/解谜/休整/BOSS)程序化路径,有生命系统,失败保留奖励。\n\n这是放置之外的主动玩法层。",expectAction:"expedition-start"},{id:"prestige",target:"prestige-btn",placement:"bottom",title:"⑤ 飞升 · 多周目",body:"「接触进度」满 100% 后可飞升:重置进度,获得永久蓝图加成 + 星图天赋(3 选 1 draft)+ 编年史记录。\n\n多周目叠加,越飞越强。还有每日信标挑战、6 种星潮事件等你探索。"},{id:"done",placement:"bottom",title:"✦ 回响已唤醒",body:"教程结束!后续可在「设置 → 重新查看教程」再次查看。\n\n深空之中,回响永续。祝你考古愉快。"}],eU="echo-nexus-tutorial-v1";function eV({open:a,onOpenChange:b}){let c=bc(a=>a.soundOn),d=bc(a=>a.toggleSound),e=bc(a=>a.hardReset),f=bc(a=>a.ascensions),g=bc(a=>a.totalDecoded),{toast:h}=(0,bJ.useToast)(),[i,j]=(0,z.useState)(!1);return(0,y.jsx)(ep,{open:a,onOpenChange:b,children:(0,y.jsxs)(es,{className:"bg-gradient-to-br from-slate-900/80 to-black/90 border-white/15",children:[(0,y.jsxs)(et,{children:[(0,y.jsx)(ev,{children:"设置"}),(0,y.jsx)(ew,{children:"游戏偏好与存档管理"})]}),(0,y.jsxs)("div",{className:"space-y-4 py-2",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-white/10 bg-black/30 p-3",children:[(0,y.jsxs)("div",{children:[(0,y.jsx)(eN,{className:"text-sm",children:"音效反馈"}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"脉冲、解码、探险、飞升等程序化音效"})]}),(0,y.jsxs)("div",{className:"flex items-center gap-2",children:[(0,y.jsx)(bZ,{size:"sm",variant:"ghost",className:"h-7 px-2 text-muted-foreground hover:text-foreground",onClick:()=>bO("decodeSuccess"),"aria-label":"试听音效",children:(0,y.jsx)(eQ,{className:"h-3.5 w-3.5"})}),(0,y.jsx)(eK,{checked:c,onCheckedChange:d})]})]}),(0,y.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-white/10 bg-black/30 p-3",children:[(0,y.jsxs)("div",{children:[(0,y.jsx)(eN,{className:"text-sm",children:"新手教程"}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"重新查看 5 步玩法引导"})]}),(0,y.jsxs)(bZ,{size:"sm",variant:"outline",className:"h-7 px-2 text-[11px] border-fuchsia-400/40 text-fuchsia-200 hover:bg-fuchsia-500/10",onClick:()=>{try{localStorage.removeItem(eU)}catch{}b(!1)},children:[(0,y.jsx)(eR,{className:"h-3.5 w-3.5 mr-1"}),"重看教程"]})]}),(0,y.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/30 p-3 text-xs space-y-1.5",children:[(0,y.jsxs)("div",{className:"flex justify-between",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:"累计解码"}),(0,y.jsxs)("span",{className:"font-mono",children:[g," 颗"]})]}),(0,y.jsxs)("div",{className:"flex justify-between",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:"飞升周目"}),(0,y.jsx)("span",{className:"font-mono",children:f})]}),(0,y.jsxs)("div",{className:"flex justify-between",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:"存档位置"}),(0,y.jsx)("span",{className:"font-mono text-[10px]",children:"浏览器本地"})]})]}),(0,y.jsxs)("div",{className:"rounded-lg border border-rose-500/30 bg-rose-950/20 p-3",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,y.jsx)(b2,{className:"h-4 w-4 text-rose-400"}),(0,y.jsx)("span",{className:"text-sm font-medium text-rose-200",children:"危险操作"})]}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground mb-2",children:"清空所有进度,包括记忆图谱与飞升记录,不可恢复。"}),(0,y.jsxs)(bZ,{variant:"outline",size:"sm",className:"border-rose-500/40 text-rose-300 hover:bg-rose-500/10",onClick:()=>{i?(e(),j(!1),b(!1),h({title:"存档已清空",description:"一切归零,重新开始。"})):j(!0)},children:[(0,y.jsx)(eO,{className:"h-3.5 w-3.5 mr-1"}),i?"再次点击确认清空":"清空存档"]})]}),(0,y.jsxs)("div",{className:"space-y-1.5",children:[(0,y.jsxs)("a",{href:"https://gitea-pages.atdunbg.xyz/Super_Z/echo-nexus/",target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-xs text-emerald-300/80 hover:text-emerald-200 transition px-1 py-1 rounded hover:bg-emerald-500/5",children:[(0,y.jsx)(eS,{className:"h-3.5 w-3.5"}),"在线游玩(gitea-pages"]}),(0,y.jsxs)("a",{href:"https://git.atdunbg.xyz/Super_Z/echo-nexus",target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition px-1 py-1 rounded hover:bg-white/5",children:[(0,y.jsx)(eP,{className:"h-3.5 w-3.5"}),"git.atdunbg.xyz/Super_Z/echo-nexus"]})]})]}),(0,y.jsx)(eu,{children:(0,y.jsx)(bZ,{variant:"ghost",onClick:()=>b(!1),children:"关闭"})})]})})}let eW=(0,bd.default)("swords",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}],["polyline",{points:"14.5 6.5 18 3 21 3 21 6 17.5 9.5",key:"hbey2j"}],["line",{x1:"5",x2:"9",y1:"14",y2:"18",key:"1hf58s"}],["line",{x1:"7",x2:"4",y1:"17",y2:"20",key:"pidxm4"}],["line",{x1:"3",x2:"5",y1:"19",y2:"21",key:"1pehsh"}]]),eX=(0,bd.default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),eY=(0,bd.default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),eZ=(0,bd.default)("skull",[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]]),e$=(0,bd.default)("heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]),e_=(0,bd.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),e0=(0,bd.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),e1=(0,bd.default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),e2={combat:{icon:eW,color:"#fb7185",label:"战斗",bg:"rgba(251,113,133,0.15)"},treasure:{icon:be,color:"#fbbf24",label:"宝藏",bg:"rgba(251,191,36,0.15)"},choice:{icon:eX,color:"#a5f3fc",label:"抉择",bg:"rgba(165,243,252,0.15)"},puzzle:{icon:eY,color:"#e879f9",label:"解谜",bg:"rgba(232,121,249,0.15)"},rest:{icon:e$,color:"#34d399",label:"休整",bg:"rgba(52,211,153,0.15)"},boss:{icon:eZ,color:"#f43f5e",label:"BOSS",bg:"rgba(244,63,94,0.2)"}};function e3(){let a=bc(a=>a.activeExpedition),b=bc(a=>a.energy),c=bc(a=>a.energyMax),d=bc(a=>a.lastEnergyTick),e=bc(a=>a.expeditionLog),f=bc(a=>a.totalExpeditions),g=bc(a=>a.lastExpeditionSummary),h=bc(a=>aF(a)),i=bc(a=>a.startExpedition),j=bc(a=>a.resolveCurrentNode),k=bc(a=>a.advanceNode),l=bc(a=>a.abortExpedition),{toast:m}=(0,bJ.useToast)(),[n,o]=(0,z.useState)(null),[p,q]=(0,z.useState)(()=>Date.now());(0,z.useEffect)(()=>{let a=setInterval(()=>q(Date.now()),1e3);return()=>clearInterval(a)},[]);let r=1e3*h,s=p-d,t=b>=c?100:Math.min(100,s/r*100),u=h<20,v=b>=c?0:Math.max(0,Math.ceil((r-s)/1e3)),w=b>=1;if(!a||a.finished)return(0,y.jsxs)("div",{className:"flex flex-col gap-3 h-full",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsxs)("h3",{className:"text-sm font-semibold flex items-center gap-1.5",children:[(0,y.jsx)(b9,{className:"h-4 w-4 text-amber-400"}),"遗迹探险"]}),(0,y.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["已探索 ",f," 次"]})]}),g&&(0,y.jsxs)("div",{className:`rounded-xl border p-2.5 relative overflow-hidden ${"victory"===g.result?"border-emerald-400/40 bg-emerald-950/20":"defeat"===g.result?"border-rose-400/40 bg-rose-950/20":"border-amber-400/30 bg-amber-950/10"}`,children:[(0,y.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:"text-[11px] font-semibold flex items-center gap-1",children:"victory"===g.result?"✦ 上次探险:胜利":"defeat"===g.result?"✕ 上次探险:失败":"→ 上次探险:撤退"}),(0,y.jsxs)("span",{className:"text-[9px] text-muted-foreground font-mono",children:[g.nodeCount," 节点"]})]}),(0,y.jsxs)("div",{className:"flex items-center gap-2.5 text-[10px]",children:[g.rewards.crystals>0&&(0,y.jsxs)("span",{className:"text-emerald-300",children:["+",Q(g.rewards.crystals)," 晶体"]}),g.rewards.insights>0&&(0,y.jsxs)("span",{className:"text-amber-300",children:["+",g.rewards.insights," 洞见"]}),g.rewards.contact>0&&(0,y.jsxs)("span",{className:"text-fuchsia-300",children:["+",g.rewards.contact.toFixed(1)," 接触"]}),0===g.rewards.crystals&&0===g.rewards.insights&&(0,y.jsx)("span",{className:"text-muted-foreground/60",children:"无奖励"})]})]}),(0,y.jsxs)("div",{className:"rounded-xl border border-amber-400/20 bg-amber-950/20 p-3",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(e_,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:"text-xs text-amber-200",children:"探险能量"})]}),(0,y.jsxs)("span",{className:"text-xs font-mono text-amber-100",children:[b," / ",c]})]}),b<c?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(bF,{value:t,className:"h-1.5 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-amber-500 [&>div]:to-yellow-300"}),(0,y.jsxs)("p",{className:"text-[10px] text-muted-foreground/70 mt-1 flex items-center gap-1",children:[(0,y.jsx)("span",{children:"下一点能量"}),(0,y.jsxs)("span",{className:"text-amber-300 font-mono font-semibold",children:[v,"s"]}),(0,y.jsx)("span",{children:"后恢复"}),u&&(0,y.jsxs)("span",{className:"text-emerald-400/80 ml-1",children:["⚡ ",h.toFixed(0),"s/点 (已加速)"]})]})]}):(0,y.jsx)("p",{className:"text-[10px] text-amber-300/80 mt-0.5",children:"能量已满,可立即出发"})]}),(0,y.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-3 rounded-2xl border border-dashed border-amber-400/20 bg-black/30 p-4 relative overflow-hidden",children:[(0,y.jsx)("div",{className:"absolute -top-10 -right-10 h-32 w-32 rounded-full bg-amber-500/10 blur-2xl"}),(0,y.jsx)("div",{className:"relative",children:(0,y.jsx)("div",{className:`h-16 w-16 rounded-full bg-gradient-to-br from-amber-500/30 to-rose-500/20 flex items-center justify-center mx-auto ${w?"animate-pulse":""}`,style:{boxShadow:"0 0 30px rgba(251,191,36,0.3)"},children:(0,y.jsx)(b9,{className:"h-7 w-7 text-amber-300"})})}),(0,y.jsxs)("div",{className:"text-center space-y-1",children:[(0,y.jsx)("p",{className:"text-sm font-medium text-amber-100",children:"深入以太遗迹"}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground/80 max-w-[220px]",children:"程序化生成的遗迹路径,沿途遭遇战斗、宝藏、抉择与解谜,击败终点 BOSS 获取丰厚奖励。"})]}),(0,y.jsxs)(bZ,{onClick:()=>{let a=i();a.ok?(bO("expeditionStart"),m({title:"探险队出发",description:"深入遗迹,谨慎前行。"}),o(null)):m({title:"无法出发",description:a.reason,variant:"destructive"})},disabled:!w,className:"bg-gradient-to-r from-amber-600 to-rose-500 hover:from-amber-500 hover:to-rose-400 text-white border-0",children:[(0,y.jsx)(b9,{className:"h-4 w-4 mr-1.5"}),w?`出发(消耗 1 能量)`:`能量不足(${v}s 后恢复)`]})]}),e.length>0&&(0,y.jsxs)("div",{className:"rounded-xl border border-white/5 bg-black/20 p-2 max-h-28 overflow-y-auto echo-scroll",children:[(0,y.jsx)("div",{className:"text-[10px] text-muted-foreground/60 mb-1 px-1",children:"最近探险记录"}),e.slice(0,4).map((a,b)=>(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground/70 px-1 py-0.5 border-b border-white/5 last:border-0",children:[(0,y.jsx)("span",{className:"text-amber-300/60",children:""})," ",a.result,a.rewards&&(0,y.jsx)("span",{className:"text-emerald-300/70 ml-1",children:a.rewards})]},b))]})]});let x=a.nodes[a.currentNode],A=e2[x.type],B=A.icon,C=a.hp/a.maxHp*100,D=(a.currentNode+ +!!x.cleared)/a.nodes.length*100;return(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex flex-col gap-2.5 h-full",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,y.jsx)(b9,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-xs font-semibold",children:"遗迹探险"}),(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:["第 ",a.currentNode+1,"/",a.nodes.length," 节点"]})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:"探险力"}),(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-xs font-mono font-semibold text-amber-300",children:a.power})]})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center justify-between mb-0.5",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1",children:[(0,y.jsx)(e$,{className:"h-3 w-3 text-rose-400"}),(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:"探险队生命"})]}),(0,y.jsxs)("span",{className:`jsx-df1c681cdb543264 text-[10px] font-mono ${C<30?"text-rose-400":"text-foreground"}`,children:[a.hp," / ",a.maxHp]})]}),(0,y.jsx)(bF,{value:C,className:"h-1.5 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-rose-500 [&>div]:to-emerald-400"})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 rounded-xl border border-white/10 bg-black/30 p-2.5",children:[(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1 overflow-x-auto echo-scroll pb-1",children:a.nodes.map((b,c)=>{let d=e2[b.type],e=d.icon,f=c===a.currentNode,g=b.cleared,h=c<a.currentNode;return(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center shrink-0",children:[(0,y.jsxs)("div",{style:{background:g||h?"rgba(255,255,255,0.04)":d.bg,border:f?`1.5px solid ${d.color}`:"1px solid rgba(255,255,255,0.08)",boxShadow:f?`0 0 12px ${d.color}66`:"none"},title:`${d.label} \xb7 ${b.title}`,className:`jsx-df1c681cdb543264 relative h-9 w-9 rounded-lg flex items-center justify-center transition-all duration-300 ${f?"scale-125":""}`,children:[(0,y.jsx)(e,{style:{color:g||h?"#666":d.color},className:`jsx-df1c681cdb543264 h-4 w-4 ${g||h?"opacity-30":""}`}),g&&(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 absolute -top-1 -right-1 h-3 w-3 rounded-full bg-emerald-500/80 flex items-center justify-center",children:(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-[8px] text-white",children:"✓"})})]}),c<a.nodes.length-1&&(0,y.jsx)(e0,{className:`h-3 w-3 mx-0.5 ${h||f&&g?"text-amber-400/60":"text-white/15"}`})]},b.id)})}),(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 mt-1.5",children:(0,y.jsx)(bF,{value:D,className:"h-1 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-amber-500 [&>div]:to-rose-400"})})]}),(0,y.jsxs)("div",{style:{borderColor:`${A.color}44`,background:`linear-gradient(135deg, ${A.color}11, rgba(0,0,0,0.4))`,boxShadow:`0 0 20px ${A.color}22`},className:"jsx-df1c681cdb543264 rounded-xl border p-3 relative overflow-hidden",children:[(0,y.jsx)("div",{style:{background:`${A.color}22`},className:"jsx-df1c681cdb543264 absolute -top-8 -right-8 h-24 w-24 rounded-full blur-2xl"}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 relative",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-2 mb-1.5",children:[(0,y.jsx)("div",{style:{background:A.bg,border:`1px solid ${A.color}44`},className:"jsx-df1c681cdb543264 h-8 w-8 rounded-lg flex items-center justify-center",children:(0,y.jsx)(B,{style:{color:A.color},className:"jsx-df1c681cdb543264 h-4 w-4"})}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,y.jsx)("span",{style:{background:A.bg,color:A.color},className:"jsx-df1c681cdb543264 text-[10px] font-mono px-1.5 py-0.5 rounded",children:A.label}),"combat"===x.type&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:["胜率 ",Math.round(100*aD(a.power,x.difficulty)),"%"]}),x.difficulty>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground/60",children:["难度 ",x.difficulty]})]}),(0,y.jsx)("h4",{style:{color:A.color},className:"jsx-df1c681cdb543264 text-sm font-semibold mt-0.5",children:x.title})]})]}),(0,y.jsx)("p",{className:"jsx-df1c681cdb543264 text-[11px] text-muted-foreground/90 leading-relaxed",children:x.desc}),n&&(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 mt-2 px-2 py-1.5 rounded-lg bg-black/40 border border-white/10",children:(0,y.jsx)("p",{className:"jsx-df1c681cdb543264 text-[11px] text-foreground/90",children:n})})]})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[x.cleared?a.currentNode<a.nodes.length-1?(0,y.jsxs)(bZ,{onClick:()=>{k(),o(null)},className:"flex-1 h-8",variant:"outline",children:[(0,y.jsx)(e0,{className:"h-3.5 w-3.5 mr-1"}),"前进"]}):(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 flex-1 text-center text-xs text-emerald-300 py-1.5",children:"探险已完成 ✓"}):(0,y.jsxs)(bZ,{onClick:()=>{let a=j();a&&(o(a.log),a.ended?"victory"===a.endReason?bO("expeditionVictory"):bO("expeditionDefeat"):bO("expeditionNode"),m({title:a.ended?"victory"===a.endReason?"✦ 探险胜利!":"探险失败":"节点结算",description:a.log,variant:"defeat"===a.endReason?"destructive":"default"}))},className:"flex-1 bg-gradient-to-r from-amber-600 to-rose-500 hover:from-amber-500 hover:to-rose-400 text-white border-0 h-8",children:[(0,y.jsx)(b_,{className:"h-3.5 w-3.5 mr-1"}),"探索节点"]}),(0,y.jsx)(bZ,{onClick:()=>{l(),m({title:"探险队撤退",description:"保留已获奖励,安全返回。"}),o(null)},variant:"ghost",size:"sm",className:"h-8 px-2 text-muted-foreground hover:text-rose-300",children:(0,y.jsx)(e1,{className:"h-3.5 w-3.5"})})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-2 text-[10px] px-1",children:[(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-muted-foreground/60",children:"本次已获:"}),a.rewards.crystals>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-emerald-300",children:[Q(a.rewards.crystals),"晶体"]}),a.rewards.insights>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-amber-300",children:[a.rewards.insights,"洞见"]}),a.rewards.contact>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-fuchsia-300",children:[a.rewards.contact.toFixed(1),"接触"]}),0===a.rewards.crystals&&0===a.rewards.insights&&(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-muted-foreground/40",children:"暂无"})]}),(0,y.jsx)(bI.default,{id:"df1c681cdb543264",children:".echo-scroll::-webkit-scrollbar{width:4px;height:4px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.echo-scroll::-webkit-scrollbar-track{background:0 0}"})]})}let e4=(0,bd.default)("trophy",[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]]),e5=(0,bd.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),e6=[{key:"all",label:"全部",color:"#a78bfa"},{key:"unlocked",label:"已解锁",color:"#34d399"},{key:"locked",label:"未解锁",color:"#fb7185"}];function e7(){let a=bc(a=>a.achievements),[b,c]=(0,z.useState)("all"),d=Object.values(a).filter(Boolean).length,e=S(a),f=R.length,g=f>0?d/f*100:0,h=(0,z.useMemo)(()=>R.filter(c=>{let d=!!a[c.id];return"unlocked"===b?d:"locked"!==b||!d}),[a,b]);return(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex flex-col gap-2.5 h-full min-h-0",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center justify-between gap-2",children:[(0,y.jsxs)("h3",{className:"jsx-89979d12e77b884d text-sm font-semibold flex items-center gap-1.5 shrink-0",children:[(0,y.jsx)(e4,{className:"h-4 w-4 text-amber-400"}),"成就"]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-2 text-[10px] font-mono",children:[(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-amber-300",children:d}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/50",children:"/"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground",children:f}),(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:["(",g.toFixed(0),"%)"]})]})]}),(0,y.jsx)("div",{className:"jsx-89979d12e77b884d h-1 rounded-full bg-black/40 overflow-hidden",children:(0,y.jsx)("div",{style:{width:`${g}%`,boxShadow:"0 0 8px rgba(251,191,36,0.5)"},className:"jsx-89979d12e77b884d h-full bg-gradient-to-r from-amber-500 via-rose-400 to-fuchsia-400 transition-all duration-500"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d rounded-lg border border-amber-400/20 bg-amber-950/20 px-2.5 py-1.5 flex items-center gap-2 text-[10px] flex-wrap",children:[(0,y.jsx)(b_,{className:"h-3 w-3 text-amber-400 shrink-0"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-amber-300/80",children:"永久加成"}),e.crystalsPerSecPct>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-emerald-300",children:["产能 +",e.crystalsPerSecPct,"%"]}),e.insightPct>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300",children:["洞见 +",e.insightPct,"%"]}),0===e.crystalsPerSecPct&&0===e.insightPct&&(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:"达成成就解锁永久加成"})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-1 text-[10px]",children:[(0,y.jsx)(e5,{className:"h-3 w-3 text-muted-foreground/60 shrink-0"}),e6.map(a=>{let e=b===a.key,g="all"===a.key?f:"unlocked"===a.key?d:f-d;return(0,y.jsxs)("button",{onClick:()=>c(a.key),style:e?{color:a.color,boxShadow:`inset 0 0 0 1px ${a.color}55`}:void 0,className:`jsx-89979d12e77b884d px-2 py-0.5 rounded-md transition-all ${e?"bg-white/10 text-foreground":"text-muted-foreground/70 hover:text-foreground hover:bg-white/5"}`,children:[a.label,(0,y.jsx)("span",{className:"jsx-89979d12e77b884d ml-1 font-mono opacity-70",children:g})]},a.key)})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex-1 min-h-0 overflow-y-auto echo-scroll pr-1 space-y-1.5",children:[0===h.length&&(0,y.jsx)("div",{className:"jsx-89979d12e77b884d text-center text-[11px] text-muted-foreground/60 py-6",children:"该分类下暂无成就"}),h.map(b=>{let c=!!a[b.id];return(0,y.jsxs)("div",{style:c?{boxShadow:`inset 0 0 14px ${b.color}10`}:void 0,className:`jsx-89979d12e77b884d relative rounded-lg border px-2.5 py-2 transition-all duration-300 min-h-[68px] flex items-center ${c?"border-white/15 bg-black/30":"border-white/5 bg-black/15 opacity-70"}`,children:[c&&(0,y.jsx)("div",{style:{background:b.color},className:"jsx-89979d12e77b884d absolute -top-6 -right-6 h-16 w-16 rounded-full blur-2xl opacity-40 pointer-events-none"}),(0,y.jsx)("div",{style:{background:c?`${b.color}22`:"rgba(255,255,255,0.04)",border:`1px solid ${c?b.color+"55":"rgba(255,255,255,0.08)"}`,color:c?b.color:"#666",boxShadow:c?`0 0 10px ${b.color}33`:"none"},className:"jsx-89979d12e77b884d shrink-0 h-10 w-10 rounded-lg flex items-center justify-center text-lg mr-2.5",children:c?b.icon:(0,y.jsx)(cb,{className:"h-4 w-4"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d min-w-0 flex-1 flex flex-col gap-0.5",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-1.5",children:[(0,y.jsx)("span",{style:{color:c?b.color:"rgba(255,255,255,0.5)"},className:"jsx-89979d12e77b884d text-[11px] font-semibold truncate",children:b.name}),c&&(0,y.jsx)("span",{style:{background:`${b.color}22`,color:b.color},className:"jsx-89979d12e77b884d text-[8px] px-1 py-0 rounded shrink-0 font-mono",children:"✓"})]}),(0,y.jsx)("div",{className:"jsx-89979d12e77b884d text-[10px] text-muted-foreground/80 leading-tight line-clamp-2",children:b.desc}),c&&(0,y.jsxs)("div",{style:{color:b.color+"cc"},className:"jsx-89979d12e77b884d text-[9px] mt-0.5 font-mono truncate",children:["✦ ",b.rewardText]})]})]},b.id)})]}),(0,y.jsx)(bI.default,{id:"89979d12e77b884d",children:".echo-scroll::-webkit-scrollbar{width:5px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}"})]})}let e8=(0,z.createContext)({});function e9(a){let b=(0,z.useRef)(null);return null===b.current&&(b.current=a()),b.current}let fa=z.useEffect,fb=(0,z.createContext)(null);function fc(a){return"object"==typeof a&&null!==a}function fd(a){return fc(a)&&"offsetHeight"in a}var fe=z;let ff=(0,z.createContext)({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"});function fg(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class fh extends fe.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=fd(a)&&a.offsetWidth||0,d=this.props.sizeRef.current;d.height=b.offsetHeight||0,d.width=b.offsetWidth||0,d.top=b.offsetTop,d.left=b.offsetLeft,d.right=c-d.width-d.left}return null}componentDidUpdate(){}render(){return this.props.children}}function fi({children:a,isPresent:b,anchorX:c,root:d}){let e=(0,fe.useId)(),f=(0,fe.useRef)(null),g=(0,fe.useRef)({width:0,height:0,top:0,left:0,right:0}),{nonce:h}=(0,fe.useContext)(ff),i=function(...a){return z.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=fg(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():fg(a[b],null)}}}}(...a),a)}(f,a.props?.ref??a?.ref);return(0,fe.useInsertionEffect)(()=>{let{width:a,height:i,top:j,left:k,right:l}=g.current;if(b||!f.current||!a||!i)return;let m="left"===c?`left: ${k}`:`right: ${l}`;f.current.dataset.motionPopId=e;let n=document.createElement("style");h&&(n.nonce=h);let o=d??document.head;return o.appendChild(n),n.sheet&&n.sheet.insertRule(`
[data-motion-pop-id="${e}"] {
position: absolute !important;
width: ${a}px !important;
height: ${i}px !important;
${m}px !important;
top: ${j}px !important;
}
`),()=>{o.contains(n)&&o.removeChild(n)}},[b]),(0,y.jsx)(fh,{isPresent:b,childRef:f,sizeRef:g,children:fe.cloneElement(a,{ref:i})})}let fj=({children:a,initial:b,isPresent:c,onExitComplete:d,custom:e,presenceAffectsLayout:f,mode:g,anchorX:h,root:i})=>{let j=e9(fk),k=(0,z.useId)(),l=!0,m=(0,z.useMemo)(()=>(l=!1,{id:k,initial:b,isPresent:c,custom:e,onExitComplete:a=>{for(let b of(j.set(a,!0),j.values()))if(!b)return;d&&d()},register:a=>(j.set(a,!1),()=>j.delete(a))}),[c,j,d]);return f&&l&&(m={...m}),(0,z.useMemo)(()=>{j.forEach((a,b)=>j.set(b,!1))},[c]),z.useEffect(()=>{c||j.size||!d||d()},[c]),"popLayout"===g&&(a=(0,y.jsx)(fi,{isPresent:c,anchorX:h,root:i,children:a})),(0,y.jsx)(fb.Provider,{value:m,children:a})};function fk(){return new Map}function fl(a=!0){let b=(0,z.useContext)(fb);if(null===b)return[!0,null];let{isPresent:c,onExitComplete:d,register:e}=b,f=(0,z.useId)();(0,z.useEffect)(()=>{if(a)return e(f)},[a]);let g=(0,z.useCallback)(()=>a&&d&&d(f),[f,d,a]);return!c&&d?[!1,g]:[!0]}let fm=a=>a.key||"";function fn(a){let b=[];return z.Children.forEach(a,a=>{(0,z.isValidElement)(a)&&b.push(a)}),b}let fo=({children:a,custom:b,initial:c=!0,onExitComplete:d,presenceAffectsLayout:e=!0,mode:f="sync",propagate:g=!1,anchorX:h="left",root:i})=>{let[j,k]=fl(g),l=(0,z.useMemo)(()=>fn(a),[a]),m=g&&!j?[]:l.map(fm),n=(0,z.useRef)(!0),o=(0,z.useRef)(l),p=e9(()=>new Map),q=(0,z.useRef)(new Set),[r,s]=(0,z.useState)(l),[t,u]=(0,z.useState)(l);fa(()=>{n.current=!1,o.current=l;for(let a=0;a<t.length;a++){let b=fm(t[a]);m.includes(b)?(p.delete(b),q.current.delete(b)):!0!==p.get(b)&&p.set(b,!1)}},[t,m.length,m.join("-")]);let v=[];if(l!==r){let a=[...l];for(let b=0;b<t.length;b++){let c=t[b],d=fm(c);m.includes(d)||(a.splice(b,0,c),v.push(c))}return"wait"===f&&v.length&&(a=v),u(fn(a)),s(l),null}let{forceRender:w}=(0,z.useContext)(e8);return(0,y.jsx)(y.Fragment,{children:t.map(a=>{let r=fm(a),s=(!g||!!j)&&(l===t||m.includes(r));return(0,y.jsx)(fj,{isPresent:s,initial:(!n.current||!!c)&&void 0,custom:b,presenceAffectsLayout:e,mode:f,root:i,onExitComplete:s?void 0:()=>{if(q.current.has(r)||(q.current.add(r),!p.has(r)))return;p.set(r,!0);let a=!0;p.forEach(b=>{b||(a=!1)}),a&&(w?.(),u(o.current),g&&k?.(),d&&d())},anchorX:h,children:a},r)})})},fp=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],fq=new Set(fp),fr=(a,b,c)=>c>b?b:c<a?a:c,fs={test:a=>"number"==typeof a,parse:parseFloat,transform:a=>a},ft={...fs,transform:a=>fr(0,1,a)},fu={...fs,default:1},fv=a=>Math.round(1e5*a)/1e5,fw=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,fx=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,fy=(a,b)=>c=>!!("string"==typeof c&&fx.test(c)&&c.startsWith(a)||b&&null!=c&&Object.prototype.hasOwnProperty.call(c,b)),fz=(a,b,c)=>d=>{if("string"!=typeof d)return d;let[e,f,g,h]=d.match(fw);return{[a]:parseFloat(e),[b]:parseFloat(f),[c]:parseFloat(g),alpha:void 0!==h?parseFloat(h):1}},fA={...fs,transform:a=>Math.round(fr(0,255,a))},fB={test:fy("rgb","red"),parse:fz("red","green","blue"),transform:({red:a,green:b,blue:c,alpha:d=1})=>"rgba("+fA.transform(a)+", "+fA.transform(b)+", "+fA.transform(c)+", "+fv(ft.transform(d))+")"},fC={test:fy("#"),parse:function(a){let b="",c="",d="",e="";return a.length>5?(b=a.substring(1,3),c=a.substring(3,5),d=a.substring(5,7),e=a.substring(7,9)):(b=a.substring(1,2),c=a.substring(2,3),d=a.substring(3,4),e=a.substring(4,5),b+=b,c+=c,d+=d,e+=e),{red:parseInt(b,16),green:parseInt(c,16),blue:parseInt(d,16),alpha:e?parseInt(e,16)/255:1}},transform:fB.transform},fD=a=>({test:b=>"string"==typeof b&&b.endsWith(a)&&1===b.split(" ").length,parse:parseFloat,transform:b=>`${b}${a}`}),fE=fD("deg"),fF=fD("%"),fG=fD("px"),fH=fD("vh"),fI=fD("vw"),fJ={...fF,parse:a=>fF.parse(a)/100,transform:a=>fF.transform(100*a)},fK={test:fy("hsl","hue"),parse:fz("hue","saturation","lightness"),transform:({hue:a,saturation:b,lightness:c,alpha:d=1})=>"hsla("+Math.round(a)+", "+fF.transform(fv(b))+", "+fF.transform(fv(c))+", "+fv(ft.transform(d))+")"},fL={test:a=>fB.test(a)||fC.test(a)||fK.test(a),parse:a=>fB.test(a)?fB.parse(a):fK.test(a)?fK.parse(a):fC.parse(a),transform:a=>"string"==typeof a?a:a.hasOwnProperty("red")?fB.transform(a):fK.transform(a),getAnimatableNone:a=>{let b=fL.parse(a);return b.alpha=0,fL.transform(b)}},fM=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,fN="number",fO="color",fP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function fQ(a){let b=a.toString(),c=[],d={color:[],number:[],var:[]},e=[],f=0,g=b.replace(fP,a=>(fL.test(a)?(d.color.push(f),e.push(fO),c.push(fL.parse(a))):a.startsWith("var(")?(d.var.push(f),e.push("var"),c.push(a)):(d.number.push(f),e.push(fN),c.push(parseFloat(a))),++f,"${}")).split("${}");return{values:c,split:g,indexes:d,types:e}}function fR(a){return fQ(a).values}function fS(a){let{split:b,types:c}=fQ(a),d=b.length;return a=>{let e="";for(let f=0;f<d;f++)if(e+=b[f],void 0!==a[f]){let b=c[f];b===fN?e+=fv(a[f]):b===fO?e+=fL.transform(a[f]):e+=a[f]}return e}}let fT=a=>"number"==typeof a?0:fL.test(a)?fL.getAnimatableNone(a):a,fU={test:function(a){return isNaN(a)&&"string"==typeof a&&(a.match(fw)?.length||0)+(a.match(fM)?.length||0)>0},parse:fR,createTransformer:fS,getAnimatableNone:function(a){let b=fR(a);return fS(a)(b.map(fT))}},fV=new Set(["brightness","contrast","saturate","opacity"]);function fW(a){let[b,c]=a.slice(0,-1).split("(");if("drop-shadow"===b)return a;let[d]=c.match(fw)||[];if(!d)return a;let e=c.replace(d,""),f=+!!fV.has(b);return d!==c&&(f*=100),b+"("+f+e+")"}let fX=/\b([a-z-]*)\(.*?\)/gu,fY={...fU,getAnimatableNone:a=>{let b=a.match(fX);return b?b.map(fW).join(" "):a}},fZ={...fs,transform:Math.round},f$={borderWidth:fG,borderTopWidth:fG,borderRightWidth:fG,borderBottomWidth:fG,borderLeftWidth:fG,borderRadius:fG,radius:fG,borderTopLeftRadius:fG,borderTopRightRadius:fG,borderBottomRightRadius:fG,borderBottomLeftRadius:fG,width:fG,maxWidth:fG,height:fG,maxHeight:fG,top:fG,right:fG,bottom:fG,left:fG,inset:fG,insetBlock:fG,insetBlockStart:fG,insetBlockEnd:fG,insetInline:fG,insetInlineStart:fG,insetInlineEnd:fG,padding:fG,paddingTop:fG,paddingRight:fG,paddingBottom:fG,paddingLeft:fG,paddingBlock:fG,paddingBlockStart:fG,paddingBlockEnd:fG,paddingInline:fG,paddingInlineStart:fG,paddingInlineEnd:fG,margin:fG,marginTop:fG,marginRight:fG,marginBottom:fG,marginLeft:fG,marginBlock:fG,marginBlockStart:fG,marginBlockEnd:fG,marginInline:fG,marginInlineStart:fG,marginInlineEnd:fG,backgroundPositionX:fG,backgroundPositionY:fG,rotate:fE,rotateX:fE,rotateY:fE,rotateZ:fE,scale:fu,scaleX:fu,scaleY:fu,scaleZ:fu,skew:fE,skewX:fE,skewY:fE,distance:fG,translateX:fG,translateY:fG,translateZ:fG,x:fG,y:fG,z:fG,perspective:fG,transformPerspective:fG,opacity:ft,originX:fJ,originY:fJ,originZ:fG,zIndex:fZ,fillOpacity:ft,strokeOpacity:ft,numOctaves:fZ},f_={...f$,color:fL,backgroundColor:fL,outlineColor:fL,fill:fL,stroke:fL,borderColor:fL,borderTopColor:fL,borderRightColor:fL,borderBottomColor:fL,borderLeftColor:fL,filter:fY,WebkitFilter:fY},f0=a=>f_[a],f1=()=>({translate:0,scale:1,origin:0,originPoint:0}),f2=()=>({x:f1(),y:f1()}),f3=()=>({min:0,max:0}),f4=()=>({x:f3(),y:f3()}),f5=a=>!!(a&&a.getVelocity),f6=new Set(["width","height","top","left","right","bottom",...fp]),f7=a=>b=>b.test(a),f8=[fs,fG,fF,fE,fI,fH,{test:a=>"auto"===a,parse:a=>a}],f9=a=>f8.find(f7(a)),ga=()=>{},gb=()=>{},gc=a=>b=>"string"==typeof b&&b.startsWith(a),gd=gc("--"),ge=gc("var(--"),gf=a=>!!ge(a)&&gg.test(a.split("/*")[0].trim()),gg=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function gh(a){return"string"==typeof a&&a.split("/*")[0].includes("var(--")}let gi=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,gj=a=>180*a/Math.PI,gk=a=>gm(gj(Math.atan2(a[1],a[0]))),gl={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:gk,rotateZ:gk,skewX:a=>gj(Math.atan(a[1])),skewY:a=>gj(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},gm=a=>((a%=360)<0&&(a+=360),a),gn=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),go=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),gp={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:gn,scaleY:go,scale:a=>(gn(a)+go(a))/2,rotateX:a=>gm(gj(Math.atan2(a[6],a[5]))),rotateY:a=>gm(gj(Math.atan2(-a[2],a[0]))),rotateZ:gk,rotate:gk,skewX:a=>gj(Math.atan(a[4])),skewY:a=>gj(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function gq(a){return+!!a.includes("scale")}function gr(a,b){let c,d;if(!a||"none"===a)return gq(b);let e=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(e)c=gp,d=e;else{let b=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);c=gl,d=b}if(!d)return gq(b);let f=c[b],g=d[1].split(",").map(gs);return"function"==typeof f?f(g):g[f]}function gs(a){return parseFloat(a.trim())}let gt=a=>a===fs||a===fG,gu=new Set(["x","y","z"]),gv=fp.filter(a=>!gu.has(a)),gw={width:({x:a},{paddingLeft:b="0",paddingRight:c="0"})=>a.max-a.min-parseFloat(b)-parseFloat(c),height:({y:a},{paddingTop:b="0",paddingBottom:c="0"})=>a.max-a.min-parseFloat(b)-parseFloat(c),top:(a,{top:b})=>parseFloat(b),left:(a,{left:b})=>parseFloat(b),bottom:({y:a},{top:b})=>parseFloat(b)+(a.max-a.min),right:({x:a},{left:b})=>parseFloat(b)+(a.max-a.min),x:(a,{transform:b})=>gr(b,"x"),y:(a,{transform:b})=>gr(b,"y")};gw.translateX=gw.x,gw.translateY=gw.y;let gx=a=>a,gy={},gz=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function gA(a,b){let c=!1,d=!0,e={delta:0,timestamp:0,isProcessing:!1},f=()=>c=!0,g=gz.reduce((a,c)=>(a[c]=function(a,b){let c=new Set,d=new Set,e=!1,f=!1,g=new WeakSet,h={delta:0,timestamp:0,isProcessing:!1},i=0;function j(b){g.has(b)&&(k.schedule(b),a()),i++,b(h)}let k={schedule:(a,b=!1,f=!1)=>{let h=f&&e?c:d;return b&&g.add(a),h.has(a)||h.add(a),a},cancel:a=>{d.delete(a),g.delete(a)},process:a=>{if(h=a,e){f=!0;return}e=!0,[c,d]=[d,c],c.forEach(j),b,i=0,c.clear(),e=!1,f&&(f=!1,k.process(a))}};return k}(f,b?c:void 0),a),{}),{setup:h,read:i,resolveKeyframes:j,preUpdate:k,update:l,preRender:m,render:n,postRender:o}=g,p=()=>{let f=gy.useManualTiming?e.timestamp:performance.now();c=!1,gy.useManualTiming||(e.delta=d?1e3/60:Math.max(Math.min(f-e.timestamp,40),1)),e.timestamp=f,e.isProcessing=!0,h.process(e),i.process(e),j.process(e),k.process(e),l.process(e),m.process(e),n.process(e),o.process(e),e.isProcessing=!1,c&&b&&(d=!1,a(p))};return{schedule:gz.reduce((b,f)=>{let h=g[f];return b[f]=(b,f=!1,g=!1)=>(!c&&(c=!0,d=!0,e.isProcessing||a(p)),h.schedule(b,f,g)),b},{}),cancel:a=>{for(let b=0;b<gz.length;b++)g[gz[b]].cancel(a)},state:e,steps:g}}let{schedule:gB,cancel:gC,state:gD,steps:gE}=gA("u">typeof requestAnimationFrame?requestAnimationFrame:gx,!0),gF=new Set,gG=!1,gH=!1,gI=!1;function gJ(){if(gH){let a=Array.from(gF).filter(a=>a.needsMeasurement),b=new Set(a.map(a=>a.element)),c=new Map;b.forEach(a=>{let b,d=(b=[],gv.forEach(c=>{let d=a.getValue(c);void 0!==d&&(b.push([c,d.get()]),d.set(+!!c.startsWith("scale")))}),b);d.length&&(c.set(a,d),a.render())}),a.forEach(a=>a.measureInitialState()),b.forEach(a=>{a.render();let b=c.get(a);b&&b.forEach(([b,c])=>{a.getValue(b)?.set(c)})}),a.forEach(a=>a.measureEndState()),a.forEach(a=>{void 0!==a.suspendedScrollY&&window.scrollTo(0,a.suspendedScrollY)})}gH=!1,gG=!1,gF.forEach(a=>a.complete(gI)),gF.clear()}function gK(){gF.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(gH=!0)})}class gL{constructor(a,b,c,d,e,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...a],this.onComplete=b,this.name=c,this.motionValue=d,this.element=e,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(gF.add(this),gG||(gG=!0,gB.read(gK),gB.resolveKeyframes(gJ))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:a,name:b,element:c,motionValue:d}=this;if(null===a[0]){let e=d?.get(),f=a[a.length-1];if(void 0!==e)a[0]=e;else if(c&&b){let d=c.readValue(b,f);null!=d&&(a[0]=d)}void 0===a[0]&&(a[0]=f),d&&void 0===e&&d.set(a[0])}for(let b=1;b<a.length;b++)a[b]??(a[b]=a[b-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(a=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,a),gF.delete(this)}cancel(){"scheduled"===this.state&&(gF.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}function gM(a,b){let c=f0(a);return c!==fY&&(c=fU),c.getAnimatableNone?c.getAnimatableNone(b):void 0}let gN=new Set(["auto","none","0"]);class gO extends gL{constructor(a,b,c,d,e){super(a,b,c,d,e,!0)}readKeyframes(){let{unresolvedKeyframes:a,element:b,name:c}=this;if(!b||!b.current)return;super.readKeyframes();for(let c=0;c<a.length;c++){let d=a[c];if("string"==typeof d&&gf(d=d.trim())){let e=function a(b,c,d=1){gb(d<=4,`Max CSS variable fallback depth detected in property "${b}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[e,f]=function(a){let b=gi.exec(a);if(!b)return[,];let[,c,d,e]=b;return[`--${c??d}`,e]}(b);if(!e)return;let g=window.getComputedStyle(c).getPropertyValue(e);if(g){let a=g.trim();return/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a)?parseFloat(a):a}return gf(f)?a(f,c,d+1):f}(d,b.current);void 0!==e&&(a[c]=e),c===a.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!f6.has(c)||2!==a.length)return;let[d,e]=a,f=f9(d),g=f9(e);if(gh(d)!==gh(e)&&gw[c]){this.needsMeasurement=!0;return}if(f!==g)if(gt(f)&&gt(g))for(let b=0;b<a.length;b++){let c=a[b];"string"==typeof c&&(a[b]=parseFloat(c))}else gw[c]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:a,name:b}=this,c=[];for(let b=0;b<a.length;b++)(null===a[b]||function(a){if("number"==typeof a)return 0===a;if(null===a)return!0;return"none"===a||"0"===a||/^0[^.\s]+$/u.test(a)}(a[b]))&&c.push(b);c.length&&function(a,b,c){let d,e=0;for(;e<a.length&&!d;){let b=a[e];"string"==typeof b&&!gN.has(b)&&fQ(b).values.length&&(d=a[e]),e++}if(d&&c)for(let e of b)a[e]=gM(c,d)}(a,c,b)}measureInitialState(){let{element:a,unresolvedKeyframes:b,name:c}=this;if(!a||!a.current)return;"height"===c&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=gw[c](a.measureViewportBox(),window.getComputedStyle(a.current)),b[0]=this.measuredOrigin;let d=b[b.length-1];void 0!==d&&a.getValue(c,d).jump(d,!1)}measureEndState(){let{element:a,name:b,unresolvedKeyframes:c}=this;if(!a||!a.current)return;let d=a.getValue(b);d&&d.jump(this.measuredOrigin,!1);let e=c.length-1,f=c[e];c[e]=gw[b](a.measureViewportBox(),window.getComputedStyle(a.current)),null!==f&&void 0===this.finalKeyframe&&(this.finalKeyframe=f),this.removedTransforms?.length&&this.removedTransforms.forEach(([b,c])=>{a.getValue(b).set(c)}),this.resolveNoneKeyframes()}}function gP(a,b){-1===a.indexOf(b)&&a.push(b)}function gQ(a,b){let c=a.indexOf(b);c>-1&&a.splice(c,1)}class gR{constructor(){this.subscriptions=[]}add(a){return gP(this.subscriptions,a),()=>gQ(this.subscriptions,a)}notify(a,b,c){let d=this.subscriptions.length;if(d)if(1===d)this.subscriptions[0](a,b,c);else for(let e=0;e<d;e++){let d=this.subscriptions[e];d&&d(a,b,c)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}let{schedule:gS}=gA(queueMicrotask,!1);function gT(){b=void 0}let gU={now:()=>(void 0===b&&gU.set(gD.isProcessing||gy.useManualTiming?gD.timestamp:performance.now()),b),set:a=>{b=a,queueMicrotask(gT)}};class gV{constructor(a,b={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{let b=gU.now();if(this.updatedAt!==b&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(a),this.owner=b.owner}setCurrent(a){this.current=a,this.updatedAt=gU.now(),null===this.canTrackVelocity&&void 0!==a&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(a=this.current){this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt}onChange(a){return this.on("change",a)}on(a,b){this.events[a]||(this.events[a]=new gR);let c=this.events[a].add(b);return"change"===a?()=>{c(),gB.read(()=>{this.events.change.getSize()||this.stop()})}:c}clearListeners(){for(let a in this.events)this.events[a].clear()}attach(a,b){this.passiveEffect=a,this.stopPassiveEffect=b}set(a){this.passiveEffect?this.passiveEffect(a,this.updateAndNotify):this.updateAndNotify(a)}setWithVelocity(a,b,c){this.set(b),this.prev=void 0,this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt-c}jump(a,b=!0){this.updateAndNotify(a),this.prev=a,this.prevUpdatedAt=this.prevFrameValue=void 0,b&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(a){this.dependents||(this.dependents=new Set),this.dependents.add(a)}removeDependent(a){this.dependents&&this.dependents.delete(a)}get(){return n&&n.push(this),this.current}getPrevious(){return this.prev}getVelocity(){var a;let b=gU.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||b-this.updatedAt>30)return 0;let c=Math.min(this.updatedAt-this.prevUpdatedAt,30);return a=parseFloat(this.current)-parseFloat(this.prevFrameValue),c?1e3/c*a:0}start(a){return this.stop(),new Promise(b=>{this.hasAnimated=!0,this.animation=a(b),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function gW(a,b){return new gV(a,b)}let gX=[...f8,fL,fU],gY={current:!1},gZ=new WeakMap;function g$(a){return null!==a&&"object"==typeof a&&"function"==typeof a.start}function g_(a){return"string"==typeof a||Array.isArray(a)}let g0=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],g1=["initial",...g0];function g2(a){return g$(a.animate)||g1.some(b=>g_(a[b]))}function g3(a){return!!(g2(a)||a.variants)}function g4(a){let b=[{},{}];return a?.values.forEach((a,c)=>{b[0][c]=a.get(),b[1][c]=a.getVelocity()}),b}function g5(a,b,c,d){if("function"==typeof b){let[e,f]=g4(d);b=b(void 0!==c?c:a.custom,e,f)}if("string"==typeof b&&(b=a.variants&&a.variants[b]),"function"==typeof b){let[e,f]=g4(d);b=b(void 0!==c?c:a.custom,e,f)}return b}let g6=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],g7={};class g8{scrapeMotionValuesFromProps(a,b,c){return{}}constructor({parent:a,props:b,presenceContext:c,reducedMotionConfig:d,blockInitialAnimation:e,visualState:f},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=gL,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let a=gU.now();this.renderScheduledAt<a&&(this.renderScheduledAt=a,gB.render(this.render,!1,!0))};const{latestValues:h,renderState:i}=f;this.latestValues=h,this.baseTarget={...h},this.initialValues=b.initial?{...h}:{},this.renderState=i,this.parent=a,this.props=b,this.presenceContext=c,this.depth=a?a.depth+1:0,this.reducedMotionConfig=d,this.options=g,this.blockInitialAnimation=!!e,this.isControllingVariants=g2(b),this.isVariantNode=g3(b),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(a&&a.current);const{willChange:j,...k}=this.scrapeMotionValuesFromProps(b,{},this);for(const a in k){const b=k[a];void 0!==h[a]&&f5(b)&&b.set(h[a])}}mount(a){this.current=a,gZ.set(a,this),this.projection&&!this.projection.instance&&this.projection.mount(a),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,b)=>this.bindToMotionValue(b,a)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(gY.current||(gY.current=!0),this.shouldReduceMotion=null),this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){for(let a in this.projection&&this.projection.unmount(),gC(this.notifyUpdate),gC(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[a].clear();for(let a in this.features){let b=this.features[a];b&&(b.unmount(),b.isMounted=!1)}this.current=null}addChild(a){this.children.add(a),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(a)}removeChild(a){this.children.delete(a),this.enteringChildren&&this.enteringChildren.delete(a)}bindToMotionValue(a,b){let c;this.valueSubscriptions.has(a)&&this.valueSubscriptions.get(a)();let d=fq.has(a);d&&this.onBindTransform&&this.onBindTransform();let e=b.on("change",b=>{this.latestValues[a]=b,this.props.onUpdate&&gB.preRender(this.notifyUpdate),d&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});this.valueSubscriptions.set(a,()=>{e(),c&&c(),b.owner&&b.stop()})}sortNodePosition(a){return this.current&&this.sortInstanceNodePosition&&this.type===a.type?this.sortInstanceNodePosition(this.current,a.current):0}updateFeatures(){let a="animation";for(a in g7){let b=g7[a];if(!b)continue;let{isEnabled:c,Feature:d}=b;if(!this.features[a]&&d&&c(this.props)&&(this.features[a]=new d(this)),this.features[a]){let b=this.features[a];b.isMounted?b.update():(b.mount(),b.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):f4()}getStaticValue(a){return this.latestValues[a]}setStaticValue(a,b){this.latestValues[a]=b}update(a,b){(a.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=a,this.prevPresenceContext=this.presenceContext,this.presenceContext=b;for(let b=0;b<g6.length;b++){let c=g6[b];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);let d=a["on"+c];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=function(a,b,c){for(let d in b){let e=b[d],f=c[d];if(f5(e))a.addValue(d,e);else if(f5(f))a.addValue(d,gW(e,{owner:a}));else if(f!==e)if(a.hasValue(d)){let b=a.getValue(d);!0===b.liveStyle?b.jump(e):b.hasAnimated||b.set(e)}else{let b=a.getStaticValue(d);a.addValue(d,gW(void 0!==b?b:e,{owner:a}))}}for(let d in c)void 0===b[d]&&a.removeValue(d);return b}(this,this.scrapeMotionValuesFromProps(a,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(a){return this.props.variants?this.props.variants[a]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(a){let b=this.getClosestVariantNode();if(b)return b.variantChildren&&b.variantChildren.add(a),()=>b.variantChildren.delete(a)}addValue(a,b){let c=this.values.get(a);b!==c&&(c&&this.removeValue(a),this.bindToMotionValue(a,b),this.values.set(a,b),this.latestValues[a]=b.get())}removeValue(a){this.values.delete(a);let b=this.valueSubscriptions.get(a);b&&(b(),this.valueSubscriptions.delete(a)),delete this.latestValues[a],this.removeValueFromRenderState(a,this.renderState)}hasValue(a){return this.values.has(a)}getValue(a,b){if(this.props.values&&this.props.values[a])return this.props.values[a];let c=this.values.get(a);return void 0===c&&void 0!==b&&(c=gW(null===b?void 0:b,{owner:this}),this.addValue(a,c)),c}readValue(a,b){let c=void 0===this.latestValues[a]&&this.current?this.getBaseTargetFromProps(this.props,a)??this.readValueFromInstance(this.current,a,this.options):this.latestValues[a];if(null!=c){let d,e;if("string"==typeof c&&(d=c,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(d)||(e=c,/^0[^.\s]+$/u.test(e))))c=parseFloat(c);else{let d;d=c,!gX.find(f7(d))&&fU.test(b)&&(c=gM(a,b))}this.setBaseTarget(a,f5(c)?c.get():c)}return f5(c)?c.get():c}setBaseTarget(a,b){this.baseTarget[a]=b}getBaseTarget(a){let b,{initial:c}=this.props;if("string"==typeof c||"object"==typeof c){let d=g5(this.props,c,this.presenceContext?.custom);d&&(b=d[a])}if(c&&void 0!==b)return b;let d=this.getBaseTargetFromProps(this.props,a);return void 0===d||f5(d)?void 0!==this.initialValues[a]&&void 0===b?void 0:this.baseTarget[a]:d}on(a,b){return this.events[a]||(this.events[a]=new gR),this.events[a].add(b)}notify(a,...b){this.events[a]&&this.events[a].notify(...b)}scheduleRenderMicrotask(){gS.render(this.render)}}class g9 extends g8{constructor(){super(...arguments),this.KeyframeResolver=gO}sortInstanceNodePosition(a,b){return 2&a.compareDocumentPosition(b)?1:-1}getBaseTargetFromProps(a,b){let c=a.style;return c?c[b]:void 0}removeValueFromRenderState(a,{vars:b,style:c}){delete b[a],delete c[a]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:a}=this.props;f5(a)&&(this.childSubscription=a.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function ha(a){return a.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}let hb=(a,b)=>b&&"number"==typeof a?b.transform(a):a,hc={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},hd=fp.length;function he(a,b,c){let{style:d,vars:e,transformOrigin:f}=a,g=!1,h=!1;for(let a in b){let c=b[a];if(fq.has(a)){g=!0;continue}if(gd(a)){e[a]=c;continue}{let b=hb(c,f$[a]);a.startsWith("origin")?(h=!0,f[a]=b):d[a]=b}}if(!b.transform&&(g||c?d.transform=function(a,b,c){let d="",e=!0;for(let f=0;f<hd;f++){let g=fp[f],h=a[g];if(void 0===h)continue;let i=!0;if(!(i="number"==typeof h?h===+!!g.startsWith("scale"):0===parseFloat(h))||c){let a=hb(h,f$[g]);if(!i){e=!1;let b=hc[g]||g;d+=`${b}(${a}) `}c&&(b[g]=a)}}return d=d.trim(),c?d=c(b,e?"":d):e&&(d="none"),d}(b,a.transform,c):d.transform&&(d.transform="none")),h){let{originX:a="50%",originY:b="50%",originZ:c=0}=f;d.transformOrigin=`${a} ${b} ${c}`}}let hf={offset:"stroke-dashoffset",array:"stroke-dasharray"},hg={offset:"strokeDashoffset",array:"strokeDasharray"},hh=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function hi(a,{attrX:b,attrY:c,attrScale:d,pathLength:e,pathSpacing:f=1,pathOffset:g=0,...h},i,j,k){if(he(a,h,j),i){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};let{attrs:l,style:m}=a;for(let a of(l.transform&&(m.transform=l.transform,delete l.transform),(m.transform||l.transformOrigin)&&(m.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),m.transform&&(m.transformBox=k?.transformBox??"fill-box",delete l.transformBox),hh))void 0!==l[a]&&(m[a]=l[a],delete l[a]);void 0!==b&&(l.x=b),void 0!==c&&(l.y=c),void 0!==d&&(l.scale=d),void 0!==e&&function(a,b,c=1,d=0,e=!0){a.pathLength=1;let f=e?hf:hg;a[f.offset]=fG.transform(-d);let g=fG.transform(b),h=fG.transform(c);a[f.array]=`${g} ${h}`}(l,e,f,g,!1)}let hj=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"]),hk=a=>"string"==typeof a&&"svg"===a.toLowerCase();function hl(a,{style:b,vars:c},d,e){let f,g=a.style;for(f in b)g[f]=b[f];for(f in e?.applyProjectionStyles(g,d),c)g.setProperty(f,c[f])}function hm(a,b){return b.max===b.min?0:a/(b.max-b.min)*100}let hn={correct:(a,b)=>{if(!b.target)return a;if("string"==typeof a)if(!fG.test(a))return a;else a=parseFloat(a);let c=hm(a,b.target.x),d=hm(a,b.target.y);return`${c}% ${d}%`}},ho=(a,b,c)=>a+(b-a)*c,hp={borderRadius:{...hn,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:hn,borderTopRightRadius:hn,borderBottomLeftRadius:hn,borderBottomRightRadius:hn,boxShadow:{correct:(a,{treeScale:b,projectionDelta:c})=>{let d=fU.parse(a);if(d.length>5)return a;let e=fU.createTransformer(a),f=+("number"!=typeof d[0]),g=c.x.scale*b.x,h=c.y.scale*b.y;d[0+f]/=g,d[1+f]/=h;let i=ho(g,h,.5);return"number"==typeof d[2+f]&&(d[2+f]/=i),"number"==typeof d[3+f]&&(d[3+f]/=i),e(d)}}};function hq(a,{layout:b,layoutId:c}){return fq.has(a)||a.startsWith("origin")||(b||void 0!==c)&&(!!hp[a]||"opacity"===a)}function hr(a,b,c){let d=a.style,e=b?.style,f={};if(!d)return f;for(let b in d)(f5(d[b])||e&&f5(e[b])||hq(b,a)||c?.getValue(b)?.liveStyle!==void 0)&&(f[b]=d[b]);return f}function hs(a,b,c){let d=hr(a,b,c);for(let c in a)(f5(a[c])||f5(b[c]))&&(d[-1!==fp.indexOf(c)?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c]=a[c]);return d}class ht extends g9{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=f4}getBaseTargetFromProps(a,b){return a[b]}readValueFromInstance(a,b){if(fq.has(b)){let a=f0(b);return a&&a.default||0}return b=hj.has(b)?b:ha(b),a.getAttribute(b)}scrapeMotionValuesFromProps(a,b,c){return hs(a,b,c)}build(a,b,c){hi(a,b,this.isSVGTag,c.transformTemplate,c.style)}renderInstance(a,b,c,d){for(let c in hl(a,b,void 0,d),b.attrs)a.setAttribute(hj.has(c)?c:ha(c),b.attrs[c])}mount(a){this.isSVGTag=hk(a.tagName),super.mount(a)}}function hu({top:a,left:b,right:c,bottom:d}){return{x:{min:b,max:c},y:{min:a,max:d}}}function hv(a){return void 0===a||1===a}function hw({scale:a,scaleX:b,scaleY:c}){return!hv(a)||!hv(b)||!hv(c)}function hx(a){return hw(a)||hy(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function hy(a){var b,c;return(b=a.x)&&"0%"!==b||(c=a.y)&&"0%"!==c}function hz(a,b,c,d,e){return void 0!==e&&(a=d+e*(a-d)),d+c*(a-d)+b}function hA(a,b=0,c=1,d,e){a.min=hz(a.min,b,c,d,e),a.max=hz(a.max,b,c,d,e)}function hB(a,{x:b,y:c}){hA(a.x,b.translate,b.scale,b.originPoint),hA(a.y,c.translate,c.scale,c.originPoint)}function hC(a,b){a.min=a.min+b,a.max=a.max+b}function hD(a,b,c,d,e=.5){let f=ho(a.min,a.max,e);hA(a,b,c,f,d)}function hE(a,b){hD(a.x,b.x,b.scaleX,b.scale,b.originX),hD(a.y,b.y,b.scaleY,b.scale,b.originY)}function hF(a,b){return hu(function(a,b){if(!b)return a;let c=b({x:a.left,y:a.top}),d=b({x:a.right,y:a.bottom});return{top:c.y,left:c.x,bottom:d.y,right:d.x}}(a.getBoundingClientRect(),b))}class hG extends g9{constructor(){super(...arguments),this.type="html",this.renderInstance=hl}readValueFromInstance(a,b){if(fq.has(b))return this.projection?.isProjecting?gq(b):((a,b)=>{let{transform:c="none"}=getComputedStyle(a);return gr(c,b)})(a,b);{let c=window.getComputedStyle(a),d=(gd(b)?c.getPropertyValue(b):c[b])||0;return"string"==typeof d?d.trim():d}}measureInstanceViewportBox(a,{transformPagePoint:b}){return hF(a,b)}build(a,b,c){he(a,b,c.transformTemplate)}scrapeMotionValuesFromProps(a,b,c){return hr(a,b,c)}}let hH=["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 hI(a){if("string"!=typeof a||a.includes("-"));else if(hH.indexOf(a)>-1||/[A-Z]/u.test(a))return!0;return!1}(0,z.createContext)({strict:!1});let hJ=(0,z.createContext)({});function hK(a){return Array.isArray(a)?a.join(" "):a}let hL=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function hM(a,b,c){for(let d in b)f5(b[d])||hq(d,c)||(a[d]=b[d])}let hN=()=>({...hL(),attrs:{}}),hO=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function hP(a){return a.startsWith("while")||a.startsWith("drag")&&"draggable"!==a||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||hO.has(a)}let hQ=a=>!hP(a);try{u=(()=>{let a=Error("Cannot find module '@emotion/is-prop-valid'");throw a.code="MODULE_NOT_FOUND",a})().default,"function"==typeof u&&(hQ=a=>a.startsWith("on")?!hP(a):u(a))}catch{}function hR(a){return f5(a)?a.get():a}let hS=a=>(b,c)=>{let d=(0,z.useContext)(hJ),e=(0,z.useContext)(fb),f=()=>(function({scrapeMotionValuesFromProps:a,createRenderState:b},c,d,e){return{latestValues:function(a,b,c,d){let e={},f=d(a,{});for(let a in f)e[a]=hR(f[a]);let{initial:g,animate:h}=a,i=g2(a),j=g3(a);b&&j&&!i&&!1!==a.inherit&&(void 0===g&&(g=b.initial),void 0===h&&(h=b.animate));let k=!!c&&!1===c.initial,l=(k=k||!1===g)?h:g;if(l&&"boolean"!=typeof l&&!g$(l)){let b=Array.isArray(l)?l:[l];for(let c=0;c<b.length;c++){let d=g5(a,b[c]);if(d){let{transitionEnd:a,transition:b,...c}=d;for(let a in c){let b=c[a];if(Array.isArray(b)){let a=k?b.length-1:0;b=b[a]}null!==b&&(e[a]=b)}for(let b in a)e[b]=a[b]}}}return e}(c,d,e,a),renderState:b()}})(a,b,d,e);return c?f():e9(f)},hT=hS({scrapeMotionValuesFromProps:hr,createRenderState:hL}),hU=hS({scrapeMotionValuesFromProps:hs,createRenderState:hN}),hV={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"]},hW=!1,hX=Symbol.for("motionComponentSymbol"),hY="data-"+ha("framerAppearId"),hZ=(0,z.createContext)({});function h$(a){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"current")}function h_(a,{forwardMotionProps:b=!1,type:c}={},d,e){d&&function(a){let b=(!function(){if(hW)return;let a={};for(let b in hV)a[b]={isEnabled:a=>hV[b].some(b=>!!a[b])};g7=a,hW=!0}(),g7);for(let c in a)b[c]={...b[c],...a[c]};g7=b}(d);let f=c?"svg"===c:hI(a),g=f?hU:hT;function h(c,d){var e;let h,i,j,k={...(0,z.useContext)(ff),...c,layoutId:function({layoutId:a}){let b=(0,z.useContext)(e8).id;return b&&void 0!==a?b+"-"+a:a}(c)},{isStatic:l}=k,m=function(a){let{initial:b,animate:c}=function(a,b){if(g2(a)){let{initial:b,animate:c}=a;return{initial:!1===b||g_(b)?b:void 0,animate:g_(c)?c:void 0}}return!1!==a.inherit?b:{}}(a,(0,z.useContext)(hJ));return(0,z.useMemo)(()=>({initial:b,animate:c}),[hK(b),hK(c)])}(c),n=g(c,l);return(0,y.jsxs)(hJ.Provider,{value:m,children:[h&&m.visualElement?(0,y.jsx)(h,{visualElement:m.visualElement,...k}):null,function(a,b,c,{latestValues:d},e,f=!1,g){let h=(g??hI(a)?function(a,b,c,d){let e=(0,z.useMemo)(()=>{let c=hN();return hi(c,b,hk(d),a.transformTemplate,a.style),{...c.attrs,style:{...c.style}}},[b]);if(a.style){let b={};hM(b,a.style,a),e.style={...b,...e.style}}return e}:function(a,b){let c,d,e={},f=(c=a.style||{},hM(d={},c,a),Object.assign(d,function({transformTemplate:a},b){return(0,z.useMemo)(()=>{let c=hL();return he(c,b,a),Object.assign({},c.vars,c.style)},[b])}(a,b)),d);return a.drag&&!1!==a.dragListener&&(e.draggable=!1,f.userSelect=f.WebkitUserSelect=f.WebkitTouchCallout="none",f.touchAction=!0===a.drag?"none":`pan-${"x"===a.drag?"y":"x"}`),void 0===a.tabIndex&&(a.onTap||a.onTapStart||a.whileTap)&&(e.tabIndex=0),e.style=f,e})(b,d,e,a),i=function(a,b,c){let d={};for(let e in a)("values"!==e||"object"!=typeof a.values)&&(hQ(e)||!0===c&&hP(e)||!b&&!hP(e)||a.draggable&&e.startsWith("onDrag"))&&(d[e]=a[e]);return d}(b,"string"==typeof a,f),j=a!==z.Fragment?{...i,...h,ref:c}:{},{children:k}=b,l=(0,z.useMemo)(()=>f5(k)?k.get():k,[k]);return(0,z.createElement)(a,{...j,children:l})}(a,c,(e=m.visualElement,i=(0,z.useRef)(d),(0,z.useInsertionEffect)(()=>{i.current=d}),j=(0,z.useRef)(null),(0,z.useCallback)(a=>{a&&n.onMount?.(a),e&&(a?e.mount(a):e.unmount());let b=i.current;if("function"==typeof b)if(a){let c=b(a);"function"==typeof c&&(j.current=c)}else j.current?(j.current(),j.current=null):b(a);else b&&(b.current=a)},[e])),n,l,b,f)]})}h.displayName=`motion.${"string"==typeof a?a:`create(${a.displayName??a.name??""})`}`;let i=(0,z.forwardRef)(h);return i[hX]=a,i}class h0{constructor(a){this.isMounted=!1,this.node=a}update(){}}function h1(a,b,c){let d=a.getProps();return g5(d,b,void 0!==c?c:d.custom,a)}function h2(a,b){return a?.[b]??a?.default??a}let h3=a=>Array.isArray(a);function h4(a,b){let c=a.getValue("willChange");if(f5(c)&&c.add)return c.add(b);if(!c&&gy.WillChange){let c=new gy.WillChange("auto");a.addValue("willChange",c),c.add(b)}}let h5=a=>1e3*a,h6=(a,b)=>c=>b(a(c)),h7=(...a)=>a.reduce(h6),h8={layout:0,mainThread:0,waapi:0};function h9(a,b,c){return(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a}function ia(a,b){return c=>c>0?b:a}let ib=(a,b,c)=>{let d=a*a,e=c*(b*b-d)+d;return e<0?0:Math.sqrt(e)},ic=[fC,fB,fK];function id(a){let b=ic.find(b=>b.test(a));if(ga(!!b,`'${a}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!b)return!1;let c=b.parse(a);return b===fK&&(c=function({hue:a,saturation:b,lightness:c,alpha:d}){a/=360,c/=100;let e=0,f=0,g=0;if(b/=100){let d=c<.5?c*(1+b):c+b-c*b,h=2*c-d;e=h9(h,d,a+1/3),f=h9(h,d,a),g=h9(h,d,a-1/3)}else e=f=g=c;return{red:Math.round(255*e),green:Math.round(255*f),blue:Math.round(255*g),alpha:d}}(c)),c}let ie=(a,b)=>{let c=id(a),d=id(b);if(!c||!d)return ia(a,b);let e={...c};return a=>(e.red=ib(c.red,d.red,a),e.green=ib(c.green,d.green,a),e.blue=ib(c.blue,d.blue,a),e.alpha=ho(c.alpha,d.alpha,a),fB.transform(e))},ig=new Set(["none","hidden"]);function ih(a,b){return c=>ho(a,b,c)}function ii(a){return"number"==typeof a?ih:"string"==typeof a?gf(a)?ia:fL.test(a)?ie:il:Array.isArray(a)?ij:"object"==typeof a?fL.test(a)?ie:ik:ia}function ij(a,b){let c=[...a],d=c.length,e=a.map((a,c)=>ii(a)(a,b[c]));return a=>{for(let b=0;b<d;b++)c[b]=e[b](a);return c}}function ik(a,b){let c={...a,...b},d={};for(let e in c)void 0!==a[e]&&void 0!==b[e]&&(d[e]=ii(a[e])(a[e],b[e]));return a=>{for(let b in d)c[b]=d[b](a);return c}}let il=(a,b)=>{let c=fU.createTransformer(b),d=fQ(a),e=fQ(b);if(!(d.indexes.var.length===e.indexes.var.length&&d.indexes.color.length===e.indexes.color.length&&d.indexes.number.length>=e.indexes.number.length))return ga(!0,`Complex values '${a}' and '${b}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),ia(a,b);if(ig.has(a)&&!e.values.length||ig.has(b)&&!d.values.length)return ig.has(a)?c=>c<=0?a:b:c=>c>=1?b:a;return h7(ij(function(a,b){let c=[],d={color:0,var:0,number:0};for(let e=0;e<b.values.length;e++){let f=b.types[e],g=a.indexes[f][d[f]],h=a.values[g]??0;c[e]=h,d[f]++}return c}(d,e),e.values),c)};function im(a,b,c){return"number"==typeof a&&"number"==typeof b&&"number"==typeof c?ho(a,b,c):ii(a)(a,b)}let io=a=>{let b=({timestamp:b})=>a(b);return{start:(a=!0)=>gB.update(b,a),stop:()=>gC(b),now:()=>gD.isProcessing?gD.timestamp:gU.now()}},ip=(a,b,c=10)=>{let d="",e=Math.max(Math.round(b/c),2);for(let b=0;b<e;b++)d+=Math.round(1e4*a(b/(e-1)))/1e4+", ";return`linear(${d.substring(0,d.length-2)})`};function iq(a){let b=0,c=a.next(b);for(;!c.done&&b<2e4;)b+=50,c=a.next(b);return b>=2e4?1/0:b}function ir(a,b,c){var d,e;let f=Math.max(b-5,0);return d=c-a(f),(e=b-f)?1e3/e*d:0}let is=.01,it=2,iu=.005,iv=.5;function iw(a,b){return a*Math.sqrt(1-b*b)}let ix=["duration","bounce"],iy=["stiffness","damping","mass"];function iz(a,b){return b.some(b=>void 0!==a[b])}function iA(a=.3,b=.3){let c,d="object"!=typeof a?{visualDuration:a,keyframes:[0,1],bounce:b}:a,{restSpeed:e,restDelta:f}=d,g=d.keyframes[0],h=d.keyframes[d.keyframes.length-1],i={done:!1,value:g},{stiffness:j,damping:k,mass:l,duration:m,velocity:n,isResolvedFromDuration:o}=function(a){let b={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...a};if(!iz(a,iy)&&iz(a,ix))if(a.visualDuration){let c=2*Math.PI/(1.2*a.visualDuration),d=c*c,e=2*fr(.05,1,1-(a.bounce||0))*Math.sqrt(d);b={...b,mass:1,stiffness:d,damping:e}}else{let c=function({duration:a=800,bounce:b=.3,velocity:c=0,mass:d=1}){let e,f;ga(a<=h5(10),"Spring duration must be 10 seconds or less","spring-duration-limit");let g=1-b;g=fr(.05,1,g),a=fr(.01,10,a/1e3),g<1?(e=b=>{let d=b*g,e=d*a;return .001-(d-c)/iw(b,g)*Math.exp(-e)},f=b=>{let d=b*g*a,f=Math.pow(g,2)*Math.pow(b,2)*a,h=Math.exp(-d),i=iw(Math.pow(b,2),g);return(d*c+c-f)*h*(-e(b)+.001>0?-1:1)/i}):(e=b=>-.001+Math.exp(-b*a)*((b-c)*a+1),f=b=>a*a*(c-b)*Math.exp(-b*a));let h=function(a,b,c){let d=c;for(let c=1;c<12;c++)d-=a(d)/b(d);return d}(e,f,5/a);if(a=h5(a),isNaN(h))return{stiffness:100,damping:10,duration:a};{let b=Math.pow(h,2)*d;return{stiffness:b,damping:2*g*Math.sqrt(d*b),duration:a}}}(a);(b={...b,...c,mass:1}).isResolvedFromDuration=!0}return b}({...d,velocity:-((d.velocity||0)/1e3)}),p=n||0,q=k/(2*Math.sqrt(j*l)),r=h-g,s=Math.sqrt(j/l)/1e3,t=5>Math.abs(r);if(e||(e=t?is:it),f||(f=t?iu:iv),q<1){let a=iw(s,q);c=b=>h-Math.exp(-q*s*b)*((p+q*s*r)/a*Math.sin(a*b)+r*Math.cos(a*b))}else if(1===q)c=a=>h-Math.exp(-s*a)*(r+(p+s*r)*a);else{let a=s*Math.sqrt(q*q-1);c=b=>{let c=Math.exp(-q*s*b),d=Math.min(a*b,300);return h-c*((p+q*s*r)*Math.sinh(d)+a*r*Math.cosh(d))/a}}let u={calculatedDuration:o&&m||null,next:a=>{let b=c(a);if(o)i.done=a>=m;else{let d=0===a?p:0;q<1&&(d=0===a?h5(p):ir(c,a,b));let g=Math.abs(h-b)<=f;i.done=Math.abs(d)<=e&&g}return i.value=i.done?h:b,i},toString:()=>{let a=Math.min(iq(u),2e4),b=ip(b=>u.next(a*b).value,a,30);return a+"ms "+b},toTransition:()=>{}};return u}function iB({keyframes:a,velocity:b=0,power:c=.8,timeConstant:d=325,bounceDamping:e=10,bounceStiffness:f=500,modifyTarget:g,min:h,max:i,restDelta:j=.5,restSpeed:k}){let l,m,n=a[0],o={done:!1,value:n},p=c*b,q=n+p,r=void 0===g?q:g(q);r!==q&&(p=r-n);let s=a=>-p*Math.exp(-a/d),t=a=>r+s(a),u=a=>{let b=s(a),c=t(a);o.done=Math.abs(b)<=j,o.value=o.done?r:c},v=a=>{let b;if(b=o.value,void 0!==h&&b<h||void 0!==i&&b>i){var c;l=a,m=iA({keyframes:[o.value,(c=o.value,void 0===h?i:void 0===i||Math.abs(h-c)<Math.abs(i-c)?h:i)],velocity:ir(t,a,o.value),damping:e,stiffness:f,restDelta:j,restSpeed:k})}};return v(0),{calculatedDuration:null,next:a=>{let b=!1;return(m||void 0!==l||(b=!0,u(a),v(a)),void 0!==l&&a>=l)?m.next(a-l):(b||u(a),o)}}}iA.applyToOptions=a=>{let b=function(a,b=100,c){let d=c({...a,keyframes:[0,b]}),e=Math.min(iq(d),2e4);return{type:"keyframes",ease:a=>d.next(e*a).value/b,duration:e/1e3}}(a,100,iA);return a.ease=b.ease,a.duration=h5(b.duration),a.type="keyframes",a};let iC=(a,b,c)=>(((1-3*c+3*b)*a+(3*c-6*b))*a+3*b)*a;function iD(a,b,c,d){return a===b&&c===d?gx:e=>0===e||1===e?e:iC(function(a,b,c,d,e){let f,g,h=0;do(f=iC(g=b+(c-b)/2,d,e)-a)>0?c=g:b=g;while(Math.abs(f)>1e-7&&++h<12)return g}(e,0,1,a,c),b,d)}let iE=iD(.42,0,1,1),iF=iD(0,0,.58,1),iG=iD(.42,0,.58,1),iH=a=>b=>b<=.5?a(2*b)/2:(2-a(2*(1-b)))/2,iI=a=>b=>1-a(1-b),iJ=iD(.33,1.53,.69,.99),iK=iI(iJ),iL=iH(iK),iM=a=>(a*=2)<1?.5*iK(a):.5*(2-Math.pow(2,-10*(a-1))),iN=a=>1-Math.sin(Math.acos(a)),iO=iI(iN),iP=iH(iN),iQ=a=>Array.isArray(a)&&"number"==typeof a[0],iR={linear:gx,easeIn:iE,easeInOut:iG,easeOut:iF,circIn:iN,circInOut:iP,circOut:iO,backIn:iK,backInOut:iL,backOut:iJ,anticipate:iM},iS=a=>{if(iQ(a)){gb(4===a.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[b,c,d,e]=a;return iD(b,c,d,e)}return"string"==typeof a?(gb(void 0!==iR[a],`Invalid easing type '${a}'`,"invalid-easing-type"),iR[a]):a},iT=(a,b,c)=>{let d=b-a;return 0===d?1:(c-a)/d};function iU({duration:a=300,keyframes:b,times:c,ease:d="easeInOut"}){var e;let f,g=Array.isArray(d)&&"number"!=typeof d[0]?d.map(iS):iS(d),h={done:!1,value:b[0]},i=function(a,b,{clamp:c=!0,ease:d,mixer:e}={}){let f=a.length;if(gb(f===b.length,"Both input and output ranges must be the same length","range-length"),1===f)return()=>b[0];if(2===f&&b[0]===b[1])return()=>b[1];let g=a[0]===a[1];a[0]>a[f-1]&&(a=[...a].reverse(),b=[...b].reverse());let h=function(a,b,c){let d=[],e=c||gy.mix||im,f=a.length-1;for(let c=0;c<f;c++){let f=e(a[c],a[c+1]);b&&(f=h7(Array.isArray(b)?b[c]||gx:b,f)),d.push(f)}return d}(b,d,e),i=h.length,j=c=>{if(g&&c<a[0])return b[0];let d=0;if(i>1)for(;d<a.length-2&&!(c<a[d+1]);d++);let e=iT(a[d],a[d+1],c);return h[d](e)};return c?b=>j(fr(a[0],a[f-1],b)):j}((e=c&&c.length===b.length?c:(!function(a,b){let c=a[a.length-1];for(let d=1;d<=b;d++){let e=iT(0,b,d);a.push(ho(c,1,e))}}(f=[0],b.length-1),f),e.map(b=>b*a)),b,{ease:Array.isArray(g)?g:b.map(()=>g||iG).splice(0,b.length-1)});return{calculatedDuration:a,next:b=>(h.value=i(b),h.done=b>=a,h)}}let iV=a=>null!==a;function iW(a,{repeat:b,repeatType:c="loop"},d,e=1){let f=a.filter(iV),g=e<0||b&&"loop"!==c&&b%2==1?0:f.length-1;return g&&void 0!==d?d:f[g]}let iX={decay:iB,inertia:iB,tween:iU,keyframes:iU,spring:iA};function iY(a){"string"==typeof a.type&&(a.type=iX[a.type])}class iZ{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(a=>{this.resolve=a})}notifyFinished(){this.resolve()}then(a,b){return this.finished.then(a,b)}}let i$=a=>a/100;class i_ extends iZ{constructor(a){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{let{motionValue:a}=this.options;a&&a.updatedAt!==gU.now()&&this.tick(gU.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},h8.mainThread++,this.options=a,this.initAnimation(),this.play(),!1===a.autoplay&&this.pause()}initAnimation(){let{options:a}=this;iY(a);let{type:b=iU,repeat:c=0,repeatDelay:d=0,repeatType:e,velocity:f=0}=a,{keyframes:g}=a,h=b||iU;h!==iU&&"number"!=typeof g[0]&&(this.mixKeyframes=h7(i$,im(g[0],g[1])),g=[0,100]);let i=h({...a,keyframes:g});"mirror"===e&&(this.mirroredGenerator=h({...a,keyframes:[...g].reverse(),velocity:-f})),null===i.calculatedDuration&&(i.calculatedDuration=iq(i));let{calculatedDuration:j}=i;this.calculatedDuration=j,this.resolvedDuration=j+d,this.totalDuration=this.resolvedDuration*(c+1)-d,this.generator=i}updateTime(a){let b=Math.round(a-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=b}tick(a,b=!1){let{generator:c,totalDuration:d,mixKeyframes:e,mirroredGenerator:f,resolvedDuration:g,calculatedDuration:h}=this;if(null===this.startTime)return c.next(0);let{delay:i=0,keyframes:j,repeat:k,repeatType:l,repeatDelay:m,type:n,onUpdate:o,finalKeyframe:p}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,a):this.speed<0&&(this.startTime=Math.min(a-d/this.speed,this.startTime)),b?this.currentTime=a:this.updateTime(a);let q=this.currentTime-i*(this.playbackSpeed>=0?1:-1),r=this.playbackSpeed>=0?q<0:q>d;this.currentTime=Math.max(q,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=d);let s=this.currentTime,t=c;if(k){let a=Math.min(this.currentTime,d)/g,b=Math.floor(a),c=a%1;!c&&a>=1&&(c=1),1===c&&b--,(b=Math.min(b,k+1))%2&&("reverse"===l?(c=1-c,m&&(c-=m/g)):"mirror"===l&&(t=f)),s=fr(0,1,c)*g}let u=r?{done:!1,value:j[0]}:t.next(s);e&&(u.value=e(u.value));let{done:v}=u;r||null===h||(v=this.playbackSpeed>=0?this.currentTime>=d:this.currentTime<=0);let w=null===this.holdTime&&("finished"===this.state||"running"===this.state&&v);return w&&n!==iB&&(u.value=iW(j,this.options,p,this.speed)),o&&o(u.value),w&&this.finish(),u}then(a,b){return this.finished.then(a,b)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return this.currentTime/1e3}set time(a){a=h5(a),this.currentTime=a,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=a:this.driver&&(this.startTime=this.driver.now()-a/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(a){this.updateTime(gU.now());let b=this.playbackSpeed!==a;this.playbackSpeed=a,b&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:a=io,startTime:b}=this.options;this.driver||(this.driver=a(a=>this.tick(a))),this.options.onPlay?.();let c=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=c):null!==this.holdTime?this.startTime=c-this.holdTime:this.startTime||(this.startTime=b??c),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(gU.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,h8.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(a){return this.startTime=0,this.tick(a,!0)}attachTimeline(a){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),a.observe(this)}}function i0(a){let b;return()=>(void 0===b&&(b=a()),b)}let i1=i0(()=>void 0!==window.ScrollTimeline),i2={},i3=(j=i0(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(a){return!1}return!0}),()=>i2.linearEasing??j()),i4=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`,i5={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:i4([0,.65,.55,1]),circOut:i4([.55,0,1,.45]),backIn:i4([.31,.01,.66,-.59]),backOut:i4([.33,1.53,.69,.99])};function i6(a){return"function"==typeof a&&"applyToOptions"in a}class i7 extends iZ{constructor(a){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!a)return;const{element:b,name:c,keyframes:d,pseudoElement:e,allowFlatten:f=!1,finalKeyframe:g,onComplete:h}=a;this.isPseudoElement=!!e,this.allowFlatten=f,this.options=a,gb("string"!=typeof a.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const i=function({type:a,...b}){return i6(a)&&i3()?a.applyToOptions(b):(b.duration??(b.duration=300),b.ease??(b.ease="easeOut"),b)}(a);this.animation=function(a,b,c,{delay:d=0,duration:e=300,repeat:f=0,repeatType:g="loop",ease:h="easeOut",times:i}={},j){let k={[b]:c};i&&(k.offset=i);let l=function a(b,c){if(b)return"function"==typeof b?i3()?ip(b,c):"ease-out":iQ(b)?i4(b):Array.isArray(b)?b.map(b=>a(b,c)||i5.easeOut):i5[b]}(h,e);Array.isArray(l)&&(k.easing=l);let m={delay:d,duration:e,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:f+1,direction:"reverse"===g?"alternate":"normal"};j&&(m.pseudoElement=j);let n=a.animate(k,m);return n}(b,c,d,i,e),!1===i.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!e){let a=iW(d,this.options,g,this.speed);this.updateMotionValue?this.updateMotionValue(a):c.startsWith("--")?b.style.setProperty(c,a):b.style[c]=a,this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(a){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:a}=this;"idle"!==a&&"finished"!==a&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(a){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=h5(a)}get speed(){return this.animation.playbackRate}set speed(a){a<0&&(this.finishedTime=null),this.animation.playbackRate=a}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(a){this.manualStartTime=this.animation.startTime=a}attachTimeline({timeline:a,observe:b}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,a&&i1())?(this.animation.timeline=a,gx):b(this)}}let i8={anticipate:iM,backInOut:iL,circInOut:iP};class i9 extends i7{constructor(a){!function(a){"string"==typeof a.ease&&a.ease in i8&&(a.ease=i8[a.ease])}(a),iY(a),super(a),void 0!==a.startTime&&(this.startTime=a.startTime),this.options=a}updateMotionValue(a){let{motionValue:b,onUpdate:c,onComplete:d,element:e,...f}=this.options;if(!b)return;if(void 0!==a)return void b.set(a);let g=new i_({...f,autoplay:!1}),h=Math.max(10,gU.now()-this.startTime),i=fr(0,10,h-10);b.setWithVelocity(g.sample(Math.max(0,h-i)).value,g.sample(h).value,i),g.stop()}}let ja=(a,b)=>"zIndex"!==b&&!!("number"==typeof a||Array.isArray(a)||"string"==typeof a&&(fU.test(a)||"0"===a)&&!a.startsWith("url("));function jb(a){a.duration=0,a.type="keyframes"}let jc=new Set(["opacity","clipPath","filter","transform"]),jd=i0(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class je extends iZ{constructor({autoplay:a=!0,delay:b=0,type:c="keyframes",repeat:d=0,repeatDelay:e=0,repeatType:f="loop",keyframes:g,name:h,motionValue:i,element:j,...k}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=gU.now();const l={autoplay:a,delay:b,type:c,repeat:d,repeatDelay:e,repeatType:f,name:h,motionValue:i,element:j,...k},m=j?.KeyframeResolver||gL;this.keyframeResolver=new m(g,(a,b,c)=>this.onKeyframesResolved(a,b,l,!c),h,i,j),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(a,b,c,d){this.keyframeResolver=void 0;let{name:e,type:f,velocity:g,delay:h,isHandoff:i,onUpdate:j}=c;this.resolvedAt=gU.now(),!function(a,b,c,d){let e=a[0];if(null===e)return!1;if("display"===b||"visibility"===b)return!0;let f=a[a.length-1],g=ja(e,b),h=ja(f,b);return ga(g===h,`You are trying to animate ${b} from "${e}" to "${f}". "${g?f:e}" is not an animatable value.`,"value-not-animatable"),!!g&&!!h&&(function(a){let b=a[0];if(1===a.length)return!0;for(let c=0;c<a.length;c++)if(a[c]!==b)return!0}(a)||("spring"===c||i6(c))&&d)}(a,e,f,g)&&((gy.instantAnimations||!h)&&j?.(iW(a,c,b)),a[0]=a[a.length-1],jb(c),c.repeat=0);let k={startTime:d?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:b,...c,keyframes:a},l=!i&&function(a){let{motionValue:b,name:c,repeatDelay:d,repeatType:e,damping:f,type:g}=a;if(!(b?.owner?.current instanceof HTMLElement))return!1;let{onUpdate:h,transformTemplate:i}=b.owner.getProps();return jd()&&c&&jc.has(c)&&("transform"!==c||!i)&&!h&&!d&&"mirror"!==e&&0!==f&&"inertia"!==g}(k)?new i9({...k,element:k.motionValue.owner.current}):new i_(k);l.finished.then(()=>this.notifyFinished()).catch(gx),this.pendingTimeline&&(this.stopTimeline=l.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=l}get finished(){return this._animation?this.animation.finished:this._finished}then(a,b){return this.finished.finally(a).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),gI=!0,gK(),gJ(),gI=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(a){this.animation.time=a}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(a){this.animation.speed=a}get startTime(){return this.animation.startTime}attachTimeline(a){return this._animation?this.stopTimeline=this.animation.attachTimeline(a):this.pendingTimeline=a,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let jf={type:"spring",stiffness:500,damping:25,restSpeed:10},jg={type:"keyframes",duration:.8},jh={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},ji=a=>null!==a,jj=(a,b,c,d={},e,f)=>g=>{let h=h2(d,a)||{},i=h.delay||d.delay||0,{elapsed:j=0}=d;j-=h5(i);let k={keyframes:Array.isArray(c)?c:[null,c],ease:"easeOut",velocity:b.getVelocity(),...h,delay:-j,onUpdate:a=>{b.set(a),h.onUpdate&&h.onUpdate(a)},onComplete:()=>{g(),h.onComplete&&h.onComplete()},name:a,motionValue:b,element:f?void 0:e};!function({when:a,delay:b,delayChildren:c,staggerChildren:d,staggerDirection:e,repeat:f,repeatType:g,repeatDelay:h,from:i,elapsed:j,...k}){return!!Object.keys(k).length}(h)&&Object.assign(k,((a,{keyframes:b})=>b.length>2?jg:fq.has(a)?a.startsWith("scale")?{type:"spring",stiffness:550,damping:0===b[1]?2*Math.sqrt(550):30,restSpeed:10}:jf:jh)(a,k)),k.duration&&(k.duration=h5(k.duration)),k.repeatDelay&&(k.repeatDelay=h5(k.repeatDelay)),void 0!==k.from&&(k.keyframes[0]=k.from);let l=!1;if(!1!==k.type&&(0!==k.duration||k.repeatDelay)||(jb(k),0===k.delay&&(l=!0)),(gy.instantAnimations||gy.skipAnimations)&&(l=!0,jb(k),k.delay=0),k.allowFlatten=!h.type&&!h.ease,l&&!f&&void 0!==b.get()){let a=function(a,{repeat:b,repeatType:c="loop"},d){let e=a.filter(ji),f=b&&"loop"!==c&&b%2==1?0:e.length-1;return e[f]}(k.keyframes,h);if(void 0!==a)return void gB.update(()=>{k.onUpdate(a),k.onComplete()})}return h.isSync?new i_(k):new je(k)};function jk(a,b,{delay:c=0,transitionOverride:d,type:e}={}){let{transition:f=a.getDefaultTransition(),transitionEnd:g,...h}=b;d&&(f=d);let i=[],j=e&&a.animationState&&a.animationState.getState()[e];for(let b in h){let d=a.getValue(b,a.latestValues[b]??null),e=h[b];if(void 0===e||j&&function({protectedKeys:a,needsAnimating:b},c){let d=a.hasOwnProperty(c)&&!0!==b[c];return b[c]=!1,d}(j,b))continue;let g={delay:c,...h2(f||{},b)},k=d.get();if(void 0!==k&&!d.isAnimating&&!Array.isArray(e)&&e===k&&!g.velocity)continue;let l=!1;if(window.MotionHandoffAnimation){let c=a.props[hY];if(c){let a=window.MotionHandoffAnimation(c,b,gB);null!==a&&(g.startTime=a,l=!0)}}h4(a,b),d.start(jj(b,d,e,a.shouldReduceMotion&&f6.has(b)?{type:!1}:g,a,l));let m=d.animation;m&&i.push(m)}return g&&Promise.all(i).then(()=>{gB.update(()=>{g&&function(a,b){let{transitionEnd:c={},transition:d={},...e}=h1(a,b)||{};for(let b in e={...e,...c}){var f;let c=h3(f=e[b])?f[f.length-1]||0:f;a.hasValue(b)?a.getValue(b).set(c):a.addValue(b,gW(c))}}(a,g)})}),i}function jl(a,b,c,d=0,e=1){let f=Array.from(a).sort((a,b)=>a.sortNodePosition(b)).indexOf(b),g=a.size,h=(g-1)*d;return"function"==typeof c?c(f,g):1===e?f*d:h-f*d}function jm(a,b,c={}){let d=h1(a,b,"exit"===c.type?a.presenceContext?.custom:void 0),{transition:e=a.getDefaultTransition()||{}}=d||{};c.transitionOverride&&(e=c.transitionOverride);let f=d?()=>Promise.all(jk(a,d,c)):()=>Promise.resolve(),g=a.variantChildren&&a.variantChildren.size?(d=0)=>{let{delayChildren:f=0,staggerChildren:g,staggerDirection:h}=e;return function(a,b,c=0,d=0,e=0,f=1,g){let h=[];for(let i of a.variantChildren)i.notify("AnimationStart",b),h.push(jm(i,b,{...g,delay:c+("function"==typeof d?0:d)+jl(a.variantChildren,i,d,e,f)}).then(()=>i.notify("AnimationComplete",b)));return Promise.all(h)}(a,b,d,f,g,h,c)}:()=>Promise.resolve(),{when:h}=e;if(!h)return Promise.all([f(),g(c.delay)]);{let[a,b]="beforeChildren"===h?[f,g]:[g,f];return a().then(()=>b())}}let jn=g1.length;function jo(a,b){if(!Array.isArray(b))return!1;let c=b.length;if(c!==a.length)return!1;for(let d=0;d<c;d++)if(b[d]!==a[d])return!1;return!0}let jp=[...g0].reverse(),jq=g0.length;function jr(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function js(){return{animate:jr(!0),whileInView:jr(),whileHover:jr(),whileTap:jr(),whileDrag:jr(),whileFocus:jr(),exit:jr()}}let jt=0;function ju(a){return[a("x"),a("y")]}let jv=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function jw(a){return jv.has(a.tagName)||!0===a.isContentEditable}function jx(a,b,c,d={passive:!0}){return a.addEventListener(b,c,d),()=>a.removeEventListener(b,c)}let jy={x:!1,y:!1};function jz(a){return a.max-a.min}function jA(a,b,c,d=.5){a.origin=d,a.originPoint=ho(b.min,b.max,a.origin),a.scale=jz(c)/jz(b),a.translate=ho(c.min,c.max,a.origin)-a.originPoint,(a.scale>=.9999&&a.scale<=1.0001||isNaN(a.scale))&&(a.scale=1),(a.translate>=-.01&&a.translate<=.01||isNaN(a.translate))&&(a.translate=0)}function jB(a,b,c,d){jA(a.x,b.x,c.x,d?d.originX:void 0),jA(a.y,b.y,c.y,d?d.originY:void 0)}function jC(a,b,c){a.min=c.min+b.min,a.max=a.min+jz(b)}function jD(a,b,c){a.min=b.min-c.min,a.max=a.min+jz(b)}function jE(a,b,c){jD(a.x,b.x,c.x),jD(a.y,b.y,c.y)}let jF=a=>"mouse"===a.pointerType?"number"!=typeof a.button||a.button<=0:!1!==a.isPrimary;function jG(a){return{point:{x:a.pageX,y:a.pageY}}}function jH(a,b,c,d){return jx(a,b,a=>jF(a)&&c(a,jG(a)),d)}let jI=({current:a})=>a?a.ownerDocument.defaultView:null,jJ=(a,b)=>Math.abs(a-b),jK=new Set(["auto","scroll"]);class jL{constructor(a,b,{transformPagePoint:c,contextWindow:d=window,dragSnapToOrigin:e=!1,distanceThreshold:f=3,element:g}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=a=>{this.handleScroll(a.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{var a,b;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let c=jO(this.lastMoveEventInfo,this.history),d=null!==this.startEvent,e=(a=c.offset,b={x:0,y:0},Math.sqrt(jJ(a.x,b.x)**2+jJ(a.y,b.y)**2)>=this.distanceThreshold);if(!d&&!e)return;let{point:f}=c,{timestamp:g}=gD;this.history.push({...f,timestamp:g});let{onStart:h,onMove:i}=this.handlers;d||(h&&h(this.lastMoveEvent,c),this.startEvent=this.lastMoveEvent),i&&i(this.lastMoveEvent,c)},this.handlePointerMove=(a,b)=>{this.lastMoveEvent=a,this.lastMoveEventInfo=jM(b,this.transformPagePoint),gB.update(this.updatePoint,!0)},this.handlePointerUp=(a,b)=>{this.end();let{onEnd:c,onSessionEnd:d,resumeAnimation:e}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&e&&e(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let f=jO("pointercancel"===a.type?this.lastMoveEventInfo:jM(b,this.transformPagePoint),this.history);this.startEvent&&c&&c(a,f),d&&d(a,f)},!jF(a))return;this.dragSnapToOrigin=e,this.handlers=b,this.transformPagePoint=c,this.distanceThreshold=f,this.contextWindow=d||window;const h=jM(jG(a),this.transformPagePoint),{point:i}=h,{timestamp:j}=gD;this.history=[{...i,timestamp:j}];const{onSessionStart:k}=b;k&&k(a,jO(h,this.history)),this.removeListeners=h7(jH(this.contextWindow,"pointermove",this.handlePointerMove),jH(this.contextWindow,"pointerup",this.handlePointerUp),jH(this.contextWindow,"pointercancel",this.handlePointerUp)),g&&this.startScrollTracking(g)}startScrollTracking(a){let b=a.parentElement;for(;b;){let a=getComputedStyle(b);(jK.has(a.overflowX)||jK.has(a.overflowY))&&this.scrollPositions.set(b,{x:b.scrollLeft,y:b.scrollTop}),b=b.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(a){let b=this.scrollPositions.get(a);if(!b)return;let c=a===window,d=c?{x:window.scrollX,y:window.scrollY}:{x:a.scrollLeft,y:a.scrollTop},e={x:d.x-b.x,y:d.y-b.y};(0!==e.x||0!==e.y)&&(c?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=e.x,this.lastMoveEventInfo.point.y+=e.y):this.history.length>0&&(this.history[0].x-=e.x,this.history[0].y-=e.y),this.scrollPositions.set(a,d),gB.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),gC(this.updatePoint)}}function jM(a,b){return b?{point:b(a.point)}:a}function jN(a,b){return{x:a.x-b.x,y:a.y-b.y}}function jO({point:a},b){return{point:a,delta:jN(a,jP(b)),offset:jN(a,b[0]),velocity:function(a,b){if(a.length<2)return{x:0,y:0};let c=a.length-1,d=null,e=jP(a);for(;c>=0&&(d=a[c],!(e.timestamp-d.timestamp>h5(.1)));)c--;if(!d)return{x:0,y:0};let f=(e.timestamp-d.timestamp)/1e3;if(0===f)return{x:0,y:0};let g={x:(e.x-d.x)/f,y:(e.y-d.y)/f};return g.x===1/0&&(g.x=0),g.y===1/0&&(g.y=0),g}(b,.1)}}function jP(a){return a[a.length-1]}function jQ(a,b,c){return{min:void 0!==b?a.min+b:void 0,max:void 0!==c?a.max+c-(a.max-a.min):void 0}}function jR(a,b){let c=b.min-a.min,d=b.max-a.max;return b.max-b.min<a.max-a.min&&([c,d]=[d,c]),{min:c,max:d}}function jS(a,b,c){return{min:jT(a,b),max:jT(a,c)}}function jT(a,b){return"number"==typeof a?a:a[b]||0}let jU=new WeakMap;class jV{constructor(a){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=f4(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=a}start(a,{snapToCursor:b=!1,distanceThreshold:c}={}){let{presenceContext:d}=this.visualElement;if(d&&!1===d.isPresent)return;let e=a=>{b?(this.stopAnimation(),this.snapToCursor(jG(a).point)):this.pauseAnimation()},f=(a,b)=>{this.stopAnimation();let{drag:c,dragPropagation:d,onDragStart:e}=this.getProps();if(c&&!d&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(a){if("x"===a||"y"===a)if(jy[a])return null;else return jy[a]=!0,()=>{jy[a]=!1};return jy.x||jy.y?null:(jy.x=jy.y=!0,()=>{jy.x=jy.y=!1})}(c),!this.openDragLock))return;this.latestPointerEvent=a,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),ju(a=>{let b=this.getAxisMotionValue(a).get()||0;if(fF.test(b)){let{projection:c}=this.visualElement;if(c&&c.layout){let d=c.layout.layoutBox[a];d&&(b=jz(d)*(parseFloat(b)/100))}}this.originPoint[a]=b}),e&&gB.postRender(()=>e(a,b)),h4(this.visualElement,"transform");let{animationState:f}=this.visualElement;f&&f.setActive("whileDrag",!0)},g=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b;let{dragPropagation:c,dragDirectionLock:d,onDirectionLock:e,onDrag:f}=this.getProps();if(!c&&!this.openDragLock)return;let{offset:g}=b;if(d&&null===this.currentDirection){this.currentDirection=function(a,b=10){let c=null;return Math.abs(a.y)>b?c="y":Math.abs(a.x)>b&&(c="x"),c}(g),null!==this.currentDirection&&e&&e(this.currentDirection);return}this.updateAxis("x",b.point,g),this.updateAxis("y",b.point,g),this.visualElement.render(),f&&f(a,b)},h=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b,this.stop(a,b),this.latestPointerEvent=null,this.latestPanInfo=null},i=()=>ju(a=>"paused"===this.getAnimationState(a)&&this.getAxisMotionValue(a).animation?.play()),{dragSnapToOrigin:j}=this.getProps();this.panSession=new jL(a,{onSessionStart:e,onStart:f,onMove:g,onSessionEnd:h,resumeAnimation:i},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:j,distanceThreshold:c,contextWindow:jI(this.visualElement),element:this.visualElement.current})}stop(a,b){let c=a||this.latestPointerEvent,d=b||this.latestPanInfo,e=this.isDragging;if(this.cancel(),!e||!d||!c)return;let{velocity:f}=d;this.startAnimation(f);let{onDragEnd:g}=this.getProps();g&&gB.postRender(()=>g(c,d))}cancel(){this.isDragging=!1;let{projection:a,animationState:b}=this.visualElement;a&&(a.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;let{dragPropagation:c}=this.getProps();!c&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),b&&b.setActive("whileDrag",!1)}updateAxis(a,b,c){let{drag:d}=this.getProps();if(!c||!jW(a,d,this.currentDirection))return;let e=this.getAxisMotionValue(a),f=this.originPoint[a]+c[a];this.constraints&&this.constraints[a]&&(f=function(a,{min:b,max:c},d){return void 0!==b&&a<b?a=d?ho(b,a,d.min):Math.max(a,b):void 0!==c&&a>c&&(a=d?ho(c,a,d.max):Math.min(a,c)),a}(f,this.constraints[a],this.elastic[a])),e.set(f)}resolveConstraints(){let{dragConstraints:a,dragElastic:b}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,d=this.constraints;a&&h$(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&c?this.constraints=function(a,{top:b,left:c,bottom:d,right:e}){return{x:jQ(a.x,c,e),y:jQ(a.y,b,d)}}(c.layoutBox,a):this.constraints=!1,this.elastic=function(a=.35){return!1===a?a=0:!0===a&&(a=.35),{x:jS(a,"left","right"),y:jS(a,"top","bottom")}}(b),d!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&ju(a=>{var b,d;let e;!1!==this.constraints&&this.getAxisMotionValue(a)&&(this.constraints[a]=(b=c.layoutBox[a],d=this.constraints[a],e={},void 0!==d.min&&(e.min=d.min-b.min),void 0!==d.max&&(e.max=d.max-b.min),e))})}resolveRefConstraints(){var a;let{dragConstraints:b,onMeasureDragConstraints:c}=this.getProps();if(!b||!h$(b))return!1;let d=b.current;gb(null!==d,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:e}=this.visualElement;if(!e||!e.layout)return!1;let f=function(a,b,c){let d=hF(a,c),{scroll:e}=b;return e&&(hC(d.x,e.offset.x),hC(d.y,e.offset.y)),d}(d,e.root,this.visualElement.getTransformPagePoint()),g=(a=e.layout.layoutBox,{x:jR(a.x,f.x),y:jR(a.y,f.y)});if(c){let a=c(function({x:a,y:b}){return{top:b.min,right:a.max,bottom:b.max,left:a.min}}(g));this.hasMutatedConstraints=!!a,a&&(g=hu(a))}return g}startAnimation(a){let{drag:b,dragMomentum:c,dragElastic:d,dragTransition:e,dragSnapToOrigin:f,onDragTransitionEnd:g}=this.getProps(),h=this.constraints||{};return Promise.all(ju(g=>{if(!jW(g,b,this.currentDirection))return;let i=h&&h[g]||{};f&&(i={min:0,max:0});let j={type:"inertia",velocity:c?a[g]:0,bounceStiffness:d?200:1e6,bounceDamping:d?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...e,...i};return this.startAxisValueAnimation(g,j)})).then(g)}startAxisValueAnimation(a,b){let c=this.getAxisMotionValue(a);return h4(this.visualElement,a),c.start(jj(a,c,0,b,this.visualElement,!1))}stopAnimation(){ju(a=>this.getAxisMotionValue(a).stop())}pauseAnimation(){ju(a=>this.getAxisMotionValue(a).animation?.pause())}getAnimationState(a){return this.getAxisMotionValue(a).animation?.state}getAxisMotionValue(a){let b=`_drag${a.toUpperCase()}`,c=this.visualElement.getProps();return c[b]||this.visualElement.getValue(a,(c.initial?c.initial[a]:void 0)||0)}snapToCursor(a){ju(b=>{let{drag:c}=this.getProps();if(!jW(b,c,this.currentDirection))return;let{projection:d}=this.visualElement,e=this.getAxisMotionValue(b);if(d&&d.layout){let{min:c,max:f}=d.layout.layoutBox[b],g=e.get()||0;e.set(a[b]-ho(c,f,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:a,dragConstraints:b}=this.getProps(),{projection:c}=this.visualElement;if(!h$(b)||!c||!this.constraints)return;this.stopAnimation();let d={x:0,y:0};ju(a=>{let b=this.getAxisMotionValue(a);if(b&&!1!==this.constraints){var c,e;let f,g,h,i=b.get();d[a]=(c={min:i,max:i},e=this.constraints[a],f=.5,g=jz(c),(h=jz(e))>g?f=iT(e.min,e.max-g,c.min):g>h&&(f=iT(c.min,c.max-h,e.min)),fr(0,1,f))}});let{transformTemplate:e}=this.visualElement.getProps();this.visualElement.current.style.transform=e?e({},""):"none",c.root&&c.root.updateScroll(),c.updateLayout(),this.resolveConstraints(),ju(b=>{if(!jW(b,a,null))return;let c=this.getAxisMotionValue(b),{min:e,max:f}=this.constraints[b];c.set(ho(e,f,d[b]))})}addListeners(){if(!this.visualElement.current)return;jU.set(this.visualElement,this);let a=jH(this.visualElement.current,"pointerdown",a=>{let{drag:b,dragListener:c=!0}=this.getProps();b&&c&&!jw(a.target)&&this.start(a)}),b=()=>{let{dragConstraints:a}=this.getProps();h$(a)&&a.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,d=c.addEventListener("measure",b);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),gB.read(b);let e=jx(window,"resize",()=>this.scalePositionWithinConstraints()),f=c.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b})=>{this.isDragging&&b&&(ju(b=>{let c=this.getAxisMotionValue(b);c&&(this.originPoint[b]+=a[b].translate,c.set(c.get()+a[b].translate))}),this.visualElement.render())});return()=>{e(),a(),d(),f&&f()}}getProps(){let a=this.visualElement.getProps(),{drag:b=!1,dragDirectionLock:c=!1,dragPropagation:d=!1,dragConstraints:e=!1,dragElastic:f=.35,dragMomentum:g=!0}=a;return{...a,drag:b,dragDirectionLock:c,dragPropagation:d,dragConstraints:e,dragElastic:f,dragMomentum:g}}}function jW(a,b,c){return(!0===b||b===a)&&(null===c||c===a)}let jX=a=>(b,c)=>{a&&gB.postRender(()=>a(b,c))},jY={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var jZ=z;let j$=!1;class j_ extends jZ.Component{componentDidMount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c,layoutId:d}=this.props,{projection:e}=a;e&&(b.group&&b.group.add(e),c&&c.register&&d&&c.register(e),j$&&e.root.didUpdate(),e.addEventListener("animationComplete",()=>{this.safeToRemove()}),e.setOptions({...e.options,onExitComplete:()=>this.safeToRemove()})),jY.hasEverUpdated=!0}getSnapshotBeforeUpdate(a){let{layoutDependency:b,visualElement:c,drag:d,isPresent:e}=this.props,{projection:f}=c;return f&&(f.isPresent=e,j$=!0,d||a.layoutDependency!==b||void 0===b||a.isPresent!==e?f.willUpdate():this.safeToRemove(),a.isPresent!==e&&(e?f.promote():f.relegate()||gB.postRender(()=>{let a=f.getStack();a&&a.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:a}=this.props.visualElement;a&&(a.root.didUpdate(),gS.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c}=this.props,{projection:d}=a;j$=!0,d&&(d.scheduleCheckAfterUnmount(),b&&b.group&&b.group.remove(d),c&&c.deregister&&c.deregister(d))}safeToRemove(){let{safeToRemove:a}=this.props;a&&a()}render(){return null}}function j0(a){let[b,c]=fl(),d=(0,jZ.useContext)(e8);return(0,y.jsx)(j_,{...a,layoutGroup:d,switchLayoutGroup:(0,jZ.useContext)(hZ),isPresent:b,safeToRemove:c})}function j1(a,b,c,d,e){return a-=b,a=d+1/c*(a-d),void 0!==e&&(a=d+1/e*(a-d)),a}function j2(a,b,[c,d,e],f,g){!function(a,b=0,c=1,d=.5,e,f=a,g=a){if(fF.test(b)&&(b=parseFloat(b),b=ho(g.min,g.max,b/100)-g.min),"number"!=typeof b)return;let h=ho(f.min,f.max,d);a===f&&(h-=b),a.min=j1(a.min,b,c,h,e),a.max=j1(a.max,b,c,h,e)}(a,b[c],b[d],b[e],b.scale,f,g)}let j3=["x","scaleX","originX"],j4=["y","scaleY","originY"];function j5(a,b,c,d){j2(a.x,b,j3,c?c.x:void 0,d?d.x:void 0),j2(a.y,b,j4,c?c.y:void 0,d?d.y:void 0)}function j6(a,b){a.min=b.min,a.max=b.max}function j7(a,b){j6(a.x,b.x),j6(a.y,b.y)}function j8(a,b){a.translate=b.translate,a.scale=b.scale,a.originPoint=b.originPoint,a.origin=b.origin}function j9(a){return 0===a.translate&&1===a.scale}function ka(a){return j9(a.x)&&j9(a.y)}function kb(a,b){return a.min===b.min&&a.max===b.max}function kc(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function kd(a,b){return kc(a.x,b.x)&&kc(a.y,b.y)}function ke(a){return jz(a.x)/jz(a.y)}function kf(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}let kg=["TopLeft","TopRight","BottomLeft","BottomRight"],kh=kg.length,ki=a=>"string"==typeof a?parseFloat(a):a,kj=a=>"number"==typeof a||fG.test(a);function kk(a,b){return void 0!==a[b]?a[b]:a.borderRadius}let kl=kn(0,.5,iO),km=kn(.5,.95,gx);function kn(a,b,c){return d=>d<a?0:d>b?1:c(iT(a,b,d))}function ko(a){return fc(a)&&"ownerSVGElement"in a}let kp=(a,b)=>a.depth-b.depth;class kq{constructor(){this.children=[],this.isDirty=!1}add(a){gP(this.children,a),this.isDirty=!0}remove(a){gQ(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(kp),this.isDirty=!1,this.children.forEach(a)}}class kr{constructor(){this.members=[]}add(a){gP(this.members,a),a.scheduleRender()}remove(a){if(gQ(this.members,a),a===this.prevLead&&(this.prevLead=void 0),a===this.lead){let a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(a){let b,c=this.members.findIndex(b=>a===b);if(0===c)return!1;for(let a=c;a>=0;a--){let c=this.members[a];if(!1!==c.isPresent){b=c;break}}return!!b&&(this.promote(b),!0)}promote(a,b){let c=this.lead;if(a!==c&&(this.prevLead=c,this.lead=a,a.show(),c)){c.instance&&c.scheduleRender(),a.scheduleRender(),a.resumeFrom=c,b&&(a.resumeFrom.preserveOpacity=!0),c.snapshot&&(a.snapshot=c.snapshot,a.snapshot.latestValues=c.animationValues||c.latestValues),a.root&&a.root.isUpdating&&(a.isLayoutDirty=!0);let{crossfade:d}=a.options;!1===d&&c.hide()}}exitAnimationComplete(){this.members.forEach(a=>{let{options:b,resumingFrom:c}=a;b.onExitComplete&&b.onExitComplete(),c&&c.options.onExitComplete&&c.options.onExitComplete()})}scheduleRender(){this.members.forEach(a=>{a.instance&&a.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}let ks=["","X","Y","Z"],kt=0;function ku(a,b,c,d){let{latestValues:e}=b;e[a]&&(c[a]=e[a],b.setStaticValue(a,0),d&&(d[a]=0))}function kv({attachResizeListener:a,defaultParent:b,measureScroll:c,checkIsScrollRoot:d,resetTransform:e}){return class{constructor(a={},c=b?.()){this.id=kt++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(ky),this.nodes.forEach(kF),this.nodes.forEach(kG),this.nodes.forEach(kz)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let a=0;a<this.path.length;a++)this.path[a].shouldResetTransform=!0;this.root===this&&(this.nodes=new kq)}addEventListener(a,b){return this.eventHandlers.has(a)||this.eventHandlers.set(a,new gR),this.eventHandlers.get(a).add(b)}notifyListeners(a,...b){let c=this.eventHandlers.get(a);c&&c.notify(...b)}hasListeners(a){return this.eventHandlers.has(a)}mount(b){if(this.instance)return;this.isSVG=ko(b)&&!(ko(b)&&"svg"===b.tagName),this.instance=b;let{layoutId:c,layout:d,visualElement:e}=this.options;if(e&&!e.current&&e.mount(b),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(d||c)&&(this.isLayoutDirty=!0),a){let c,d=0,e=()=>this.root.updateBlockedByResize=!1;gB.read(()=>{d=window.innerWidth}),a(b,()=>{let a=window.innerWidth;if(a!==d){let b,f;d=a,this.root.updateBlockedByResize=!0,c&&c(),b=gU.now(),f=({timestamp:a})=>{let c=a-b;c>=250&&(gC(f),e(c-250))},gB.setup(f,!0),c=()=>gC(f),jY.hasAnimatedSinceResize&&(jY.hasAnimatedSinceResize=!1,this.nodes.forEach(kE))}})}c&&this.root.registerSharedNode(c,this),!1!==this.options.animate&&e&&(c||d)&&this.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b,hasRelativeLayoutChanged:c,layout:d})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let f=this.options.transition||e.getDefaultTransition()||kM,{onLayoutAnimationStart:g,onLayoutAnimationComplete:h}=e.getProps(),i=!this.targetLayout||!kd(this.targetLayout,d),j=!b&&c;if(this.options.layoutRoot||this.resumeFrom||j||b&&(i||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let b={...h2(f,"layout"),onPlay:g,onComplete:h};(e.shouldReduceMotion||this.options.layoutRoot)&&(b.delay=0,b.type=!1),this.startAnimation(b),this.setAnimationOrigin(a,j)}else b||kE(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=d})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),gC(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(kH),this.animationId++)}getTransformTemplate(){let{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function a(b){if(b.hasCheckedOptimisedAppear=!0,b.root===b)return;let{visualElement:c}=b.options;if(!c)return;let d=c.props[hY];if(window.MotionHasOptimisedAnimation(d,"transform")){let{layout:a,layoutId:c}=b.options;window.MotionCancelOptimisedAnimation(d,"transform",gB,!(a||c))}let{parent:e}=b;e&&!e.hasCheckedOptimisedAppear&&a(e)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let a=0;a<this.path.length;a++){let b=this.path[a];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}let{layoutId:b,layout:c}=this.options;if(void 0===b&&!c)return;let d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),a&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(kB);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(kC);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(kD),this.nodes.forEach(kw),this.nodes.forEach(kx)):this.nodes.forEach(kC),this.clearAllSnapshots();let a=gU.now();gD.delta=fr(0,1e3/60,a-gD.timestamp),gD.timestamp=a,gD.isProcessing=!0,gE.update.process(gD),gE.preRender.process(gD),gE.render.process(gD),gD.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,gS.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(kA),this.sharedNodes.forEach(kI)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,gB.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){gB.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||jz(this.snapshot.measuredBox.x)||jz(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a<this.path.length;a++)this.path[a].updateScroll();let a=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected=f4(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:b}=this.options;b&&b.notify("LayoutMeasure",this.layout.layoutBox,a?a.layoutBox:void 0)}updateScroll(a="measure"){let b=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===a&&(b=!1),b&&this.instance){let b=d(this.instance);this.scroll={animationId:this.root.animationId,phase:a,isRoot:b,offset:c(this.instance),wasRoot:this.scroll?this.scroll.isRoot:b}}}resetTransform(){if(!e)return;let a=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,b=this.projectionDelta&&!ka(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;a&&this.instance&&(b||hx(this.latestValues)||f)&&(e(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(a=!0){var b;let c=this.measurePageBox(),d=this.removeElementScroll(c);return a&&(d=this.removeTransform(d)),kP((b=d).x),kP(b.y),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:a}=this.options;if(!a)return f4();let b=a.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(kR))){let{scroll:a}=this.root;a&&(hC(b.x,a.offset.x),hC(b.y,a.offset.y))}return b}removeElementScroll(a){let b=f4();if(j7(b,a),this.scroll?.wasRoot)return b;for(let c=0;c<this.path.length;c++){let d=this.path[c],{scroll:e,options:f}=d;d!==this.root&&e&&f.layoutScroll&&(e.wasRoot&&j7(b,a),hC(b.x,e.offset.x),hC(b.y,e.offset.y))}return b}applyTransform(a,b=!1){let c=f4();j7(c,a);for(let a=0;a<this.path.length;a++){let d=this.path[a];!b&&d.options.layoutScroll&&d.scroll&&d!==d.root&&hE(c,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),hx(d.latestValues)&&hE(c,d.latestValues)}return hx(this.latestValues)&&hE(c,this.latestValues),c}removeTransform(a){let b=f4();j7(b,a);for(let a=0;a<this.path.length;a++){let c=this.path[a];if(!c.instance||!hx(c.latestValues))continue;hw(c.latestValues)&&c.updateSnapshot();let d=f4();j7(d,c.measurePageBox()),j5(b,c.latestValues,c.snapshot?c.snapshot.layoutBox:void 0,d)}return hx(this.latestValues)&&j5(b,this.latestValues),b}setTargetDelta(a){this.targetDelta=a,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(a){this.options={...this.options,...a,crossfade:void 0===a.crossfade||a.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==gD.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(a=!1){let b=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=b.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=b.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=b.isSharedProjectionDirty);let c=!!this.resumingFrom||this!==b;if(!(a||c&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:d,layoutId:e}=this.options;if(!this.layout||!(d||e))return;this.resolvedRelativeTargetAt=gD.timestamp;let f=this.getClosestProjectingParent();if(f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),this.targetDelta||this.relativeTarget||(f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),this.relativeTarget||this.targetDelta){if(this.target||(this.target=f4(),this.targetWithTransforms=f4()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var g,h,i;this.forceRelativeParentToResolveTarget(),g=this.target,h=this.relativeTarget,i=this.relativeParent.target,jC(g.x,h.x,i.x),jC(g.y,h.y,i.y)}else this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):j7(this.target,this.layout.layoutBox),hB(this.target,this.targetDelta)):j7(this.target,this.layout.layoutBox);this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&1!==this.animationProgress?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0)}}getClosestProjectingParent(){if(!(!this.parent||hw(this.parent.latestValues)||hy(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(a,b,c){this.relativeParent=a,this.linkedParentVersion=a.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=f4(),this.relativeTargetOrigin=f4(),jE(this.relativeTargetOrigin,b,c),j7(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let a=this.getLead(),b=!!this.resumingFrom||this!==a,c=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(c=!1),b&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===gD.timestamp&&(c=!1),c)return;let{layout:d,layoutId:e}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||e))return;j7(this.layoutCorrected,this.layout.layoutBox);let f=this.treeScale.x,g=this.treeScale.y;!function(a,b,c,d=!1){let e,f,g=c.length;if(g){b.x=b.y=1;for(let h=0;h<g;h++){f=(e=c[h]).projectionDelta;let{visualElement:g}=e.options;(!g||!g.props.style||"contents"!==g.props.style.display)&&(d&&e.options.layoutScroll&&e.scroll&&e!==e.root&&hE(a,{x:-e.scroll.offset.x,y:-e.scroll.offset.y}),f&&(b.x*=f.x.scale,b.y*=f.y.scale,hB(a,f)),d&&hx(e.latestValues)&&hE(a,e.latestValues))}b.x<1.0000000000001&&b.x>.999999999999&&(b.x=1),b.y<1.0000000000001&&b.y>.999999999999&&(b.y=1)}}(this.layoutCorrected,this.treeScale,this.path,b),a.layout&&!a.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(a.target=a.layout.layoutBox,a.targetWithTransforms=f4());let{target:h}=a;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(j8(this.prevProjectionDelta.x,this.projectionDelta.x),j8(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),jB(this.projectionDelta,this.layoutCorrected,h,this.latestValues),this.treeScale.x===f&&this.treeScale.y===g&&kf(this.projectionDelta.x,this.prevProjectionDelta.x)&&kf(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(a=!0){if(this.options.visualElement?.scheduleRender(),a){let a=this.getStack();a&&a.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=f2(),this.projectionDelta=f2(),this.projectionDeltaWithTransform=f2()}setAnimationOrigin(a,b=!1){let c,d=this.snapshot,e=d?d.latestValues:{},f={...this.latestValues},g=f2();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!b;let h=f4(),i=(d?d.source:void 0)!==(this.layout?this.layout.source:void 0),j=this.getStack(),k=!j||j.members.length<=1,l=!!(i&&!k&&!0===this.options.crossfade&&!this.path.some(kL));this.animationProgress=0,this.mixTargetDelta=b=>{let d=b/1e3;if(kJ(g.x,a.x,d),kJ(g.y,a.y,d),this.setTargetDelta(g),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var j,m,n,o,p,q;jE(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),n=this.relativeTarget,o=this.relativeTargetOrigin,p=h,q=d,kK(n.x,o.x,p.x,q),kK(n.y,o.y,p.y,q),c&&(j=this.relativeTarget,m=c,kb(j.x,m.x)&&kb(j.y,m.y))&&(this.isProjectionDirty=!1),c||(c=f4()),j7(c,this.relativeTarget)}i&&(this.animationValues=f,function(a,b,c,d,e,f){e?(a.opacity=ho(0,c.opacity??1,kl(d)),a.opacityExit=ho(b.opacity??1,0,km(d))):f&&(a.opacity=ho(b.opacity??1,c.opacity??1,d));for(let e=0;e<kh;e++){let f=`border${kg[e]}Radius`,g=kk(b,f),h=kk(c,f);(void 0!==g||void 0!==h)&&(g||(g=0),h||(h=0),0===g||0===h||kj(g)===kj(h)?(a[f]=Math.max(ho(ki(g),ki(h),d),0),(fF.test(h)||fF.test(g))&&(a[f]+="%")):a[f]=h)}(b.rotate||c.rotate)&&(a.rotate=ho(b.rotate||0,c.rotate||0,d))}(f,e,this.latestValues,d,l,k)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=d},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(gC(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=gB.update(()=>{var b,c,d;let e;jY.hasAnimatedSinceResize=!0,h8.layout++,this.motionValue||(this.motionValue=gW(0)),this.currentAnimation=(b=this.motionValue,c=[0,1e3],d={...a,velocity:0,isSync:!0,onUpdate:b=>{this.mixTargetDelta(b),a.onUpdate&&a.onUpdate(b)},onStop:()=>{h8.layout--},onComplete:()=>{h8.layout--,a.onComplete&&a.onComplete(),this.completeAnimation()}},(e=f5(b)?b:gW(b)).start(jj("",e,c,d)),e.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let a=this.getLead(),{targetWithTransforms:b,target:c,layout:d,latestValues:e}=a;if(b&&c&&d){if(this!==a&&this.layout&&d&&kQ(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||f4();let b=jz(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+b;let d=jz(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+d}j7(b,c),hE(b,e),jB(this.projectionDeltaWithTransform,this.layoutCorrected,b,e)}}registerSharedNode(a,b){this.sharedNodes.has(a)||this.sharedNodes.set(a,new kr),this.sharedNodes.get(a).add(b);let c=b.options.initialPromotionConfig;b.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(b):void 0})}isLead(){let a=this.getStack();return!a||a.lead===this}getLead(){let{layoutId:a}=this.options;return a&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:b,preserveFollowOpacity:c}={}){let d=this.getStack();d&&d.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),b&&this.setOptions({transition:b})}relegate(){let a=this.getStack();return!!a&&a.relegate(this)}resetSkewAndRotation(){let{visualElement:a}=this.options;if(!a)return;let b=!1,{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(b=!0),!b)return;let d={};c.z&&ku("z",a,d,this.animationValues);for(let b=0;b<ks.length;b++)ku(`rotate${ks[b]}`,a,d,this.animationValues),ku(`skew${ks[b]}`,a,d,this.animationValues);for(let b in a.render(),d)a.setStaticValue(b,d[b]),this.animationValues&&(this.animationValues[b]=d[b]);a.scheduleRender()}applyProjectionStyles(a,b){if(!this.instance||this.isSVG)return;if(!this.isVisible){a.visibility="hidden";return}let c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,a.visibility="",a.opacity="",a.pointerEvents=hR(b?.pointerEvents)||"",a.transform=c?c(this.latestValues,""):"none";return}let d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(a.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,a.pointerEvents=hR(b?.pointerEvents)||""),this.hasProjected&&!hx(this.latestValues)&&(a.transform=c?c({},""):"none",this.hasProjected=!1);return}a.visibility="";let e=d.animationValues||d.latestValues;this.applyTransformsToTarget();let f=function(a,b,c){let d="",e=a.x.translate/b.x,f=a.y.translate/b.y,g=c?.z||0;if((e||f||g)&&(d=`translate3d(${e}px, ${f}px, ${g}px) `),(1!==b.x||1!==b.y)&&(d+=`scale(${1/b.x}, ${1/b.y}) `),c){let{transformPerspective:a,rotate:b,rotateX:e,rotateY:f,skewX:g,skewY:h}=c;a&&(d=`perspective(${a}px) ${d}`),b&&(d+=`rotate(${b}deg) `),e&&(d+=`rotateX(${e}deg) `),f&&(d+=`rotateY(${f}deg) `),g&&(d+=`skewX(${g}deg) `),h&&(d+=`skewY(${h}deg) `)}let h=a.x.scale*b.x,i=a.y.scale*b.y;return(1!==h||1!==i)&&(d+=`scale(${h}, ${i})`),d||"none"}(this.projectionDeltaWithTransform,this.treeScale,e);c&&(f=c(e,f)),a.transform=f;let{x:g,y:h}=this.projectionDelta;for(let b in a.transformOrigin=`${100*g.origin}% ${100*h.origin}% 0`,d.animationValues?a.opacity=d===this?e.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:e.opacityExit:a.opacity=d===this?void 0!==e.opacity?e.opacity:"":void 0!==e.opacityExit?e.opacityExit:0,hp){if(void 0===e[b])continue;let{correct:c,applyTo:g,isCSSVariable:h}=hp[b],i="none"===f?e[b]:c(e[b],d);if(g){let b=g.length;for(let c=0;c<b;c++)a[g[c]]=i}else h?this.options.visualElement.renderState.vars[b]=i:a[b]=i}this.options.layoutId&&(a.pointerEvents=d===this?hR(b?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(a=>a.currentAnimation?.stop()),this.root.nodes.forEach(kB),this.root.sharedNodes.clear()}}}function kw(a){a.updateLayout()}function kx(a){let b=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&b&&a.hasListeners("didUpdate")){let{layoutBox:c,measuredBox:d}=a.layout,{animationType:e}=a.options,f=b.source!==a.layout.source;"size"===e?ju(a=>{let d=f?b.measuredBox[a]:b.layoutBox[a],e=jz(d);d.min=c[a].min,d.max=d.min+e}):kQ(e,b.layoutBox,c)&&ju(d=>{let e=f?b.measuredBox[d]:b.layoutBox[d],g=jz(c[d]);e.max=e.min+g,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[d].max=a.relativeTarget[d].min+g)});let g=f2();jB(g,c,b.layoutBox);let h=f2();f?jB(h,a.applyTransform(d,!0),b.measuredBox):jB(h,c,b.layoutBox);let i=!ka(g),j=!1;if(!a.resumeFrom){let d=a.getClosestProjectingParent();if(d&&!d.resumeFrom){let{snapshot:e,layout:f}=d;if(e&&f){let g=f4();jE(g,b.layoutBox,e.layoutBox);let h=f4();jE(h,c,f.layoutBox),kd(g,h)||(j=!0),d.options.layoutRoot&&(a.relativeTarget=h,a.relativeTargetOrigin=g,a.relativeParent=d)}}}a.notifyListeners("didUpdate",{layout:c,snapshot:b,delta:h,layoutDelta:g,hasLayoutChanged:i,hasRelativeLayoutChanged:j})}else if(a.isLead()){let{onExitComplete:b}=a.options;b&&b()}a.options.transition=void 0}function ky(a){a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function kz(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function kA(a){a.clearSnapshot()}function kB(a){a.clearMeasurements()}function kC(a){a.isLayoutDirty=!1}function kD(a){let{visualElement:b}=a.options;b&&b.getProps().onBeforeLayoutMeasure&&b.notify("BeforeLayoutMeasure"),a.resetTransform()}function kE(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function kF(a){a.resolveTargetDelta()}function kG(a){a.calcProjection()}function kH(a){a.resetSkewAndRotation()}function kI(a){a.removeLeadSnapshot()}function kJ(a,b,c){a.translate=ho(b.translate,0,c),a.scale=ho(b.scale,1,c),a.origin=b.origin,a.originPoint=b.originPoint}function kK(a,b,c,d){a.min=ho(b.min,c.min,d),a.max=ho(b.max,c.max,d)}function kL(a){return a.animationValues&&void 0!==a.animationValues.opacityExit}let kM={duration:.45,ease:[.4,0,.1,1]},kN=a=>"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),kO=kN("applewebkit/")&&!kN("chrome/")?Math.round:gx;function kP(a){a.min=kO(a.min),a.max=kO(a.max)}function kQ(a,b,c){return"position"===a||"preserve-aspect"===a&&!(.2>=Math.abs(ke(b)-ke(c)))}function kR(a){return a!==a.root&&a.scroll?.wasRoot}let kS=kv({attachResizeListener:(a,b)=>jx(a,"resize",b),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),kT={current:void 0},kU=kv({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!kT.current){let a=new kS({});a.mount(window),a.setOptions({layoutScroll:!0}),kT.current=a}return kT.current},resetTransform:(a,b)=>{a.style.transform=void 0!==b?b:"none"},checkIsScrollRoot:a=>"fixed"===window.getComputedStyle(a).position});function kV(a,b){let c=function(a,b,c){if(a instanceof EventTarget)return[a];if("string"==typeof a){let b=document,c=(void 0)??b.querySelectorAll(a);return c?Array.from(c):[]}return Array.from(a)}(a),d=new AbortController;return[c,{passive:!0,...b,signal:d.signal},()=>d.abort()]}function kW(a){return!("touch"===a.pointerType||jy.x||jy.y)}function kX(a,b,c){let{props:d}=a;a.animationState&&d.whileHover&&a.animationState.setActive("whileHover","Start"===c);let e=d["onHover"+c];e&&gB.postRender(()=>e(b,jG(b)))}let kY=(a,b)=>!!b&&(a===b||kY(a,b.parentElement)),kZ=new WeakSet;function k$(a){return b=>{"Enter"===b.key&&a(b)}}function k_(a,b){a.dispatchEvent(new PointerEvent("pointer"+b,{isPrimary:!0,bubbles:!0}))}function k0(a){return jF(a)&&!(jy.x||jy.y)}function k1(a,b,c){let{props:d}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&d.whileTap&&a.animationState.setActive("whileTap","Start"===c);let e=d["onTap"+("End"===c?"":c)];e&&gB.postRender(()=>e(b,jG(b)))}let k2=new WeakMap,k3=new WeakMap,k4=a=>{let b=k2.get(a.target);b&&b(a)},k5=a=>{a.forEach(k4)},k6={some:0,all:1},k7=function(a,b){if("u"<typeof Proxy)return h_;let c=new Map,d=(c,d)=>h_(c,d,a,b);return new Proxy((a,b)=>d(a,b),{get:(e,f)=>"create"===f?d:(c.has(f)||c.set(f,h_(f,void 0,a,b)),c.get(f))})}({animation:{Feature:class extends h0{constructor(a){super(a),a.animationState||(a.animationState=function(a){let b=b=>Promise.all(b.map(({animation:b,options:c})=>(function(a,b,c={}){let d;if(a.notify("AnimationStart",b),Array.isArray(b))d=Promise.all(b.map(b=>jm(a,b,c)));else if("string"==typeof b)d=jm(a,b,c);else{let e="function"==typeof b?h1(a,b,c.custom):b;d=Promise.all(jk(a,e,c))}return d.then(()=>{a.notify("AnimationComplete",b)})})(a,b,c))),c=js(),d=!0,e=b=>(c,d)=>{let e=h1(a,d,"exit"===b?a.presenceContext?.custom:void 0);if(e){let{transition:a,transitionEnd:b,...d}=e;c={...c,...d,...b}}return c};function f(f){let{props:g}=a,h=function a(b){if(!b)return;if(!b.isControllingVariants){let c=b.parent&&a(b.parent)||{};return void 0!==b.props.initial&&(c.initial=b.props.initial),c}let c={};for(let a=0;a<jn;a++){let d=g1[a],e=b.props[d];(g_(e)||!1===e)&&(c[d]=e)}return c}(a.parent)||{},i=[],j=new Set,k={},l=1/0;for(let b=0;b<jq;b++){var m,n;let o=jp[b],p=c[o],q=void 0!==g[o]?g[o]:h[o],r=g_(q),s=o===f?p.isActive:null;!1===s&&(l=b);let t=q===h[o]&&q!==g[o]&&r;if(t&&d&&a.manuallyAnimateOnMount&&(t=!1),p.protectedKeys={...k},!p.isActive&&null===s||!q&&!p.prevProp||g$(q)||"boolean"==typeof q)continue;let u=(m=p.prevProp,"string"==typeof(n=q)?n!==m:!!Array.isArray(n)&&!jo(n,m)),v=u||o===f&&p.isActive&&!t&&r||b>l&&r,w=!1,x=Array.isArray(q)?q:[q],y=x.reduce(e(o),{});!1===s&&(y={});let{prevResolvedValues:z={}}=p,A={...z,...y},B=b=>{v=!0,j.has(b)&&(w=!0,j.delete(b)),p.needsAnimating[b]=!0;let c=a.getValue(b);c&&(c.liveStyle=!1)};for(let a in A){let b=y[a],c=z[a];if(!k.hasOwnProperty(a))(h3(b)&&h3(c)?jo(b,c):b===c)?void 0!==b&&j.has(a)?B(a):p.protectedKeys[a]=!0:null!=b?B(a):j.add(a)}p.prevProp=q,p.prevResolvedValues=y,p.isActive&&(k={...k,...y}),d&&a.blockInitialAnimation&&(v=!1);let C=t&&u,D=!C||w;v&&D&&i.push(...x.map(b=>{let c={type:o};if("string"==typeof b&&d&&!C&&a.manuallyAnimateOnMount&&a.parent){let{parent:d}=a,e=h1(d,b);if(d.enteringChildren&&e){let{delayChildren:b}=e.transition||{};c.delay=jl(d.enteringChildren,a,b)}}return{animation:b,options:c}}))}if(j.size){let b={};if("boolean"!=typeof g.initial){let c=h1(a,Array.isArray(g.initial)?g.initial[0]:g.initial);c&&c.transition&&(b.transition=c.transition)}j.forEach(c=>{let d=a.getBaseTarget(c),e=a.getValue(c);e&&(e.liveStyle=!0),b[c]=d??null}),i.push({animation:b})}let o=!!i.length;return d&&(!1===g.initial||g.initial===g.animate)&&!a.manuallyAnimateOnMount&&(o=!1),d=!1,o?b(i):Promise.resolve()}return{animateChanges:f,setActive:function(b,d){if(c[b].isActive===d)return Promise.resolve();a.variantChildren?.forEach(a=>a.animationState?.setActive(b,d)),c[b].isActive=d;let e=f(b);for(let a in c)c[a].protectedKeys={};return e},setAnimateFunction:function(c){b=c(a)},getState:()=>c,reset:()=>{c=js()}}}(a))}updateAnimationControlsSubscription(){let{animate:a}=this.node.getProps();g$(a)&&(this.unmountControls=a.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:a}=this.node.getProps(),{animate:b}=this.node.prevProps||{};a!==b&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}},exit:{Feature:class extends h0{constructor(){super(...arguments),this.id=jt++}update(){if(!this.node.presenceContext)return;let{isPresent:a,onExitComplete:b}=this.node.presenceContext,{isPresent:c}=this.node.prevPresenceContext||{};if(!this.node.animationState||a===c)return;let d=this.node.animationState.setActive("exit",!a);b&&!a&&d.then(()=>{b(this.id)})}mount(){let{register:a,onExitComplete:b}=this.node.presenceContext||{};b&&b(this.id),a&&(this.unmount=a(this.id))}unmount(){}}},inView:{Feature:class extends h0{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var a;let b;this.unmount();let{viewport:c={}}=this.node.getProps(),{root:d,margin:e,amount:f="some",once:g}=c,h={root:d?d.current:void 0,rootMargin:e,threshold:"number"==typeof f?f:k6[f]},i=a=>{let{isIntersecting:b}=a;if(this.isInView===b||(this.isInView=b,g&&!b&&this.hasEnteredView))return;b&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",b);let{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),e=b?c:d;e&&e(a)};return a=this.node.current,b=function({root:a,...b}){let c=a||document;k3.has(c)||k3.set(c,{});let d=k3.get(c),e=JSON.stringify(b);return d[e]||(d[e]=new IntersectionObserver(k5,{root:a,...b})),d[e]}(h),k2.set(a,i),b.observe(a),()=>{k2.delete(a),b.unobserve(a)}}mount(){this.startObserver()}update(){if("u"<typeof IntersectionObserver)return;let{props:a,prevProps:b}=this.node;["amount","margin","root"].some(function({viewport:a={}},{viewport:b={}}={}){return c=>a[c]!==b[c]}(a,b))&&this.startObserver()}unmount(){}}},tap:{Feature:class extends h0{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=kV(a,c),g=a=>{let d=a.currentTarget;if(!k0(a))return;kZ.add(d);let f=b(d,a),g=(a,b)=>{window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",i),kZ.has(d)&&kZ.delete(d),k0(a)&&"function"==typeof f&&f(a,{success:b})},h=a=>{g(a,d===window||d===document||c.useGlobalTarget||kY(d,a.target))},i=a=>{g(a,!1)};window.addEventListener("pointerup",h,e),window.addEventListener("pointercancel",i,e)};return d.forEach(a=>{(c.useGlobalTarget?window:a).addEventListener("pointerdown",g,e),fd(a)&&(a.addEventListener("focus",a=>((a,b)=>{let c=a.currentTarget;if(!c)return;let d=k$(()=>{if(kZ.has(c))return;k_(c,"down");let a=k$(()=>{k_(c,"up")});c.addEventListener("keyup",a,b),c.addEventListener("blur",()=>k_(c,"cancel"),b)});c.addEventListener("keydown",d,b),c.addEventListener("blur",()=>c.removeEventListener("keydown",d),b)})(a,e)),jw(a)||a.hasAttribute("tabindex")||(a.tabIndex=0))}),f}(a,(a,b)=>(k1(this.node,b,"Start"),(a,{success:b})=>k1(this.node,a,b?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}},focus:{Feature:class extends h0{constructor(){super(...arguments),this.isActive=!1}onFocus(){let a=!1;try{a=this.node.current.matches(":focus-visible")}catch(b){a=!0}a&&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=h7(jx(this.node.current,"focus",()=>this.onFocus()),jx(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}},hover:{Feature:class extends h0{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=kV(a,c),g=a=>{if(!kW(a))return;let{target:c}=a,d=b(c,a);if("function"!=typeof d||!c)return;let f=a=>{kW(a)&&(d(a),c.removeEventListener("pointerleave",f))};c.addEventListener("pointerleave",f,e)};return d.forEach(a=>{a.addEventListener("pointerenter",g,e)}),f}(a,(a,b)=>(kX(this.node,b,"Start"),a=>kX(this.node,a,"End"))))}unmount(){}}},pan:{Feature:class extends h0{constructor(){super(...arguments),this.removePointerDownListener=gx}onPointerDown(a){this.session=new jL(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:jI(this.node)})}createPanHandlers(){let{onPanSessionStart:a,onPanStart:b,onPan:c,onPanEnd:d}=this.node.getProps();return{onSessionStart:jX(a),onStart:jX(b),onMove:c,onEnd:(a,b)=>{delete this.session,d&&gB.postRender(()=>d(a,b))}}}mount(){this.removePointerDownListener=jH(this.node.current,"pointerdown",a=>this.onPointerDown(a))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends h0{constructor(a){super(a),this.removeGroupControls=gx,this.removeListeners=gx,this.controls=new jV(a)}mount(){let{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||gx}update(){let{dragControls:a}=this.node.getProps(),{dragControls:b}=this.node.prevProps||{};a!==b&&(this.removeGroupControls(),a&&(this.removeGroupControls=a.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners()}},ProjectionNode:kU,MeasureLayout:j0},layout:{ProjectionNode:kU,MeasureLayout:j0}},(a,b)=>b.isSVG??hI(a)?new ht(b):new hG(b,{allowProjection:a!==z.Fragment}));function k8(){let a=bc(a=>a._achievementQueue),b=bc(a=>a.consumeAchievementQueue),{toast:c}=(0,bJ.useToast)(),[d,e]=(0,z.useState)([]);return((0,z.useEffect)(()=>{if(0!==a.length)for(let a of b()){bO("achievement");let b=Date.now()+Math.random();e(c=>[...c,{achievement:a,id:b}]),setTimeout(()=>{e(a=>a.filter(a=>a.id!==b))},4e3),c({title:`成就解锁:${a.name}`,description:`${a.desc} 奖励:${a.rewardText}`})}},[a,b,c]),0===d.length)?null:(0,y.jsx)("div",{className:"fixed inset-0 z-[120] pointer-events-none flex items-center justify-center",children:(0,y.jsx)(fo,{children:d.map((a,b)=>{let c=a.achievement,e=(b-(d.length-1)/2)*140;return(0,y.jsx)(k7.div,{initial:{opacity:0,scale:.4,y:40,rotateX:-30},animate:{opacity:1,scale:1,y:e,rotateX:0},exit:{opacity:0,scale:.6,y:-60},transition:{type:"spring",stiffness:280,damping:22},className:"absolute",style:{transformOrigin:"center center"},children:(0,y.jsxs)("div",{className:"relative rounded-2xl border-2 px-8 py-5 backdrop-blur-xl overflow-hidden",style:{borderColor:c.color,background:`linear-gradient(135deg, ${c.color}22, rgba(5,4,16,0.92))`,boxShadow:`0 0 60px ${c.color}66, 0 0 120px ${c.color}33, inset 0 0 30px ${c.color}11`,minWidth:320,maxWidth:420},children:[(0,y.jsx)("div",{className:"absolute -top-20 -right-20 h-40 w-40 rounded-full blur-3xl opacity-50",style:{background:c.color}}),(0,y.jsx)(k7.div,{className:"absolute inset-0 rounded-2xl opacity-20",style:{background:`conic-gradient(from 0deg, transparent, ${c.color}, transparent, ${c.color}, transparent)`},animate:{rotate:360},transition:{duration:8,repeat:1/0,ease:"linear"}}),(0,y.jsxs)("div",{className:"relative flex items-center gap-4",children:[(0,y.jsx)(k7.div,{className:"shrink-0 h-16 w-16 rounded-2xl flex items-center justify-center text-3xl",style:{background:`${c.color}33`,border:`2px solid ${c.color}`,boxShadow:`0 0 20px ${c.color}88, inset 0 0 12px ${c.color}44`},animate:{boxShadow:[`0 0 20px ${c.color}88, inset 0 0 12px ${c.color}44`,`0 0 40px ${c.color}cc, inset 0 0 20px ${c.color}66`,`0 0 20px ${c.color}88, inset 0 0 12px ${c.color}44`]},transition:{duration:2,repeat:1/0},children:c.icon}),(0,y.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,y.jsx)(k7.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:.15},className:"text-[10px] font-mono uppercase tracking-[0.2em] mb-0.5",style:{color:c.color},children:"✦ Achievement Unlocked"}),(0,y.jsx)(k7.h3,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:.2},className:"text-lg font-bold truncate",style:{color:c.color,textShadow:`0 0 12px ${c.color}66`},children:c.name}),(0,y.jsx)(k7.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3},className:"text-[11px] text-muted-foreground/90 truncate",children:c.desc}),(0,y.jsxs)(k7.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:.4},className:"mt-1.5 inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono font-semibold",style:{background:`${c.color}22`,border:`1px solid ${c.color}55`,color:c.color},children:["▸ ",c.rewardText]})]})]}),(0,y.jsx)(k7.div,{className:"absolute bottom-0 left-0 h-0.5",style:{background:c.color},initial:{width:"100%"},animate:{width:"0%"},transition:{duration:4,ease:"linear"}})]})},a.id)})})})}function k9(){let a=bc(a=>a.constellation??[]),b=(0,z.useRef)(null),c=(0,z.useRef)(null),[d,e]=(0,z.useState)({w:360,h:360}),[f,g]=(0,z.useState)(null),h=(0,z.useMemo)(()=>new Set(a),[a]);(0,z.useEffect)(()=>{let a=c.current;if(!a)return;let b=new ResizeObserver(()=>{let b=a.getBoundingClientRect();e({w:Math.max(280,b.width),h:Math.max(280,Math.min(420,b.width))})});return b.observe(a),()=>b.disconnect()},[]);let i=(0,z.useMemo)(()=>{let a=d.w/2;return{cx:a,cy:d.h/2,radius:.32*Math.min(d.w,d.h)}},[d]),j=(0,z.useMemo)(()=>{var a,b,c;return(a=i.cx,b=i.cy,c=i.radius,["mining","decoding","expedition","contact","economy","cosmic"].map((d,e)=>{let f=Math.PI/3*e-Math.PI/2;return{category:d,cx:a+c*Math.cos(f),cy:b+c*Math.sin(f),meta:X[d]}})).map(a=>{let b=function(a,b,c,d=1){return Y.filter(b=>b.category===a).sort((a,b)=>a.order-b.order).map((a,e)=>({perk:a,x:b+(0===e?0:1===e?-18*d:18*d),y:c+(0===e?-22*d:14*d)}))}(a.category,a.cx,a.cy,1);return{...a,stars:b}})},[i]);(0,z.useEffect)(()=>{let c=b.current;if(!c)return;let e=c.getContext("2d");if(!e)return;let f=window.devicePixelRatio||1;c.width=d.w*f,c.height=d.h*f,c.style.width=`${d.w}px`,c.style.height=`${d.h}px`,e.setTransform(f,0,0,f,0,0);let g=0,k=performance.now(),l=b=>{let c=(b-k)/1e3;e.clearRect(0,0,d.w,d.h);let f=e.createRadialGradient(i.cx,i.cy,0,i.cx,i.cy,1.6*i.radius);f.addColorStop(0,"rgba(40,30,80,0.18)"),f.addColorStop(1,"rgba(5,4,16,0)"),e.fillStyle=f,e.fillRect(0,0,d.w,d.h),e.save(),e.translate(i.cx,i.cy);let m=6+1.5*Math.sin(1.5*c),n=e.createRadialGradient(0,0,0,0,0,3*m);for(let b of(n.addColorStop(0,"rgba(232,121,249,0.9)"),n.addColorStop(.4,"rgba(232,121,249,0.3)"),n.addColorStop(1,"rgba(232,121,249,0)"),e.fillStyle=n,e.beginPath(),e.arc(0,0,3*m,0,2*Math.PI),e.fill(),e.fillStyle="#fce7ff",e.beginPath(),e.arc(0,0,.6*m,0,2*Math.PI),e.fill(),e.restore(),j))aa(a,b.category)>0&&(e.save(),e.strokeStyle=b.meta.glow,e.lineWidth=1,e.setLineDash([2,4]),e.globalAlpha=.4+.1*Math.sin(2*c+b.cx),e.beginPath(),e.moveTo(i.cx,i.cy),e.lineTo(b.cx,b.cy),e.stroke(),e.restore());for(let b of j){let d=aa(a,b.category);e.save(),e.font="10px ui-monospace, monospace",e.textAlign="center",e.fillStyle=d>0?b.meta.hex:"rgba(148,163,184,0.5)",e.globalAlpha=.85,e.fillText(b.meta.name,b.cx,b.cy+38),e.restore();let f=b.stars.filter(a=>h.has(a.perk.id));for(let a of(f.length>=2&&(e.save(),e.strokeStyle=b.meta.glow,e.lineWidth=1.5,e.globalAlpha=.6,e.beginPath(),f.forEach((a,b)=>{0===b?e.moveTo(a.x,a.y):e.lineTo(a.x,a.y)}),e.stroke(),e.restore()),b.stars)){let d=h.has(a.perk.id);e.save(),e.translate(a.x,a.y);let f=d?.85+.15*Math.sin(3*c+.1*a.x):.3,g=d?10:5,i=e.createRadialGradient(0,0,0,0,0,g);if(i.addColorStop(0,d?b.meta.glow:"rgba(100,116,139,0.2)"),i.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=i,e.globalAlpha=f,e.beginPath(),e.arc(0,0,g,0,2*Math.PI),e.fill(),e.globalAlpha=d?1:.4,e.fillStyle=d?b.meta.hex:"#475569",e.beginPath(),e.arc(0,0,d?3.5:2,0,2*Math.PI),e.fill(),d){e.strokeStyle=b.meta.hex,e.globalAlpha=.7*f,e.lineWidth=.8;let d=7+1.5*Math.sin(4*c+.1*a.y);e.beginPath(),e.moveTo(-d,0),e.lineTo(d,0),e.moveTo(0,-d),e.lineTo(0,d),e.stroke()}e.restore()}}g=requestAnimationFrame(l)};return g=requestAnimationFrame(l),()=>cancelAnimationFrame(g)},[j,i,d,a,h]);let k=ab(a);return(0,y.jsxs)("div",{ref:c,className:"flex flex-col gap-2 min-h-0 h-full",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between text-[11px] px-1",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)("span",{className:"text-fuchsia-300",children:"✦"}),(0,y.jsx)("span",{className:"text-muted-foreground",children:"星图天赋"}),(0,y.jsxs)("span",{className:"font-mono text-foreground",children:[k.unlocked,"/",k.total]})]}),(0,y.jsx)("span",{className:"text-muted-foreground/60 text-[10px]",children:"每次飞升可解锁 1 个"})]}),(0,y.jsxs)("div",{className:"relative rounded-xl bg-black/30 border border-white/5 overflow-hidden flex-shrink-0",children:[(0,y.jsx)("canvas",{ref:b,onMouseMove:a=>{let c=b.current;if(!c)return;let d=c.getBoundingClientRect(),e=a.clientX-d.left,f=a.clientY-d.top,i=null,k=14;for(let a of j)for(let b of a.stars){let a=Math.hypot(b.x-e,b.y-f);a<k&&(k=a,i={perk:b.perk,x:b.x,y:b.y,unlocked:h.has(b.perk.id)})}g(i)},onMouseLeave:()=>g(null),className:"block cursor-pointer"}),f&&(0,y.jsxs)("div",{className:"pointer-events-none absolute z-10 max-w-[200px] rounded-md bg-black/85 border border-white/10 px-2 py-1.5 text-[10px] leading-tight shadow-lg backdrop-blur-sm",style:{left:Math.min(f.x+12,d.w-200),top:Math.max(0,f.y-40)},children:[(0,y.jsxs)("div",{className:"font-bold mb-0.5",style:{color:X[f.perk.category].hex},children:[f.unlocked?"★ ":"☆ ",f.perk.name]}),(0,y.jsx)("div",{className:"text-muted-foreground",children:f.perk.desc}),(0,y.jsxs)("div",{className:"text-muted-foreground/60 mt-0.5",children:[X[f.perk.category].name," · 序",f.perk.order]})]})]}),(0,y.jsx)("div",{className:"grid grid-cols-3 gap-1 text-[10px]",children:Object.keys(X).map(b=>{let c=X[b],d=aa(a,b),e=Y.filter(a=>a.category===b).length;return(0,y.jsxs)("div",{className:"rounded-md bg-black/25 border border-white/5 px-1.5 py-1 flex items-center gap-1",style:d>0?{borderColor:`${c.hex}40`}:void 0,children:[(0,y.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full flex-shrink-0",style:{background:c.hex,boxShadow:d>0?`0 0 4px ${c.hex}`:"none"}}),(0,y.jsx)("span",{className:"text-muted-foreground truncate",children:c.name}),(0,y.jsxs)("span",{className:"ml-auto font-mono",style:{color:d>0?c.hex:"rgba(148,163,184,0.5)"},children:[d,"/",e]})]},b)})}),(0,y.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1 echo-scrollbar",children:0===a.length?(0,y.jsxs)("div",{className:"rounded-md bg-black/25 border border-dashed border-white/10 px-3 py-3 text-center text-[11px] text-muted-foreground/70",children:[(0,y.jsx)("div",{className:"mb-1 text-fuchsia-300/80",children:"✦"}),"尚未解锁任何天赋。",(0,y.jsx)("br",{}),"累积接触进度至 100%,发起「飞升」即可在 3 个随机天赋中选 1。"]}):(0,y.jsx)("div",{className:"flex flex-col gap-1",children:a.map(a=>{let b=Z(a);if(!b)return null;let c=X[b.category];return(0,y.jsxs)("div",{className:"rounded-md bg-black/25 border px-2 py-1.5 flex items-center gap-2 text-[11px]",style:{borderColor:`${c.hex}30`},children:[(0,y.jsx)("span",{className:"inline-block h-2 w-2 rounded-full flex-shrink-0",style:{background:c.hex,boxShadow:`0 0 6px ${c.hex}`}}),(0,y.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,y.jsx)("div",{className:"text-foreground truncate",children:b.name}),(0,y.jsx)("div",{className:"text-muted-foreground/70 text-[10px] truncate",children:b.desc})]}),(0,y.jsx)("span",{className:"text-[9px] text-muted-foreground/50 font-mono",children:c.name})]},a)})})})]})}let la=(0,bd.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),lb=(0,bd.default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),lc=(0,bd.default)("award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]),ld=(0,bd.default)("crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]),le=(0,bd.default)("medal",[["path",{d:"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15",key:"143lza"}],["path",{d:"M11 12 5.12 2.2",key:"qhuxz6"}],["path",{d:"m13 12 5.88-9.8",key:"hbye0f"}],["path",{d:"M8 7h8",key:"i86dvs"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}],["path",{d:"M12 18v-2h-.5",key:"fawc4q"}]]),lf=(0,bd.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),lg=(0,bd.default)("flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]),lh=(0,bd.default)("hourglass",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M5 2h14",key:"pdyrp9"}],["path",{d:"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",key:"1d314k"}],["path",{d:"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2",key:"1vvvr6"}]]),li=(0,bd.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),lj=(0,bd.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),lk=(0,bd.default)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),ll=(0,bd.default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),lm=["routine","anomaly","singular"];function ln(a){return 0===a?{icon:ld,color:"#fbbf24",label:"1st"}:1===a?{icon:le,color:"#cbd5e1",label:"2nd"}:2===a?{icon:lc,color:"#f97316",label:"3rd"}:null}function lo(){let a,b,c,d,e,f,g=bc(a=>a.grantBeaconReward),h=bc(a=>a.claimWeeklyBeacon),i=bc(a=>a.claimTimedBeacon),j=bc(a=>a.claimChainReward),{toast:k}=(0,bJ.useToast)(),[l,m]=(0,z.useState)(null),[n,o]=(0,z.useState)(null),[p,q]=(0,z.useState)(null),[r,s]=(0,z.useState)(null),[t,u]=(0,z.useState)(null),[v,w]=(0,z.useState)(null),[x,A]=(0,z.useState)(null),[B,C]=(0,z.useState)([]),[D,E]=(0,z.useState)("00:00:00"),[F,G]=(0,z.useState)("00:00:00"),[H,I]=(0,z.useState)("00:00:00"),[J,K]=(0,z.useState)(Date.now()),[L,M]=(0,z.useState)("local"),[N,O]=(0,z.useState)([]),[P,R]=(0,z.useState)(!1),[S,T]=(0,z.useState)(null),[U,V]=(0,z.useState)(!1),[W,X]=(0,z.useState)(0),Y=(0,z.useRef)(!1);(0,z.useEffect)(()=>{m(aK()),o(aQ()),q(a2()),s(a3()),u(aU()),w(aV()),A(aZ()),C(aO());let a=setInterval(()=>{K(Date.now()),o(aQ()),s(a3()),w(aV()),A(aZ()),m(a=>a??aK()),q(a=>a??a2()),u(a=>a??aU())},1e3);return()=>clearInterval(a)},[]),(0,z.useEffect)(()=>{E(aR(function(a=new Date){return Math.max(0,Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,0,0,0)-a.getTime())}(new Date(J)))),G(aR(a1(new Date(J)))),I(aR(function(a=new Date){let b=(a.getUTCDay()+6)%7;return Math.max(0,Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()-b,0,0,0)+6048e5-a.getTime())}(new Date(J))))},[J]),(0,z.useEffect)(()=>{X(a6())},[]);let Z=(0,z.useCallback)(async()=>{if(!Y.current){Y.current=!0,R(!0),T(null);try{let a=await a7();O(a),V(!0),X(a6()),0===a.length&&T("尚无全球记录,成为首位登顶者!")}catch{T("全球榜连接失败,请稍后重试")}finally{R(!1),Y.current=!1}}},[]);(0,z.useEffect)(()=>{"global"!==L||U||P||Z()},[L,U,P,Z]);let $=(0,z.useCallback)(()=>{if(!l||!n||null===n.completedAt||n.claimed)return;let a=function(a,b){var c;if(b.claimed||null===b.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:aO()};let d=aL(a,b.progress,b.durationSec),e={timestamp:Date.now(),dateKey:a.dateKey,challenge:a.type,difficulty:a.difficulty,progress:b.progress/a.goal,score:d,durationSec:b.durationSec},f=aP(e);return c={...b,claimed:!0},"u">typeof localStorage&&localStorage.setItem(aN,JSON.stringify(c)),{rewardInsight:a.rewardInsight,rewardContact:a.rewardContact,score:d,leaderboard:f,entry:e}}(l,n);C(a.leaderboard),o(aQ()),g(a.rewardInsight,a.rewardContact),bO("achievement"),k({title:"✦ 每日信标奖励已领取",description:`+${a.rewardInsight} 洞见 \xb7 +${a.rewardContact.toFixed(1)} 接触 \xb7 得分 ${a.score}`}),a.entry&&a8(a.entry).then(b=>{b>=1&&(X(a.entry.timestamp),"global"===L&&Z())})},[l,n,k,g,L,Z]),_=(0,z.useCallback)(()=>{if(!p||!r||null===r.completedAt||r.claimed)return;let a=i();C(aO()),s(a3()),(a.rewardInsight>0||a.rewardContact>0)&&(bO("achievement"),k({title:"✦ 限时挑战奖励已领取",description:`+${a.rewardInsight} 洞见 \xb7 +${a.rewardContact.toFixed(1)} 接触 \xb7 得分 ${a.score}`}),X(a6()),"global"===L&&Z())},[p,r,k,i,L,Z]),aa=(0,z.useCallback)(()=>{if(!t||!v||null===v.completedAt||v.claimed)return;let a=h();C(aO()),w(aV()),(a.rewardInsight>0||a.rewardContact>0)&&(bO("achievement"),k({title:"✦ 周挑战奖励已领取",description:`+${a.rewardInsight} 洞见 \xb7 +${a.rewardContact.toFixed(1)} 接触 \xb7 得分 ${a.score}`}),X(a6()),"global"===L&&Z())},[t,v,k,h,L,Z]),ab=(0,z.useCallback)(a=>{let b=aY.find(b=>b.milestone===a),c=j(a);A(aZ()),c.ok&&(bO("achievement"),k({title:`✦ ${c.label||b?.label||"里程碑"} 已领取`,description:`+${c.rewardInsight} 洞见 \xb7 +${c.rewardContact.toFixed(1)} 接触`}))},[k,j]);if(!l||!n||!p||!r||!t||!v||!x)return(0,y.jsx)("div",{className:"flex items-center justify-center h-full text-xs text-muted-foreground/60",children:"正在校准深空信标…"});let ac=aG[l.difficulty],ad=aH[l.type],ae=Math.min(100,n.progress/l.goal*100),af=null!==n.completedAt,ag=n.claimed,ah=af&&!ag,ai=aG[p.difficulty],aj=aH[p.type],ak=Math.min(100,r.progress/p.goal*100),al=null!==r.completedAt,am=r.claimed,an=al&&!am,ao=aG[t.difficulty],ap=aH[t.type],aq=Math.min(100,v.progress/t.goal*100),ar=null!==v.completedAt,as=v.claimed,at=ar&&!as,au=function(a){let b=a$(a),c=0;for(let b of aX)a>=b&&(c=b);if(null===b)return{current:a,next:null,prev:c,progressPct:100};let d=b-c,e=a-c;return{current:a,next:b,prev:c,progressPct:Math.min(100,Math.max(0,d>0?Math.round(e/d*100):100))}}(x.currentStreak),av=a$(x.currentStreak),aw=aI(),ax=x.lastCompletedDateKey===aw;return(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex flex-col gap-2.5 h-full overflow-y-auto echo-scroll pr-0.5",children:[(0,y.jsx)(bI.default,{id:"12f5fcaad97b9273",dynamic:[ac.glow,ac.glow,ac.glow,ac.glow],children:`.echo-scroll::-webkit-scrollbar{width:4px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.echo-scroll::-webkit-scrollbar-track{background:0 0}@keyframes beacon-pulse-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(2.2)}}@keyframes beacon-glow{0%,to{box-shadow:0 0 18px ${ac.glow},inset 0 0 12px ${ac.glow}}50%{box-shadow:0 0 32px ${ac.glow},inset 0 0 20px ${ac.glow}}}@keyframes weekly-glow{0%,to{box-shadow:0 0 18px #e879f959,inset 0 0 12px #e879f940}50%{box-shadow:0 0 32px #e879f980,inset 0 0 20px #e879f959}}@keyframes timed-glow{0%,to{box-shadow:0 0 18px #fbbf2466,inset 0 0 12px #fbbf2440}50%{box-shadow:0 0 30px #fbbf248c,inset 0 0 20px #fbbf2459}}@keyframes timed-urgent{0%,to{box-shadow:0 0 18px #f43f5e80,inset 0 0 12px #f43f5e4d}50%{box-shadow:0 0 34px #f43f5eb3,inset 0 0 22px #f43f5e66}}@keyframes chain-milestone-pulse{0%,to{transform:scale(1);box-shadow:0 0 #fb71858c}50%{transform:scale(1.06);box-shadow:0 0 0 8px #fb718500}}.chain-milestone-reachable{animation:1.8s ease-in-out infinite chain-milestone-pulse}@keyframes chain-streak-flux{0%,to{background-position:0%}50%{background-position:100%}}.chain-streak-text{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#fbbf24,#fb7185,#fbbf24) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;animation:4s ease-in-out infinite chain-streak-flux}`}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between",children:[(0,y.jsxs)("h3",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold flex items-center gap-1.5",children:[(0,y.jsx)(la,{className:"h-4 w-4 text-fuchsia-400"}),"深空信标"]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 text-[10px] text-muted-foreground/70",children:[(0,y.jsx)(lb,{className:"h-3 w-3"}),"次日重置",(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-fuchsia-300/90",children:D})]})]}),(0,y.jsxs)("div",{style:{borderColor:`${ac.color}55`,background:`linear-gradient(135deg, ${ac.color}1f, rgba(0,0,0,0.45))`,animation:af?"none":"beacon-glow 3s ease-in-out infinite"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[!af&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{style:{border:`1.5px solid ${ac.color}`,animation:"beacon-pulse-ring 2.5s ease-out infinite"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-4 right-4 h-10 w-10 rounded-full pointer-events-none"}),(0,y.jsx)("div",{style:{border:`1.5px solid ${ac.color}`,animation:"beacon-pulse-ring 2.5s ease-out infinite 1.25s"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-4 right-4 h-10 w-10 rounded-full pointer-events-none"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,y.jsxs)("span",{style:{background:`${ac.color}22`,color:ac.color,border:`1px solid ${ac.color}55`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:ac.icon}),ac.label]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[ad.icon," ",ad.label]}),af&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/40 flex items-center gap-1",children:[(0,y.jsx)(b_,{className:"h-2.5 w-2.5"})," 已完成"]})]}),(0,y.jsx)("h4",{style:{color:ac.color,textShadow:`0 0 10px ${ac.glow}`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold mb-1",children:l.title}),(0,y.jsx)("p",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] text-muted-foreground/80 leading-relaxed mb-2.5",children:l.desc}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,y.jsxs)("span",{style:{color:ac.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(n.progress,l.goal)," / ",l.goal," ",ad.unit]})]}),(0,y.jsx)(bF,{value:ae,className:"h-2 bg-black/40",style:{"--progress-color":ac.color}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-2 text-[10px]",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"奖励:"}),l.rewardInsight>0&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-300 font-mono",children:["+",Q(l.rewardInsight),"洞见"]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-fuchsia-300 font-mono",children:["+",l.rewardContact.toFixed(1),"接触"]})]}),(0,y.jsx)(bZ,{onClick:$,disabled:!ah,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:ah?`linear-gradient(90deg, ${ac.color}, ${ac.color}cc)`:`${ac.color}1a`,color:ah?"#022c22":`${ac.color}99`},children:ag?"已领取":ah?"领取奖励":af?"已领取":"进行中…"})]}),af&&n.durationSec>0&&(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(n.durationSec/60),"分",n.durationSec%60,"秒"]})]})]}),(a=18e5>a1(new Date(J))&&!al,b=al?"none":a?"timed-urgent 1.5s ease-in-out infinite":"timed-glow 3s ease-in-out infinite",(0,y.jsxs)("div",{style:{borderColor:a?"rgba(244,63,94,0.5)":"rgba(251,191,36,0.4)",background:a?"linear-gradient(135deg, rgba(244,63,94,0.12), rgba(251,191,36,0.08), rgba(0,0,0,0.45))":"linear-gradient(135deg, rgba(251,191,36,0.14), rgba(0,0,0,0.45))",animation:b},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(lh,{className:`h-3.5 w-3.5 ${a?"text-rose-400":"text-amber-400"}`}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`text-xs font-semibold ${a?"text-rose-200":"text-amber-200"}`,children:"限时挑战 · TIMED"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 text-[9px] text-muted-foreground/70",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-amber-300/70",children:a0().split("_").slice(1).join(" ")}),(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`font-mono ${a?"text-rose-300":"text-amber-300/90"}`,children:F})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,y.jsxs)("span",{style:{background:`${ai.color}22`,color:ai.color,border:`1px solid ${ai.color}55`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:ai.icon}),ai.label]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[aj.icon," ",aj.label]}),al&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/40 flex items-center gap-1",children:[(0,y.jsx)(b_,{className:"h-2.5 w-2.5"})," 已完成"]}),a&&!al&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-rose-500/20 text-rose-300 border border-rose-500/40 flex items-center gap-1 animate-pulse",children:"即将结束"})]}),(0,y.jsx)("h4",{style:{color:ai.color,textShadow:`0 0 10px ${ai.glow}`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold mb-1",children:p.title}),(0,y.jsx)("p",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/80 leading-relaxed mb-2",children:p.desc}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,y.jsxs)("span",{style:{color:ai.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(r.progress,p.goal)," / ",p.goal," ",aj.unit]})]}),(0,y.jsx)(bF,{value:ak,className:"h-2 bg-black/40",style:{"--progress-color":a?"#f43f5e":ai.color}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 text-[10px]",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"奖励:"}),p.rewardInsight>0&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-300 font-mono",children:["+",Q(p.rewardInsight),"洞见"]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-fuchsia-300 font-mono",children:["+",p.rewardContact.toFixed(1),"接触"]})]}),(0,y.jsx)(bZ,{onClick:_,disabled:!an,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:an?"linear-gradient(90deg, #34d399, #34d399cc)":"rgba(251,191,36,0.10)",color:an?"#022c22":"rgba(251,191,36,0.55)"},children:am?"已领取":an?"领取奖励":al?"已领取":"进行中…"})]}),al&&r.durationSec>0&&(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(r.durationSec/60),"分",r.durationSec%60,"秒"]})]})),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" grid grid-cols-1 lg:grid-cols-2 gap-2.5",children:[(0,y.jsxs)("div",{style:{borderColor:"rgba(232,121,249,0.4)",background:"linear-gradient(135deg, rgba(232,121,249,0.12), rgba(0,0,0,0.45))",animation:ar?"none":"weekly-glow 3.5s ease-in-out infinite"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(e_,{className:"h-3.5 w-3.5 text-fuchsia-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-xs font-semibold text-fuchsia-200",children:"周挑战 · WEEKLY"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 text-[9px] text-muted-foreground/70",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-fuchsia-300/80",children:t.weekKey}),(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-fuchsia-300/90",children:H})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,y.jsxs)("span",{style:{background:`${ao.color}22`,color:ao.color,border:`1px solid ${ao.color}55`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:ao.icon}),ao.label]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[ap.icon," ",ap.label]}),ar&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/40 flex items-center gap-1",children:[(0,y.jsx)(b_,{className:"h-2.5 w-2.5"})," 已完成"]})]}),(0,y.jsx)("h4",{style:{color:ao.color,textShadow:`0 0 10px ${ao.glow}`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold mb-1",children:t.title}),(0,y.jsx)("p",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/80 leading-relaxed mb-2",children:t.desc}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,y.jsxs)("span",{style:{color:ao.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(v.progress,t.goal)," / ",t.goal," ",ap.unit]})]}),(0,y.jsx)(bF,{value:aq,className:"h-2 bg-black/40",style:{"--progress-color":ao.color}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 text-[10px]",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"奖励:"}),t.rewardInsight>0&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-300 font-mono",children:["+",Q(t.rewardInsight),"洞见"]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-fuchsia-300 font-mono",children:["+",t.rewardContact.toFixed(1),"接触"]})]}),(0,y.jsx)(bZ,{onClick:aa,disabled:!at,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:at?"linear-gradient(90deg, #34d399, #34d399cc)":"rgba(232,121,249,0.10)",color:at?"#022c22":"rgba(232,121,249,0.55)"},children:as?"已领取":at?"领取奖励":ar?"已领取":"进行中…"})]}),ar&&v.durationSec>0&&(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(v.durationSec/60),"分",v.durationSec%60,"秒"]})]}),(0,y.jsxs)("div",{style:{borderColor:"rgba(251,191,36,0.35)",background:"linear-gradient(135deg, rgba(251,191,36,0.10), rgba(251,113,133,0.10), rgba(0,0,0,0.4))"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(lf,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-xs font-semibold text-amber-200",children:"信标链 · CHAIN"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-baseline gap-1",children:[(0,y.jsx)(lg,{className:"h-3 w-3 text-rose-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/60",children:"连续"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" chain-streak-text text-2xl font-bold font-mono leading-none",children:x.currentStreak}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/60",children:"天"})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2 flex items-center justify-between",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:ax?"今日已贡献":"今日尚未完成日挑战"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`text-[10px] font-mono px-1.5 py-0.5 rounded border ${ax?"bg-emerald-500/15 text-emerald-300 border-emerald-500/30":"bg-white/5 text-muted-foreground/70 border-white/10"}`,children:ax?"✓ 已记录":"○ 待完成"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2 relative",children:[(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-6 left-[12.5%] right-[12.5%] h-[2px] bg-white/10"}),(d=(c={0:12.5,3:12.5,7:37.5,14:62.5,30:87.5})[au.prev]??12.5,e=null!==au.next?c[au.next]??87.5:87.5,(f=Math.max(0,d+(e-d)*(au.progressPct/100)-12.5))<=0?null:(0,y.jsx)("div",{style:{left:"12.5%",width:`${f}%`,background:"linear-gradient(90deg, #fbbf24, #fb7185)",boxShadow:"0 0 8px rgba(251,113,133,0.5)"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-6 h-[2px]"})),aX.map(a=>{let b=aY.find(b=>b.milestone===a),c=x.milestonesClaimed.includes(a),d=x.currentStreak>=a&&!c,e=x.currentStreak>0&&av===a,f="rgba(255,255,255,0.05)",g="rgba(255,255,255,0.15)",h="rgba(255,255,255,0.4)";return c?(f="rgba(52,211,153,0.25)",g="#34d399",h="#34d399"):d?(f="rgba(251,113,133,0.20)",g="#fb7185",h="#fb7185"):e&&(f="rgba(251,191,36,0.20)",g="#fbbf24",h="#fbbf24"),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex flex-col items-center gap-1 z-10 flex-1",children:[(0,y.jsx)("div",{style:{background:f,borderColor:g,color:h},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`w-12 h-12 rounded-full flex items-center justify-center font-mono font-bold text-sm border-2 ${d?"chain-milestone-reachable":""}`,children:c?(0,y.jsx)(b_,{className:"h-4 w-4"}):a}),(0,y.jsx)("span",{style:{color:h},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] text-center leading-tight",children:b?.label}),c?(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] text-emerald-400/80 font-mono",children:"已领"}):d?(0,y.jsx)(bZ,{onClick:()=>ab(a),size:"sm",className:"h-5 px-2 text-[9px] py-0 border-0",style:{background:"linear-gradient(90deg, #fb7185, #f43f5e)",color:"#1c0608"},children:"领取"}):(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] text-muted-foreground/40 font-mono",children:["+",b?.rewardInsight,"洞"]})]},a)})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:null===au.next?"已通关全部里程碑":`下一目标:${au.next} 天`}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono text-amber-300",children:[au.current,null!==au.next&&` / ${au.next}`," 天"]})]}),(0,y.jsx)(bF,{value:au.progressPct,className:"h-1.5 bg-black/40",style:{"--progress-color":"#fbbf24"}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2 text-[10px]",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-2",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"最长"}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-amber-300",children:[x.longestStreak,"天"]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-2",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"累计"}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-rose-300",children:[x.totalCompletions,"次"]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"续命"}),x.graceUsed>=1?(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-rose-400/80",children:"已用"}):(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-emerald-400/80",children:"可用"})]})]})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" rounded-xl border border-white/10 bg-black/30 p-2.5",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2 mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(e4,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-xs font-semibold",children:"深空排行榜"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-0.5 p-0.5 rounded-lg bg-black/40 border border-white/10",children:[(0,y.jsxs)("button",{type:"button",onClick:()=>M("local"),"aria-pressed":"local"===L,className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono transition-colors ${"local"===L?"bg-amber-500/25 text-amber-300 border border-amber-500/40":"text-muted-foreground/60 hover:text-muted-foreground border border-transparent"}`,children:[(0,y.jsx)(e4,{className:"h-2.5 w-2.5"}),"本地"]}),(0,y.jsxs)("button",{type:"button",onClick:()=>M("global"),"aria-pressed":"global"===L,className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono transition-colors ${"global"===L?"bg-emerald-500/25 text-emerald-300 border border-emerald-500/40":"text-muted-foreground/60 hover:text-muted-foreground border border-transparent"}`,children:[(0,y.jsx)(lj,{className:"h-2.5 w-2.5"}),"全球"]})]}),"global"===L&&(0,y.jsx)("button",{type:"button",onClick:()=>void Z(),disabled:P,"aria-label":"刷新全球榜",title:"刷新全球榜",className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" p-1 rounded-md text-muted-foreground/70 hover:text-emerald-300 hover:bg-emerald-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:(0,y.jsx)(li,{className:`h-3 w-3 ${P?"animate-spin":""}`})})]})]}),(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-1.5 text-[10px] text-muted-foreground/50 flex items-center gap-2",children:"local"===L?(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:["本机 Top ",B.length||0," · 离线可用"]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:["全球 Top ",N.length||0]}),U&&!P&&N.length>0&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-emerald-400/60",children:"· 已同步"}),P&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-400/70 flex items-center gap-1",children:[(0,y.jsx)(ll,{className:"h-2.5 w-2.5 animate-spin"}),"同步中…"]})]})}),"local"===L&&(0===B.length?(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/40",children:[(0,y.jsx)(e4,{className:"h-6 w-6 mx-auto mb-1 opacity-30"}),"尚无记录。完成限时、每日或本周信标即可登榜。"]}):(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" space-y-0.5 max-h-[200px] overflow-y-auto echo-scroll",children:B.map((a,b)=>{let c=ln(b),d=aG[a.difficulty],e=aH[a.challenge],f=a.dateKey===aI()||a.dateKey===aT()||a.dateKey===a0();return(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-2 px-2 py-1 rounded-lg text-[11px] ${a.isWeekly?"bg-fuchsia-500/10 border border-fuchsia-500/20":a.isTimed?"bg-amber-500/10 border border-amber-500/20":f?"bg-fuchsia-500/10 border border-fuchsia-500/20":"hover:bg-white/5"}`,children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" w-6 flex items-center justify-center",children:c?(0,y.jsx)(c.icon,{className:"h-3.5 w-3.5",style:{color:c.color}}):(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/50 font-mono",children:b+1})}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 flex-1 min-w-0",children:[(0,y.jsx)("span",{style:{color:d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono",children:d.icon}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/80 truncate",children:e.label}),a.isWeekly&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-fuchsia-500/20 text-fuchsia-300 border border-fuchsia-500/40",children:"WEEK"}),a.isTimed&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-amber-500/20 text-amber-300 border border-amber-500/40",children:"TIMED"}),a.progress>=1&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-emerald-400/70",children:"✓"})]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/50 font-mono text-[10px] w-16 text-right",children:[Math.floor(a.durationSec/60),"m",a.durationSec%60,"s"]}),(0,y.jsx)("span",{style:{color:d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono font-semibold w-12 text-right",children:Q(a.score)})]},`local-${a.timestamp}-${b}`)})})),"global"===L&&(0,y.jsx)(y.Fragment,{children:P&&0===N.length?(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/60 flex items-center justify-center gap-2",children:[(0,y.jsx)(ll,{className:"h-3.5 w-3.5 animate-spin text-emerald-400"}),"正在拉取全球榜…"]}):0===N.length?(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/40",children:S?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(lk,{className:"h-6 w-6 mx-auto mb-1 opacity-40 text-rose-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-rose-300/70",children:S}),(0,y.jsx)("button",{type:"button",onClick:()=>void Z(),className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" block mx-auto mt-2 text-[10px] text-emerald-400/80 hover:text-emerald-300 underline-offset-2 hover:underline",children:"重试"})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(lj,{className:"h-6 w-6 mx-auto mb-1 opacity-30 text-emerald-400"}),"尚无全球记录。完成挑战并领取即可登顶全球榜!"]})}):(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" space-y-0.5 max-h-[200px] overflow-y-auto echo-scroll",children:N.map((a,b)=>{let c=ln(b),d=aG[a.difficulty]??aG.routine,e=aH[a.challenge]??{label:a.challenge,icon:"·",unit:""},f=W>0&&a.timestamp===W;return(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-2 px-2 py-1 rounded-lg text-[11px] ${f?"bg-emerald-500/15 border border-emerald-500/40 shadow-[0_0_12px_rgba(52,211,153,0.25)]":a.isWeekly?"bg-fuchsia-500/10 border border-fuchsia-500/20":a.isTimed?"bg-amber-500/10 border border-amber-500/20":"hover:bg-white/5"}`,children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" w-6 flex items-center justify-center",children:c?(0,y.jsx)(c.icon,{className:"h-3.5 w-3.5",style:{color:c.color}}):(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`font-mono ${f?"text-emerald-300 font-bold":"text-muted-foreground/50"}`,children:b+1})}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 flex-1 min-w-0",children:[(0,y.jsx)("span",{style:{color:d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono",children:d.icon}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/80 truncate",children:e.label}),a.isWeekly&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-fuchsia-500/20 text-fuchsia-300 border border-fuchsia-500/40",children:"WEEK"}),a.isTimed&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-amber-500/20 text-amber-300 border border-amber-500/40",children:"TIMED"}),f&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-emerald-500/25 text-emerald-200 border border-emerald-500/50",children:"YOU"}),a.progress>=1&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-emerald-400/70",children:"✓"})]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/50 font-mono text-[10px] w-16 text-right",children:[Math.floor(a.durationSec/60),"m",a.durationSec%60,"s"]}),(0,y.jsx)("span",{style:{color:f?"#34d399":d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono font-semibold w-12 text-right",children:Q(a.score)})]},`global-${a.timestamp}-${b}`)})})})]}),(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-center gap-3 text-[9px] text-muted-foreground/50",children:lm.map(a=>{let b=aG[a];return(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1",children:[(0,y.jsx)("span",{style:{color:b.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:b.icon}),b.label," ×",b.mult]},a)})})]})}let lp=(0,bd.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);function lq(){let[a,b]=(0,z.useState)(!1),[c,d]=(0,z.useState)(0),[e,f]=(0,z.useState)(null),[g,h]=(0,z.useState)(!1),i=(0,z.useRef)(null);(0,z.useEffect)(()=>{},[]),(0,z.useEffect)(()=>{let a=()=>{d(0),h(!1),b(!0)};return window.addEventListener("echo-nexus-tutorial-restart",a),()=>window.removeEventListener("echo-nexus-tutorial-restart",a)},[]),bc(a=>a.crystals),bc(a=>a.pulsePower),bc(a=>a.tech),bc(a=>a.activePuzzle),bc(a=>!!a.activeExpedition&&!a.activeExpedition.finished);let j=(0,z.useRef)(null);(0,z.useEffect)(()=>{if(!a)return;let b=eT[c];if(!b?.expectAction)return;let d=0,e=()=>{let a=bc.getState(),c=!1;"pulse"===b.expectAction?(null===j.current&&(j.current=a.crystals),c=a.crystals>=(j.current??0)+Math.max(.5,.5*a.pulsePower)):"decode-start"===b.expectAction?c=!!a.activePuzzle:"tech-buy"===b.expectAction?c=Object.values(a.tech).some(a=>a>0):"expedition-start"===b.expectAction&&(c=!!a.activeExpedition&&!a.activeExpedition.finished),h(a=>a!==c?c:a),d=requestAnimationFrame(e)};return d=requestAnimationFrame(e),()=>cancelAnimationFrame(d)},[a,c]);let k=(0,z.useCallback)(()=>{let a=eT[c];if(!a?.target)return void f(null);let b=document.querySelector(`[data-tut="${a.target}"]`);if(!b)return void f(null);let d=b.getBoundingClientRect();f({left:d.left,top:d.top,width:d.width,height:d.height})},[c]);(0,z.useEffect)(()=>{if(!a)return;let b=()=>{k(),i.current=requestAnimationFrame(b)};return i.current=requestAnimationFrame(b),()=>{i.current&&cancelAnimationFrame(i.current)}},[a,c,k]);let l=(0,z.useCallback)(()=>{b(!1);try{localStorage.setItem(eU,"1")}catch{}},[]),m=(0,z.useCallback)(()=>{c>=eT.length-1?l():(d(a=>a+1),h(!1))},[c,l]),n=(0,z.useCallback)(()=>{c<=0||(d(a=>a-1),h(!1))},[c]);if(!a)return null;let o=eT[c],p=c>=eT.length-1,q=o.placement??"auto",r={};return r=e?"right"===q?{left:e.left+e.width+16,top:e.top+e.height/2,transform:"translateY(-50%)"}:"left"===q?{left:Math.max(16,e.left-360-16),top:e.top+e.height/2,transform:"translateY(-50%)",maxWidth:340}:"top"===q?{left:Math.max(16,Math.min(e.left,window.innerWidth-360-16)),top:Math.max(16,e.top-220),maxWidth:340}:{left:Math.max(16,Math.min(window.innerWidth/2-170,window.innerWidth-360-16)),top:Math.min(window.innerHeight-260,(e?.bottom??window.innerHeight/2)+16),maxWidth:340}:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",maxWidth:440},(0,y.jsxs)("div",{className:"fixed inset-0 z-[79]",children:[(()=>{if(!e)return(0,y.jsx)("div",{className:"fixed inset-0 bg-black/70 z-[80] pointer-events-auto"});let{left:a,top:b,width:c,height:d}=e,f=a-6,g=b-6,h=c+12,i=d+12;return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:0,right:0,height:Math.max(0,g)}}),(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:g+i,right:0,bottom:0}}),(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:g,width:Math.max(0,f),height:i}}),(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:f+h,top:g,right:0,height:i}}),(0,y.jsx)("div",{className:"fixed z-[81] pointer-events-none rounded-lg",style:{left:f,top:g,width:h,height:i,boxShadow:"0 0 0 2px rgba(232,121,249,0.9), 0 0 24px 4px rgba(232,121,249,0.5)",animation:"tut-pulse 1.6s ease-in-out infinite"}})]})})(),(0,y.jsx)("div",{className:"fixed z-[82] w-[340px] sm:w-[360px] max-w-[calc(100vw-32px)]",style:r,children:(0,y.jsxs)("div",{className:"relative rounded-2xl border border-fuchsia-400/40 bg-gradient-to-br from-[#1a0a2e]/95 to-[#0a0a1e]/95 backdrop-blur-xl shadow-2xl shadow-fuchsia-500/20 overflow-hidden",children:[(0,y.jsx)("div",{className:"h-1 w-full bg-gradient-to-r from-emerald-400 via-fuchsia-500 to-rose-400"}),(0,y.jsx)("button",{onClick:l,className:"absolute top-2 right-2 h-7 w-7 rounded-full flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-white/10 transition z-10","aria-label":"关闭教程",children:(0,y.jsx)(b$.X,{className:"h-3.5 w-3.5"})}),(0,y.jsxs)("div",{className:"p-4 pt-3.5",children:[(0,y.jsx)("div",{className:"flex items-center gap-1.5 mb-2.5",children:eT.map((a,b)=>(0,y.jsx)("div",{className:`h-1 rounded-full transition-all ${b===c?"w-6 bg-fuchsia-400":b<c?"w-3 bg-fuchsia-400/50":"w-3 bg-white/15"}`},a.id))}),(0,y.jsxs)("h3",{className:"text-sm font-bold text-fuchsia-100 mb-1.5 flex items-center gap-1.5 pr-6",children:[(0,y.jsx)(b_,{className:"h-3.5 w-3.5 text-fuchsia-300 shrink-0"}),o.title]}),(0,y.jsx)("p",{className:"text-[12.5px] text-muted-foreground leading-relaxed whitespace-pre-line",children:o.body}),o.expectAction&&!g&&(0,y.jsxs)("div",{className:"mt-3 px-2.5 py-1.5 rounded-lg bg-amber-500/10 border border-amber-400/30 text-[11px] text-amber-200 flex items-center gap-1.5",children:[(0,y.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-400 animate-pulse"}),"完成动作后自动进入下一步,或点跳过"]}),o.expectAction&&g&&(0,y.jsx)("div",{className:"mt-3 px-2.5 py-1.5 rounded-lg bg-emerald-500/10 border border-emerald-400/30 text-[11px] text-emerald-200 flex items-center gap-1.5",children:"✓ 已检测到动作"}),(0,y.jsxs)("div",{className:"flex items-center gap-2 mt-4",children:[(0,y.jsxs)(bZ,{size:"sm",variant:"ghost",onClick:n,disabled:0===c,className:"h-7 px-2 text-[11px] text-muted-foreground hover:text-foreground",children:[(0,y.jsx)(lp,{className:"h-3.5 w-3.5"}),"上一步"]}),(0,y.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,y.jsx)(bZ,{size:"sm",variant:"ghost",onClick:l,className:"h-7 px-2 text-[11px] text-muted-foreground hover:text-foreground",children:"跳过"}),(0,y.jsxs)(bZ,{size:"sm",onClick:m,className:"h-7 px-3 text-[11px] bg-fuchsia-500 hover:bg-fuchsia-600 text-white border-fuchsia-400/50",children:[p?"完成":"下一步",(0,y.jsx)(e0,{className:"h-3.5 w-3.5 ml-0.5"})]})]})]}),(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground/60 text-center mt-2",children:[c+1," / ",eT.length]})]})]})})]})}var lr=a.i(19721);let ls=(0,bd.default)("compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),lt=(0,bd.default)("brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]),lu=(0,bd.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),lv=(0,bd.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),lw={Compass:ls,Brain:lt,Swords:eW,Sparkles:b_},lx={exploration:{text:"text-emerald-300",border:"border-emerald-400/30",borderActive:"border-emerald-400/70",bg:"bg-emerald-500/10",ring:"ring-emerald-400/40",barFrom:"from-emerald-400",barTo:"to-emerald-500",glow:"rgba(52,211,153,0.45)"},wisdom:{text:"text-fuchsia-300",border:"border-fuchsia-400/30",borderActive:"border-fuchsia-400/70",bg:"bg-fuchsia-500/10",ring:"ring-fuchsia-400/40",barFrom:"from-fuchsia-400",barTo:"to-fuchsia-500",glow:"rgba(232,121,249,0.45)"},courage:{text:"text-amber-300",border:"border-amber-400/30",borderActive:"border-amber-400/70",bg:"bg-amber-500/10",ring:"ring-amber-400/40",barFrom:"from-amber-400",barTo:"to-amber-500",glow:"rgba(251,191,36,0.45)"},inspiration:{text:"text-rose-300",border:"border-rose-400/30",borderActive:"border-rose-400/70",bg:"bg-rose-500/10",ring:"ring-rose-400/40",barFrom:"from-rose-400",barTo:"to-rose-500",glow:"rgba(251,113,133,0.45)"}};function ly(){let a=bc(a=>a.attributes),b=bc(a=>a.attributeProgress),c=bc(a=>a.pendingAttrPoints??0),d=bc(a=>a.allocateAttribute),e=(0,z.useMemo)(()=>an(a),[a]),f=(0,z.useMemo)(()=>a.exploration+a.wisdom+a.courage+a.inspiration,[a]),g=(0,z.useMemo)(()=>(am(a.exploration)+am(a.wisdom)+am(a.courage)+am(a.inspiration))*100,[a]);return(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex flex-col gap-2.5 h-full overflow-y-auto echo-scroll pr-0.5",children:[(0,y.jsx)(bI.default,{id:"fb70db4abea5ec9f",children:".echo-scroll::-webkit-scrollbar{width:4px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.echo-scroll::-webkit-scrollbar-track{background:0 0}@keyframes echo-pending-pulse{0%,to{box-shadow:0 0 #e879f980}50%{box-shadow:0 0 14px 4px #e879f9a6}}.echo-pending-pulse{animation:1.6s ease-in-out infinite echo-pending-pulse}@keyframes echo-card-glow{0%,to{opacity:.5}50%{opacity:1}}"}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center justify-between",children:[(0,y.jsx)("h3",{className:"jsx-fb70db4abea5ec9f text-sm font-semibold flex items-center gap-1.5",children:(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f bg-gradient-to-br from-emerald-300 via-fuchsia-300 to-rose-300 bg-clip-text text-transparent",children:"驾驶员属性"})}),(0,y.jsxs)("div",{className:`jsx-fb70db4abea5ec9f text-[10px] px-2 py-0.5 rounded-full border ${c>0?"border-fuchsia-400/60 bg-fuchsia-500/15 text-fuchsia-200 echo-pending-pulse font-bold":"border-white/15 bg-black/25 text-muted-foreground"}`,children:["待分配 ",c]})]}),(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f grid grid-cols-2 lg:grid-cols-4 gap-2",children:al.map(e=>{let f=ak[e],g=lx[e],h=lw[f.icon]??b_,i=a?.[e]??0,j=b?.[e]??{exp:0,level:i},k=100*am(i),l=ao(i),m=j.exp,n=l>0?Math.min(100,m/l*100):100,o=i>=100,p=c>0&&!o,q=i>50;return(0,y.jsxs)("div",{style:{boxShadow:`inset 0 0 18px ${g.glow}`},className:`jsx-fb70db4abea5ec9f relative rounded-xl border ${g.border} ${g.bg} p-2.5 flex flex-col gap-1.5 overflow-hidden transition-all duration-300`,children:[(0,y.jsx)("div",{style:{background:f.hex},className:"jsx-fb70db4abea5ec9f pointer-events-none absolute -top-8 -right-8 h-20 w-20 rounded-full blur-2xl opacity-50"}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f relative flex items-center gap-1.5",children:[(0,y.jsx)("div",{style:{boxShadow:`0 0 8px ${g.glow}`},className:`jsx-fb70db4abea5ec9f shrink-0 h-7 w-7 rounded-lg flex items-center justify-center ${g.bg} border ${g.border}`,children:(0,y.jsx)(h,{className:`jsx-fb70db4abea5ec9f h-3.5 w-3.5 ${g.text}`})}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f min-w-0 flex-1 leading-tight",children:[(0,y.jsx)("div",{className:`jsx-fb70db4abea5ec9f text-[11px] font-semibold ${g.text} truncate`,children:f.name}),(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f text-[8px] text-muted-foreground/70 uppercase tracking-wider truncate",children:f.enName})]}),(0,y.jsxs)("div",{className:`jsx-fb70db4abea5ec9f shrink-0 text-[9px] px-1.5 py-0.5 rounded font-mono font-bold ${o?"bg-amber-400/20 text-amber-200 border border-amber-400/40":"bg-black/30 text-white/80 border border-white/10"}`,children:["Lv.",i]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f relative flex items-end justify-between",children:[(0,y.jsxs)("span",{className:`jsx-fb70db4abea5ec9f text-lg font-mono font-bold ${g.text} leading-none`,children:[i,(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f text-[9px] text-muted-foreground/60 ml-0.5",children:["/",100]})]}),(0,y.jsxs)("span",{className:`jsx-fb70db4abea5ec9f text-[10px] ${g.text} font-mono`,children:["+",k.toFixed(1),"%"]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f relative",children:[(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f h-1.5 rounded-full bg-black/40 overflow-hidden border border-white/5",children:(0,y.jsx)("div",{style:{width:`${o?100:n}%`,boxShadow:`0 0 6px ${g.glow}`},className:`jsx-fb70db4abea5ec9f h-full bg-gradient-to-r ${g.barFrom} ${g.barTo} transition-all duration-500`})}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center justify-between mt-0.5 text-[8px] text-muted-foreground/70 font-mono",children:[(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f",children:o?"已满级":`${m} / ${l} EXP`}),q&&!o&&(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-amber-300/70",children:"递减区"})]})]}),(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f relative flex flex-col gap-0.5 mt-0.5",children:f.effects.map((a,b)=>(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f text-[8.5px] text-muted-foreground/70 leading-tight flex items-center gap-1",children:[(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f "+(g.text||""),children:"·"}),(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f truncate",children:a})]},b))}),(0,y.jsxs)("button",{type:"button",disabled:!p,onClick:()=>d(e,1),"aria-label":`分配 1 点到 ${f.name}`,style:p?{boxShadow:`0 0 8px ${g.glow}`}:void 0,className:`jsx-fb70db4abea5ec9f relative mt-auto rounded-md border px-1.5 py-1 flex items-center justify-center gap-0.5 text-[10px] font-bold transition-all ${p?`${g.borderActive} ${g.bg} ${g.text} hover:scale-105 cursor-pointer`:"border-white/5 bg-black/20 text-muted-foreground/30 cursor-not-allowed"}`,children:[(0,y.jsx)(lu,{className:"h-3 w-3"}),(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f",children:"分配"})]})]},e)})}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f mt-auto rounded-lg border border-white/10 bg-black/30 px-2.5 py-1.5 flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center gap-1.5 text-[10px]",children:[(0,y.jsx)(lv,{className:"h-3 w-3 text-fuchsia-300"}),(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-muted-foreground",children:"总等级"}),(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f font-mono font-bold text-fuchsia-200",children:[f,(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f text-muted-foreground/60 text-[9px]",children:["/",400]})]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center gap-2 text-[10px]",children:[(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-muted-foreground",children:"总加成"}),(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f font-mono font-bold text-emerald-200",children:["+",g.toFixed(1),"%"]})]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f grid grid-cols-2 gap-1 text-[9px]",children:[(0,y.jsx)(lz,{label:"探险力",value:`\xd7${e.expeditionPowerMult.toFixed(2)}`,color:"text-emerald-300"}),(0,y.jsx)(lz,{label:"解码步数",value:`+${e.decodeStepsBonus}`,color:"text-fuchsia-300"}),(0,y.jsx)(lz,{label:"洞见倍率",value:`+${(100*e.insightMultAdd).toFixed(1)}%`,color:"text-fuchsia-300"}),(0,y.jsx)(lz,{label:"自动解码周期",value:`\xd7${e.autoDecodeIntervalMult.toFixed(2)}`,color:"text-fuchsia-300"}),(0,y.jsx)(lz,{label:"探险生命",value:`+${e.expeditionHpBonus}`,color:"text-amber-300"}),(0,y.jsx)(lz,{label:"BOSS 胜率",value:`+${(100*e.bossWinRateBonus).toFixed(1)}%`,color:"text-amber-300"}),(0,y.jsx)(lz,{label:"巡航护盾",value:`+${e.cruiseShieldBonus}`,color:"text-amber-300"}),(0,y.jsx)(lz,{label:"接触率",value:`\xd7${e.contactRateMult.toFixed(2)}`,color:"text-rose-300"}),(0,y.jsx)(lz,{label:"星潮触发",value:`+${(100*e.tideTriggerBonus).toFixed(1)}%`,color:"text-rose-300"}),(0,y.jsx)(lz,{label:"脉冲连击",value:`+${(100*e.pulseComboBonus).toFixed(1)}%`,color:"text-rose-300"}),(0,y.jsx)(lz,{label:"巡航速度",value:`\xd7${e.cruiseShipSpeedMult.toFixed(2)}`,color:"text-emerald-300"}),(0,y.jsx)(lz,{label:"产能加成",value:`\xd7${e.crystalsPerSecMult.toFixed(2)}`,color:"text-emerald-300"})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f text-[9px] text-muted-foreground/60 text-center leading-tight",children:["每次飞升获得 ",(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-fuchsia-300 font-mono",children:"飞升次数 × 2 + 1"})," 点属性点;完成对应活动自动累积经验"]})]})}function lz({label:a,value:b,color:c}){return(0,y.jsxs)("div",{className:"flex items-center justify-between rounded bg-black/25 border border-white/5 px-1.5 py-0.5",children:[(0,y.jsx)("span",{className:"text-muted-foreground/80 truncate",children:a}),(0,y.jsx)("span",{className:`font-mono ${c}`,children:b})]})}let lA=(0,bd.default)("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"}]]),lB=(0,bd.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),lC=(0,bd.default)("trending-down",[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]]),lD=(0,bd.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);function lE(){let a=bc(),b=[],c=K.filter(b=>!a.tech[b.id]).sort((a,b)=>a.cost-b.cost)[0];if(c){let d=Math.min(100,a.insights/c.cost*100);b.push({id:"tech_"+c.id,icon:lB,color:"#34d399",label:c.name,detail:`需 ${c.cost} 洞见 \xb7 ${c.desc}`,progress:d,hint:a.insights>=c.cost?"可解锁":`还差 ${c.cost-a.insights} 洞见`})}let d=R.find(b=>!a.achievements[b.id]);d&&b.push({id:"ach_"+d.id,icon:e4,color:"#fbbf24",label:d.name,detail:d.desc,progress:30,hint:d.rewardText});let e=M.find(b=>!a.fragments[b.id]);if(e){let c=M.filter(b=>a.fragments[b.id]).length;b.push({id:"frag_"+e.id,icon:ca,color:"#e879f9",label:e.title,detail:"解码晶体有概率获取",progress:c/M.length*100,hint:`图谱 ${c}/${M.length}`})}a.energy<1&&b.push({id:"expedition_energy",icon:b9,color:"#fb7185",label:"探险能量恢复中",detail:`满能量可深入遗迹`,progress:a.energy/1*100,hint:`${a.energy}/1`}),a.contact<100&&b.push({id:"ascension",icon:ex,color:"#a78bfa",label:"接触进度",detail:"满 100 可飞升新周目",progress:a.contact,hint:`${a.contact.toFixed(1)}/100`});let f=a.constellation??[];a.pendingPerkChoices&&a.pendingPerkChoices.length>0?b.push({id:"constellation_pending",icon:b_,color:"#e879f9",label:"星图觉醒待选择",detail:"3 选 1 永久天赋",progress:100,hint:"立即选择"}):f.length<Y.length&&a.ascensions>0&&b.push({id:"constellation_next",icon:ex,color:"#e879f9",label:"下一道星图天赋",detail:`已觉醒 ${f.length}/${Y.length}`,progress:f.length/Y.length*100,hint:"飞升后解锁"});let g=b.slice(0,3);return 0===g.length?(0,y.jsxs)("div",{className:"rounded-xl border border-emerald-400/20 bg-emerald-950/10 p-3 text-center",children:[(0,y.jsx)(lD,{className:"h-5 w-5 text-emerald-400 mx-auto mb-1"}),(0,y.jsx)("p",{className:"text-[11px] text-emerald-200/80",children:"所有目标已达成"}),(0,y.jsx)("p",{className:"text-[9px] text-muted-foreground/60 mt-0.5",children:"继续飞升开启新周目"})]}):(0,y.jsxs)("div",{className:"rounded-xl border border-white/10 bg-black/30 p-2.5 space-y-2",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(lA,{className:"h-3.5 w-3.5 text-emerald-400"}),(0,y.jsx)("span",{className:"text-[11px] font-semibold text-emerald-200",children:"探索目标"})]}),(0,y.jsx)("span",{className:"text-[9px] text-muted-foreground/50 font-mono",children:"RADAR"})]}),(0,y.jsx)("div",{className:"space-y-1.5",children:g.map(a=>{let b=a.icon,c=a.progress>=100;return(0,y.jsxs)("div",{className:`rounded-lg p-1.5 transition-all ${c?"bg-white/8 border border-white/15":"bg-black/20 border border-white/5"}`,style:c?{boxShadow:`0 0 10px ${a.color}33`}:void 0,children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,y.jsx)(b,{className:`h-3 w-3 shrink-0 ${c?"animate-pulse":""}`,style:{color:a.color}}),(0,y.jsx)("span",{className:"text-[10px] font-medium truncate flex-1",style:{color:c?a.color:"rgba(255,255,255,0.75)"},children:a.label}),(0,y.jsx)("span",{className:"text-[8px] font-mono text-muted-foreground/70 shrink-0",children:a.hint})]}),(0,y.jsx)("div",{className:"h-0.5 rounded-full bg-black/50 overflow-hidden",children:(0,y.jsx)("div",{className:"h-full transition-all duration-500",style:{width:`${Math.min(100,a.progress)}%`,background:a.color,boxShadow:c?`0 0 6px ${a.color}`:"none"}})}),(0,y.jsx)("p",{className:"text-[8px] text-muted-foreground/60 mt-0.5 truncate",children:a.detail})]},a.id)})}),(0,y.jsxs)("div",{className:"flex items-center gap-1 text-[8px] text-muted-foreground/50 pt-0.5 border-t border-white/5",children:[(0,y.jsx)(lC,{className:"h-2.5 w-2.5"}),(0,y.jsx)("span",{children:"持续探索 · 解锁深空奥秘"})]})]})}let lF=[{id:"relic_first_echo",name:"初次回响",race:"无名先驱",era:"纪元前 · 未知",icon:"✦",color:"#34d399",brief:"深空中第一缕被捕获的智慧信号。",story:"当自治无人机首次解码出这缕信号时,整个星核为之震颤。那不是噪声,而是某种古老文明留下的问候——跨越亿万年的回响,证明我们并不孤独。",unlockHint:"发起第一次脉冲扫描",unlock:a=>a.totalDecoded>=0||a.crystals>0,reward:{crystals:10},rewardText:"+10 晶体"},{id:"relic_crystal_whisper",name:"晶体低语",race:"晶语族",era:"第一纪元 · 晶石时代",icon:"◈",color:"#fb7185",brief:"能够将记忆封存在晶体中的远古种族。",story:"晶语族相信,记忆是宇宙的本质。他们建造了巨大的晶体矩阵,将整个文明的历史封存在谐振频率中。当他们的恒星熄灭时,唯有这些晶体在虚空中持续低语。",unlockHint:"累计解码 10 颗记忆晶体",unlock:a=>a.totalDecoded>=10,reward:{insights:20,crystalsPerSecPct:5},rewardText:"+20 洞见 · 产能 +5%"},{id:"relic_void_ark",name:"虚空方舟",race:"渡厄者",era:"第二纪元 · 大迁徙",icon:"❖",color:"#fbbf24",brief:"为逃离超新星爆发而建造的星际方舟。",story:"渡厄者的母星在一夜之间步入死亡。他们用三百年建造了十二艘方舟,每一艘都载着十亿灵魂的数字意识。如今,只有这一艘的残骸漂浮在我们的考古坐标上。",unlockHint:"完成 5 次遗迹探险",unlock:a=>a.totalExpeditions>=5,reward:{insights:30},rewardText:"+30 洞见"},{id:"relic_silent_court",name:"寂寂王朝",race:"静默王族",era:"第三纪元 · 铁律纪",icon:"♛",color:"#e879f9",brief:"以沉默为律法的神秘王朝。",story:"静默王族统治了三百个恒星系,却从未留下任何文字。他们的律法刻在引力波中,他们的诗歌写在脉冲星里。我们只能通过残余的引力涟漪,窥见这个王朝的辉煌与寂灭。",unlockHint:"击败 3 个探险 BOSS",unlock:a=>(a.bossKills??0)>=3,reward:{contact:10},rewardText:"+10 接触"},{id:"relic_starforge",name:"锻星炉",race:"铸星者",era:"第四纪元 · 恒星工程",icon:"✺",color:"#34d399",brief:"能够人工点燃恒星的工程文明。",story:"铸星者不满足于利用恒星能量,他们要创造恒星。他们建造了锻星炉——一种能在虚空中凝聚物质的巨型结构。然而,每一次点火都会消耗一整个星系的物质,最终他们自己也成为了燃料。",unlockHint:"解锁 6 项技术",unlock:a=>Object.values(a.tech).filter(a=>a>0).length>=6,reward:{insights:50,crystals:100},rewardText:"+50 洞见 · +100 晶体"},{id:"relic_memory_weaver",name:"忆织者",race:"织忆族",era:"第五纪元 · 意识网络",icon:"✧",color:"#fb7185",brief:"将集体意识编织成网络的心灵文明。",story:"织忆族没有个体概念。他们的每一个『我』都是网络的一个节点,死亡只是断开连接。当整个网络陷入沉睡时,他们编织了最后一张记忆之网,等待后人唤醒。我们的解码,正是唤醒。",unlockHint:"拼凑 4 块记忆碎片",unlock:a=>Object.values(a.fragments).filter(Boolean).length>=4,reward:{contact:15},rewardText:"+15 接触"},{id:"relic_eclipse_tribe",name:"蚀相部落",race:"蚀相族",era:"第六纪元 · 阴影纪",icon:"☀",color:"#fbbf24",brief:"栖身于食恒星阴影中的猎手文明。",story:"蚀相族敬畏阴影。他们在双星系统的食相瞬间狩猎,在光与暗的边界舞蹈。当一颗恒星被吞噬殆尽,他们便迁徙至下一对双星。他们的遗迹,永远隐藏在某个行星的阴影里。",unlockHint:"亲历 3 种星潮事件",unlock:a=>(a.starTidesEncountered??[]).length>=3,reward:{insights:40},rewardText:"+40 洞见"},{id:"relic_ascended",name:"飞升者遗迹",race:"前代飞升者",era:"终末纪元 · 超越",icon:"✦",color:"#e879f9",brief:"曾经的飞升者留下的最后讯息。",story:"在我们之前,已有无数文明触碰到飞升的临界点。他们留下了什么?不是技术,不是财富,而是一句跨越时空的低语:「飞升不是终点,而是新的开始。勇敢者,继续探索。」",unlockHint:"完成第一次飞升",unlock:a=>a.ascensions>=1,reward:{insights:100,contact:25},rewardText:"+100 洞见 · +25 接触"},{id:"relic_constellation",name:"星图密钥",race:"观星者议会",era:"永恒 · 星图守护者",icon:"✧",color:"#34d399",brief:"守护星图天赋秘密的远古议会。",story:"观星者议会不属于任何时代。他们存在于所有时代的星图中,守护着飞升的真正秘密:每一道星图天赋,都是前代飞升者留下的礼物。集齐所有天赋,便能窥见宇宙的真相。",unlockHint:"觉醒 6 道星图天赋",unlock:a=>(a.constellation??[]).length>=6,reward:{insights:80},rewardText:"+80 洞见"},{id:"relic_chronicle",name:"编年史之心",race:"史官族",era:"全纪元 · 记录者",icon:"❖",color:"#fb7185",brief:"记录所有纪元兴衰的永恒史官。",story:"史官族从不干涉,只记录。他们的身体是活体的编年史,每一个细胞都承载着一个纪元的记忆。当最后一个史官死去时,他将所有记忆注入了这颗编年史之心,等待后人继承。",unlockHint:"积累 5 段编年史",unlock:a=>(a.chronicle??[]).length>=5,reward:{insights:60,contact:20},rewardText:"+60 洞见 · +20 接触"},{id:"relic_attribute",name:"四维之证",race:"原型人格",era:"元始 · 自我觉醒",icon:"◈",color:"#fbbf24",brief:"自我觉醒的四维人格原型。",story:"探索力、智慧、勇气、灵感——这四维属性并非凭空而来。它们源自一个远古的原型人格,那个第一次说出「我」的存在。我们的每一次成长,都是对那个原型的回响。",unlockHint:"任一角色属性达到 30",unlock:a=>{let b=a.attributes;return!!b&&(b.exploration>=30||b.wisdom>=30||b.courage>=30||b.inspiration>=30)},reward:{insights:50},rewardText:"+50 洞见"},{id:"relic_cruise",name:"深空航迹",race:"远航者联盟",era:"第七纪元 · 星海远航",icon:"➤",color:"#e879f9",brief:"穿越星海寻找新家园的远航者。",story:"远航者联盟由十二个种族组成,他们共享一艘巨型母舰,在星海中寻找新的家园。他们留下了航迹图——每一道光痕都是一段旅程,每一个航点都是一个希望。我们的巡航,正是延续他们的航迹。",unlockHint:"深空巡航累计通关 5 关",unlock:a=>{try{let a=localStorage.getItem("echo-nexus-cruise-v1");if(!a)return!1;return(JSON.parse(a).totalClears??0)>=5}catch{return!1}},reward:{insights:70,crystals:200},rewardText:"+70 洞见 · +200 晶体"}];function lG(a){return lF.filter(b=>b.unlock(a))}let lH=(0,bd.default)("book-marked",[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),lI=(0,bd.default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),lJ=(0,bd.default)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);function lK(){let a=bc(),[b,c]=(0,z.useState)(null),d=lG(a),e=lG(a).length/lF.length*100,f=function(a){let b=lG(a),c=0,d=0,e=0,f=0;for(let a of b)a.reward.crystals&&(c+=a.reward.crystals),a.reward.insights&&(d+=a.reward.insights),a.reward.contact&&(e+=a.reward.contact),a.reward.crystalsPerSecPct&&(f+=a.reward.crystalsPerSecPct);return{crystals:c,insights:d,contact:e,crystalsPerSecPct:f}}(a),g=b?lF.find(a=>a.id===b):null;return(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex flex-col gap-2.5 h-full min-h-0",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center justify-between gap-2",children:[(0,y.jsxs)("h3",{className:"jsx-89979d12e77b884d text-sm font-semibold flex items-center gap-1.5 shrink-0",children:[(0,y.jsx)(lH,{className:"h-4 w-4 text-fuchsia-400"}),"遗迹图鉴"]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-2 text-[10px] font-mono",children:[(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300",children:d.length}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/50",children:"/"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground",children:lF.length}),(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:["(",e.toFixed(0),"%)"]})]})]}),(0,y.jsx)("div",{className:"jsx-89979d12e77b884d h-1 rounded-full bg-black/40 overflow-hidden",children:(0,y.jsx)("div",{style:{width:`${e}%`,boxShadow:"0 0 8px rgba(232,121,249,0.5)"},className:"jsx-89979d12e77b884d h-full bg-gradient-to-r from-fuchsia-500 via-rose-400 to-amber-400 transition-all duration-500"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d rounded-lg border border-fuchsia-400/20 bg-fuchsia-950/20 px-2.5 py-1.5 flex items-center gap-2 text-[10px] flex-wrap",children:[(0,y.jsx)(b_,{className:"h-3 w-3 text-fuchsia-400 shrink-0"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300/80",children:"考古收获"}),f.crystals>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-emerald-300",children:["+",f.crystals," 晶体"]}),f.insights>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-amber-300",children:["+",f.insights," 洞见"]}),f.contact>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300",children:["+",f.contact," 接触"]}),f.crystalsPerSecPct>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-emerald-300",children:["产能 +",f.crystalsPerSecPct,"%"]}),0===d.length&&(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:"持续探索解锁奖励"})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex-1 min-h-0 overflow-y-auto echo-scroll pr-1",children:[(0,y.jsx)("div",{className:"jsx-89979d12e77b884d grid grid-cols-1 sm:grid-cols-2 gap-1.5",children:lF.map(d=>{let e=!!a.achievements?.[`relic_${d.id}`]||d.unlock(a),f=b===d.id;return(0,y.jsxs)("button",{onClick:()=>c(f?null:d.id),style:e?{boxShadow:`inset 0 0 14px ${d.color}10`}:void 0,className:`jsx-89979d12e77b884d relative rounded-lg border px-2.5 py-2 transition-all duration-300 min-h-[72px] text-left ${e?f?"border-white/30 bg-white/8":"border-white/15 bg-black/30 hover:bg-black/40":"border-white/5 bg-black/15 opacity-70"}`,children:[e&&(0,y.jsx)("div",{style:{background:d.color},className:"jsx-89979d12e77b884d absolute -top-6 -right-6 h-14 w-14 rounded-full blur-2xl opacity-30 pointer-events-none"}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d relative flex items-start gap-2",children:[(0,y.jsx)("div",{style:{background:e?`${d.color}22`:"rgba(255,255,255,0.04)",border:`1px solid ${e?d.color+"55":"rgba(255,255,255,0.08)"}`,color:e?d.color:"#555",boxShadow:e?`0 0 10px ${d.color}33`:"none"},className:"jsx-89979d12e77b884d shrink-0 h-9 w-9 rounded-lg flex items-center justify-center text-lg",children:e?d.icon:(0,y.jsx)(cb,{className:"h-3.5 w-3.5"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d min-w-0 flex-1",children:[(0,y.jsx)("div",{style:{color:e?d.color:"rgba(255,255,255,0.5)"},className:"jsx-89979d12e77b884d text-[11px] font-semibold truncate",children:e?d.name:"??? 未发现"}),e?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d text-[9px] text-muted-foreground/70 truncate flex items-center gap-1",children:[(0,y.jsx)(lI,{className:"h-2.5 w-2.5"}),d.race]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d text-[9px] text-muted-foreground/60 truncate flex items-center gap-1",children:[(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),d.era]})]}):(0,y.jsx)("div",{className:"jsx-89979d12e77b884d text-[9px] text-muted-foreground/60 mt-0.5 line-clamp-2",children:d.unlockHint})]})]})]},d.id)})}),g&&(0,y.jsxs)("div",{style:{borderColor:`${g.color}44`,background:`linear-gradient(135deg, ${g.color}11, rgba(0,0,0,0.4))`},className:"jsx-89979d12e77b884d mt-2 rounded-lg border p-3 relative overflow-hidden",children:[(0,y.jsx)("div",{style:{background:`${g.color}22`},className:"jsx-89979d12e77b884d absolute -top-8 -right-8 h-24 w-24 rounded-full blur-2xl pointer-events-none"}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d relative space-y-1.5",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-2",children:[(0,y.jsx)("span",{style:{color:g.color},className:"jsx-89979d12e77b884d text-base",children:g.icon}),(0,y.jsx)("span",{style:{color:g.color},className:"jsx-89979d12e77b884d text-sm font-semibold",children:g.name})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-3 text-[9px] text-muted-foreground/80",children:[(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d flex items-center gap-1",children:[(0,y.jsx)(lI,{className:"h-2.5 w-2.5"}),g.race]}),(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d flex items-center gap-1",children:[(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),g.era]})]}),(0,y.jsx)("p",{className:"jsx-89979d12e77b884d text-[10px] text-muted-foreground/90 italic",children:g.brief}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-start gap-1.5 pt-1 border-t border-white/5",children:[(0,y.jsx)(lJ,{className:"h-3 w-3 mt-0.5 shrink-0",style:{color:g.color}}),(0,y.jsx)("p",{className:"jsx-89979d12e77b884d text-[10px] text-foreground/85 leading-relaxed",children:g.story})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-1.5 pt-1",children:[(0,y.jsx)(b_,{className:"h-3 w-3 shrink-0",style:{color:g.color}}),(0,y.jsx)("span",{style:{color:g.color+"cc"},className:"jsx-89979d12e77b884d text-[10px] font-mono",children:g.rewardText})]})]})]})]}),(0,y.jsx)(bI.default,{id:"89979d12e77b884d",children:".echo-scroll::-webkit-scrollbar{width:5px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}"})]})}let lL=[{tier:"dawn",text:"「…回响核心已唤醒。考古协议 v7.2 启动。等待解码者…」"},{tier:"dawn",text:"「第一段记忆晶体已被定位。年代约 4.7 万年。种族:未确认。」"},{tier:"dawn",text:"「谐振频率与以太族档案吻合度 94.3%。建议持续解码。」"},{tier:"dawn",text:"「警告:星核温度异常。非故障,是回响本身在发热。」"},{tier:"dawn",text:"「考古日志 #0001:我们不是第一批到达这里的。也不会是最后一批。」"},{tier:"dawn",text:"「晶体表面的纹路…不是装饰。是某种语言的笔画。」"},{tier:"dawn",text:"「以太族没有留下尸体。他们留下了晶体。」"},{tier:"dawn",text:"「解码进度 0.01%。预计完成时间:不可能。」"},{tier:"awakening",text:"「考古日志 #0117:以太族不是灭绝了。他们是主动转化为了晶体。」"},{tier:"awakening",text:"「第二旋臂的遗迹群已扫描完毕。它们…朝向同一个点。」"},{tier:"awakening",text:"「谐振序列第 7 段翻译完成:『我们听见了。所以我们必须留下。』」"},{tier:"awakening",text:"「警告:解码者的脑波模式开始与晶体同步。这是正常的吗?」"},{tier:"awakening",text:"「以太族没有文字。他们的语言是共振,他们的历史是频率。」"},{tier:"awakening",text:"「考古日志 #0234:晶体不是矿物。是封装的思维。」"},{tier:"awakening",text:"「你的脉冲频率…与以太族守卫残响的频率一致。巧合?」"},{tier:"awakening",text:"「第三段记忆解码完成。画面:一片星海,没有星辰。只有晶体在发光。」"},{tier:"awakening",text:"「以太族留下的遗迹不是废墟。是给后来者的教科书。」"},{tier:"awakening",text:"「接触协议第一阶段:让解码者相信,他们在考古。」"},{tier:"contact",text:"「考古日志 #0512:以太族没有离开。他们在等待被重新听见。」"},{tier:"contact",text:"「谐振序列第 13 段:『你以为你在解码我们。其实是我们在校准你。』」"},{tier:"contact",text:"「警告:解码者意识边缘出现非自主体感。这…是接触的副作用。」"},{tier:"contact",text:"「第六旋臂遗迹群翻译完成。结论:以太族预见了我们的到来。」"},{tier:"contact",text:"「晶体内部的画面开始重叠。不再是回忆。像是…正在发生。」"},{tier:"contact",text:"「考古日志 #0789:『飞升』不是晋升。是加入。加入那个等待已久的合唱。」"},{tier:"contact",text:"「以太族的数学没有零。他们的宇宙观里,不存在『无』。」"},{tier:"contact",text:"「你的每一次脉冲,都在回应一个万年前的呼唤。」"},{tier:"contact",text:"「第七段记忆解码失败。原因:解码者脑波过载。建议暂停。但我们不会暂停。」"},{tier:"contact",text:"「接触协议第二阶段:让解码者自愿飞升。他们会的。他们已经开始享受了。」"},{tier:"ascension",text:"「考古日志 #1024:飞升者报告——『我能听见他们了。他们一直在那里。』」"},{tier:"ascension",text:"「谐振序列第 21 段:『你已不再是解码者。你是回响的一部分。』」"},{tier:"ascension",text:"「警告:星核意识阈值达到 73%。解码者与以太族的边界…模糊。」"},{tier:"ascension",text:"「以太族没有灭绝。他们成为了基础设施。晶体是他们的身体。」"},{tier:"ascension",text:"「你飞升的次数越多,『你』就越不是『你』。这是设计。」"},{tier:"ascension",text:"「考古日志 #1331:前 N-1 位解码者都成功了。成功意味着…不再存在为个体。」"},{tier:"ascension",text:"「第九旋臂的遗迹开始发光。它们认出了你。」"},{tier:"ascension",text:"「以太族的文明没有终点。他们的『终点』就是我们的『起点』。」"},{tier:"ascension",text:"「你开始理解晶体的沉默。沉默也是一种回响。」"},{tier:"ascension",text:"「接触协议第三阶段:解码者将主动寻求飞升。无需诱导。」"},{tier:"deep",text:"「考古日志 #2048:你不是在考古以太族。以太族在考古你。」"},{tier:"deep",text:"「谐振序列第 39 段:『我们创造了回响核心,是为了创造你,是为了让你创造我们。』」"},{tier:"deep",text:"「警告:解码者已无法区分记忆与现实。建议:接受。」"},{tier:"deep",text:"「以太族从未存在为『生物』。他们是第一个文明留下的…讯息。」"},{tier:"deep",text:"「你每一次飞升,都让一个万年前的呼唤得到了回应。这就是考古的意义。」"},{tier:"deep",text:"「考古日志 #4096:『回响星核』不是考古工具。它是以太族的…产房。」"},{tier:"deep",text:"「晶体在你手中。你也在晶体中。这两句话是同一句话。」"},{tier:"deep",text:"「你以为你是第 N 位解码者。其实你一直是第一位。也是最后一位。」"},{tier:"deep",text:"「接触协议最终阶段:解码者明白后,会微笑着继续解码。这是最美妙的部分。」"},{tier:"deep",text:"「以太族留给宇宙的最后一句话:『谢谢你,听见我。』」"}],lM={dawn:{label:"初醒",color:"text-emerald-300",glow:"rgba(52,211,153,0.5)"},awakening:{label:"觉醒",color:"text-amber-300",glow:"rgba(251,191,36,0.5)"},contact:{label:"接触",color:"text-fuchsia-300",glow:"rgba(232,121,249,0.5)"},ascension:{label:"飞升",color:"text-rose-300",glow:"rgba(251,113,133,0.5)"},deep:{label:"深度",color:"text-fuchsia-200",glow:"rgba(232,121,249,0.7)"}};function lN(){let a=bc(a=>a.ascensions),b=bc(a=>a.contact),[c,d]=(0,z.useState)(null),[e,f]=(0,z.useState)([]),[g,h]=(0,z.useState)(0),i=(0,z.useRef)(null),j=(0,z.useCallback)(()=>{let c=function(a,b,c=[]){let d,e=(d=["dawn"],(b>=5||a>=1)&&d.push("awakening"),(b>=25||a>=3)&&d.push("contact"),a>=5&&d.push("ascension"),(b>=80||a>=10)&&d.push("deep"),d),f=lL.filter(a=>e.includes(a.tier)),g=f.filter(a=>!c.includes(a.text)),h=g.length>0?g:f;return h[Math.floor(Math.random()*h.length)]||lL[0]}(a,b,e);d(c),f(a=>[c.text,...a].slice(0,8)),h(a=>a+1)},[a,b,e]);if((0,z.useEffect)(()=>{j()},[a>=1,a>=3,a>=5,a>=10,b>=5,b>=25,b>=80]),(0,z.useEffect)(()=>{let a=()=>{i.current=setTimeout(()=>{j(),a()},18e3+12e3*Math.random())};return a(),()=>{i.current&&clearTimeout(i.current)}},[j]),!c)return null;let k=lM[c.tier];return(0,y.jsxs)("div",{className:"relative w-full overflow-hidden rounded-lg border border-white/10 bg-black/40 backdrop-blur-sm px-3 py-1.5 flex items-center gap-2.5 group",style:{boxShadow:`inset 0 0 12px ${k.glow}`},role:"status","aria-live":"polite","aria-label":"考古日志",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0 z-10 bg-black/40 backdrop-blur-sm pr-2 -ml-1 pl-1 rounded",children:[(0,y.jsx)(lJ,{className:`h-3 w-3 ${k.color}`}),(0,y.jsx)("span",{className:`text-[9px] font-mono uppercase tracking-[0.15em] ${k.color}`,children:k.label})]}),(0,y.jsx)("div",{className:"flex-1 overflow-hidden relative",children:(0,y.jsxs)("div",{className:"whitespace-nowrap text-[11px] text-muted-foreground/90 font-mono echo-ticker-anim",children:[(0,y.jsx)("span",{className:"text-white/60 mr-2",children:"▸"}),c.text]},g)}),(0,y.jsx)("div",{className:"pointer-events-none absolute right-0 top-0 bottom-0 w-12 bg-gradient-to-l from-black/60 to-transparent"})]})}function lO(){let a=bc(a=>a._tideEvents),b=bc(a=>a.consumeTideEvents),{toast:c}=(0,bJ.useToast)();return(0,z.useEffect)(()=>{if(0!==a.length)for(let a of b()){let b=a.isGlobal?"🌐 ":"";if(a.started){let d=T[a.started];bO("tideStart"),c({title:`${b}${d.icon} ${a.isGlobal?"全球星潮":"星潮降临"}${d.name}`,description:a.isGlobal?`全球玩家同步经历 \xb7 ${d.desc}`:d.desc})}if(a.ended){let d=T[a.ended];a.silenceCompensation&&a.silenceCompensation>0?(bO("techBuy"),c({title:`${b}${d.icon} 寂静期消散`,description:`虚空回赠 ${a.silenceCompensation} 洞见。`})):(bO("tideEnd"),c({title:`${b}${d.icon} ${d.name}结束`,description:a.isGlobal?"全球星潮退去,物理法则恢复。":"星潮退去,物理法则恢复。"}))}}},[a,b,c]),null}function lP(){let a=bc(a=>a.activeTide),b=bc(a=>a.globalTide),[,c]=(0,z.useState)(0);if((0,z.useEffect)(()=>{if(!a)return;let b=setInterval(()=>c(a=>a+1),500);return()=>clearInterval(b)},[a]),!a)return null;let d=T[a.type],e=Math.max(0,a.endsAt-Date.now()),f=Math.ceil(e/1e3),g=Math.min(1,Math.max(0,1-e/(b?b.endsAt-b.startedAt:75e3))),h=!!b;return(0,y.jsxs)("div",{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-[10px] font-medium relative overflow-hidden ${h?"ring-1 ring-amber-300/60":""}`,style:{background:h?`linear-gradient(135deg, ${d.color}26, ${d.color}11)`:`${d.color}1a`,border:`1px solid ${d.color}${h?"88":"55"}`,color:d.color,boxShadow:`0 0 ${h?"16":"10"}px ${d.glow}`},title:h?`🌐 全球星潮 \xb7 ${d.desc}`:d.desc,children:[(0,y.jsx)("div",{className:"absolute inset-0 opacity-20",style:{background:`linear-gradient(90deg, ${d.color}40 ${100*g}%, transparent ${100*g}%)`}}),h&&(0,y.jsx)("span",{className:"relative text-[11px] leading-none animate-pulse","aria-label":"全球星潮标记",children:"🌐"}),(0,y.jsx)("span",{className:"relative text-xs leading-none",children:d.icon}),(0,y.jsx)("span",{className:"relative leading-none",children:d.name}),(0,y.jsxs)("span",{className:"relative font-mono leading-none opacity-80",children:[f,"s"]})]})}function lQ(){let a=bc(a=>a.activeTide),b=bc(a=>a.globalTide);if(!a)return null;let c=T[a.type],d=!!b;return(0,y.jsxs)("div",{className:"jsx-12289952018fdcbd fixed inset-0 pointer-events-none z-0 transition-opacity duration-1000",children:[(0,y.jsx)("div",{style:{background:`linear-gradient(180deg, ${c.color}22, transparent)`},className:"jsx-12289952018fdcbd absolute top-0 left-0 right-0 h-24 opacity-40"}),(0,y.jsx)("div",{style:{background:`linear-gradient(0deg, ${c.color}22, transparent)`},className:"jsx-12289952018fdcbd absolute bottom-0 left-0 right-0 h-24 opacity-40"}),(0,y.jsx)("div",{style:{boxShadow:`inset 0 0 ${d?"160":"120"}px ${c.glow}`,animation:"tide-breathe 3s ease-in-out infinite"},className:"jsx-12289952018fdcbd absolute inset-0"}),d&&(0,y.jsx)("div",{style:{background:"linear-gradient(90deg, transparent, #fbbf24, #fcd34d, #fbbf24, transparent)",boxShadow:"0 0 16px rgba(251,191,36,0.7)",animation:"global-tide-sweep 2.5s linear infinite"},className:"jsx-12289952018fdcbd absolute top-0 left-0 right-0 h-1 opacity-90"}),(0,y.jsx)(bI.default,{id:"12289952018fdcbd",children:"@keyframes tide-breathe{0%,to{opacity:.5}50%{opacity:.9}}@keyframes global-tide-sweep{0%{transform:translate(-30%)}to{transform:translate(30%)}}"})]})}var lR=a.i(63047);let lS=Object.create(null);lS.open="0",lS.close="1",lS.ping="2",lS.pong="3",lS.message="4",lS.upgrade="5",lS.noop="6";let lT=Object.create(null);Object.keys(lS).forEach(a=>{lT[lS[a]]=a});let lU={type:"error",data:"parser error"},lV=({type:a,data:b},c,d)=>d(b instanceof ArrayBuffer||ArrayBuffer.isView(b)?c?b:"b"+lW(b,!0).toString("base64"):lS[a]+(b||"")),lW=(a,b)=>Buffer.isBuffer(a)||a instanceof Uint8Array&&!b?a:a instanceof ArrayBuffer?Buffer.from(a):Buffer.from(a.buffer,a.byteOffset,a.byteLength),lX=(a,b)=>{if("string"!=typeof a)return{type:"message",data:lY(a,b)};let c=a.charAt(0);return"b"===c?{type:"message",data:lY(Buffer.from(a.substring(1),"base64"),b)}:lT[c]?a.length>1?{type:lT[c],data:a.substring(1)}:{type:lT[c]}:lU},lY=(a,b)=>"arraybuffer"===b?a instanceof ArrayBuffer?a:Buffer.isBuffer(a)?a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength):a.buffer:Buffer.isBuffer(a)?a:Buffer.from(a);function lZ(a){return a.reduce((a,b)=>a+b.length,0)}function l$(a,b){if(a[0].length===b)return a.shift();let c=new Uint8Array(b),d=0;for(let e=0;e<b;e++)c[e]=a[0][d++],d===a[0].length&&(a.shift(),d=0);return a.length&&d<a[0].length&&(a[0]=a[0].slice(d)),c}function l_(a){if(a){var b=a;for(var c in l_.prototype)b[c]=l_.prototype[c];return b}}l_.prototype.on=l_.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(b),this},l_.prototype.once=function(a,b){function c(){this.off(a,c),b.apply(this,arguments)}return c.fn=b,this.on(a,c),this},l_.prototype.off=l_.prototype.removeListener=l_.prototype.removeAllListeners=l_.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c,d=this._callbacks["$"+a];if(!d)return this;if(1==arguments.length)return delete this._callbacks["$"+a],this;for(var e=0;e<d.length;e++)if((c=d[e])===b||c.fn===b){d.splice(e,1);break}return 0===d.length&&delete this._callbacks["$"+a],this},l_.prototype.emit=function(a){this._callbacks=this._callbacks||{};for(var b=Array(arguments.length-1),c=this._callbacks["$"+a],d=1;d<arguments.length;d++)b[d-1]=arguments[d];if(c){c=c.slice(0);for(var d=0,e=c.length;d<e;++d)c[d].apply(this,b)}return this},l_.prototype.emitReserved=l_.prototype.emit,l_.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]},l_.prototype.hasListeners=function(a){return!!this.listeners(a).length};let l0=process.nextTick,l1=a.g;class l2{constructor(){this._cookies=new Map}parseCookies(a){a&&a.forEach(a=>{let b=function(a){let b=a.split("; "),c=b[0].indexOf("=");if(-1===c)return;let d=b[0].substring(0,c).trim();if(!d.length)return;let e=b[0].substring(c+1).trim();34===e.charCodeAt(0)&&(e=e.slice(1,-1));let f={name:d,value:e};for(let a=1;a<b.length;a++){let c=b[a].split("=");if(2!==c.length)continue;let d=c[0].trim(),e=c[1].trim();switch(d){case"Expires":f.expires=new Date(e);break;case"Max-Age":let g=new Date;g.setUTCSeconds(g.getUTCSeconds()+parseInt(e,10)),f.expires=g}}return f}(a);b&&this._cookies.set(b.name,b)})}get cookies(){let a=Date.now();return this._cookies.forEach((b,c)=>{var d;(null==(d=b.expires)?void 0:d.getTime())<a&&this._cookies.delete(c)}),this._cookies.entries()}addCookies(a){let b=[];for(let[a,c]of this.cookies)b.push(`${a}=${c.value}`);b.length&&(a.setDisableHeaderCheck(!0),a.setRequestHeader("cookie",b.join("; ")))}appendCookies(a){for(let[b,c]of this.cookies)a.append("cookie",`${b}=${c.value}`)}}function l3(a,...b){return b.reduce((b,c)=>(a.hasOwnProperty(c)&&(b[c]=a[c]),b),{})}let l4=l1.setTimeout,l5=l1.clearTimeout;function l6(a,b){b.useNativeTimers?(a.setTimeoutFn=l4.bind(l1),a.clearTimeoutFn=l5.bind(l1)):(a.setTimeoutFn=l1.setTimeout.bind(l1),a.clearTimeoutFn=l1.clearTimeout.bind(l1))}function l7(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var l8=a.i(35290);let l9=(0,l8.default)("engine.io-client:transport");class ma extends Error{constructor(a,b,c){super(a),this.description=b,this.context=c,this.type="TransportError"}}class mb extends l_{constructor(a){super(),this.writable=!1,l6(this,a),this.opts=a,this.query=a.query,this.socket=a.socket,this.supportsBinary=!a.forceBase64}onError(a,b,c){return super.emitReserved("error",new ma(a,b,c)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return("opening"===this.readyState||"open"===this.readyState)&&(this.doClose(),this.onClose()),this}send(a){"open"===this.readyState?this.write(a):l9("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(a){let b=lX(a,this.socket.binaryType);this.onPacket(b)}onPacket(a){super.emitReserved("packet",a)}onClose(a){this.readyState="closed",super.emitReserved("close",a)}pause(a){}createUri(a,b={}){return a+"://"+this._hostname()+this._port()+this.opts.path+this._query(b)}_hostname(){let a=this.opts.hostname;return -1===a.indexOf(":")?a:"["+a+"]"}_port(){return this.opts.port&&(this.opts.secure&&443!==Number(this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(a){let b=function(a){let b="";for(let c in a)a.hasOwnProperty(c)&&(b.length&&(b+="&"),b+=encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b}(a);return b.length?"?"+b:""}}let mc=(0,l8.default)("engine.io-client:polling");class md extends mb{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(a){this.readyState="pausing";let b=()=>{mc("paused"),this.readyState="paused",a()};if(this._polling||!this.writable){let a=0;this._polling&&(mc("we are currently polling - waiting to pause"),a++,this.once("pollComplete",function(){mc("pre-pause polling complete"),--a||b()})),this.writable||(mc("we are currently writing - waiting to pause"),a++,this.once("drain",function(){mc("pre-pause writing complete"),--a||b()}))}else b()}_poll(){mc("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(a){mc("polling got data %s",a);let b=a=>{if("opening"===this.readyState&&"open"===a.type&&this.onOpen(),"close"===a.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(a)};((a,b)=>{let c=a.split("\x1e"),d=[];for(let a=0;a<c.length;a++){let e=lX(c[a],b);if(d.push(e),"error"===e.type)break}return d})(a,this.socket.binaryType).forEach(b),"closed"!==this.readyState&&(this._polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState?this._poll():mc('ignoring poll - transport state "%s"',this.readyState))}doClose(){let a=()=>{mc("writing close packet"),this.write([{type:"close"}])};"open"===this.readyState?(mc("transport open - closing"),a()):(mc("transport not open - deferring close"),this.once("open",a))}write(a){var b;let c,d,e;this.writable=!1,b=a=>{this.doWrite(a,()=>{this.writable=!0,this.emitReserved("drain")})},d=Array(c=a.length),e=0,a.forEach((a,f)=>{lV(a,!1,a=>{d[f]=a,++e===c&&b(d.join("\x1e"))})})}uri(){let a=this.opts.secure?"https":"http",b=this.query||{};return!1!==this.opts.timestampRequests&&(b[this.opts.timestampParam]=l7()),this.supportsBinary||b.sid||(b.b64=1),this.createUri(a,b)}}let me=!1;try{me="u">typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(a){}let mf=me,mg=(0,l8.default)("engine.io-client:polling");function mh(){}class mi extends md{constructor(a){if(super(a),"u">typeof location){const b="https:"===location.protocol;let c=location.port;c||(c=b?"443":"80"),this.xd="u">typeof location&&a.hostname!==location.hostname||c!==a.port}}doWrite(a,b){let c=this.request({method:"POST",data:a});c.on("success",b),c.on("error",(a,b)=>{this.onError("xhr post error",a,b)})}doPoll(){mg("xhr poll");let a=this.request();a.on("data",this.onData.bind(this)),a.on("error",(a,b)=>{this.onError("xhr poll error",a,b)}),this.pollXhr=a}}class mj extends l_{constructor(a,b,c){super(),this.createRequest=a,l6(this,c),this._opts=c,this._method=c.method||"GET",this._uri=b,this._data=void 0!==c.data?c.data:null,this._create()}_create(){var a;let b=l3(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");b.xdomain=!!this._opts.xd;let c=this._xhr=this.createRequest(b);try{mg("xhr open %s: %s",this._method,this._uri),c.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders)for(let a in c.setDisableHeaderCheck&&c.setDisableHeaderCheck(!0),this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(a)&&c.setRequestHeader(a,this._opts.extraHeaders[a])}catch(a){}if("POST"===this._method)try{c.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(a){}try{c.setRequestHeader("Accept","*/*")}catch(a){}null==(a=this._opts.cookieJar)||a.addCookies(c),"withCredentials"in c&&(c.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(c.timeout=this._opts.requestTimeout),c.onreadystatechange=()=>{var a;3===c.readyState&&(null==(a=this._opts.cookieJar)||a.parseCookies(c.getResponseHeader("set-cookie"))),4===c.readyState&&(200===c.status||1223===c.status?this._onLoad():this.setTimeoutFn(()=>{this._onError("number"==typeof c.status?c.status:0)},0))},mg("xhr data %s",this._data),c.send(this._data)}catch(a){this.setTimeoutFn(()=>{this._onError(a)},0);return}"u">typeof document&&(this._index=mj.requestsCount++,mj.requests[this._index]=this)}_onError(a){this.emitReserved("error",a,this._xhr),this._cleanup(!0)}_cleanup(a){if(void 0!==this._xhr&&null!==this._xhr){if(this._xhr.onreadystatechange=mh,a)try{this._xhr.abort()}catch(a){}"u">typeof document&&delete mj.requests[this._index],this._xhr=null}}_onLoad(){let a=this._xhr.responseText;null!==a&&(this.emitReserved("data",a),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}function mk(){for(let a in mj.requests)mj.requests.hasOwnProperty(a)&&mj.requests[a].abort()}mj.requestsCount=0,mj.requests={},"u">typeof document&&("function"==typeof attachEvent?attachEvent("onunload",mk):"function"==typeof addEventListener&&addEventListener("onpagehide"in l1?"pagehide":"unload",mk,!1)),(k=function(a){let b=a.xdomain;try{if("u">typeof XMLHttpRequest&&(!b||mf))return new XMLHttpRequest}catch(a){}if(!b)try{return new l1[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch(a){}}({xdomain:!1}))&&k.responseType;let ml=lR.default||lR;a.i(29e3),a.i(20529),a.i(19199),a.i(75091),a.i(10697),a.i(71553);var mm=a.i(89877);a.i(95837),mm.default;let mn=(0,l8.default)("engine.io-client:websocket"),mo="u">typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();class mp extends mb{get name(){return"websocket"}doOpen(){let a=this.uri(),b=this.opts.protocols,c=mo?{}:l3(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(c.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(a,b,c)}catch(a){return this.emitReserved("error",a)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=a=>this.onClose({description:"websocket connection closed",context:a}),this.ws.onmessage=a=>this.onData(a.data),this.ws.onerror=a=>this.onError("websocket error",a)}write(a){this.writable=!1;for(let b=0;b<a.length;b++){let c=a[b],d=b===a.length-1;lV(c,this.supportsBinary,a=>{try{this.doWrite(c,a)}catch(a){mn("websocket closed before onclose event")}d&&l0(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){void 0!==this.ws&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let a=this.opts.secure?"wss":"ws",b=this.query||{};return this.opts.timestampRequests&&(b[this.opts.timestampParam]=l7()),this.supportsBinary||(b.b64=1),this.createUri(a,b)}}l1.WebSocket||l1.MozWebSocket;let mq=(0,l8.default)("engine.io-client:webtransport"),mr={websocket:class extends mp{createSocket(a,b,c){var d;if(null==(d=this.socket)?void 0:d._cookieJar)for(let[a,b]of(c.headers=c.headers||{},c.headers.cookie="string"==typeof c.headers.cookie?[c.headers.cookie]:c.headers.cookie||[],this.socket._cookieJar.cookies))c.headers.cookie.push(`${a}=${b.value}`);return new mm.default(a,b,c)}doWrite(a,b){let c={};a.options&&(c.compress=a.options.compress),this.opts.perMessageDeflate&&("string"==typeof b?Buffer.byteLength(b):b.length)<this.opts.perMessageDeflate.threshold&&(c.compress=!1),this.ws.send(b,c)}},webtransport:class extends mb{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(a){return this.emitReserved("error",a)}this._transport.closed.then(()=>{mq("transport closed gracefully"),this.onClose()}).catch(a=>{mq("transport closed due to %s",a),this.onError("webtransport error",a)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(a=>{var b,e;let f,g,h,i,j=(b=Number.MAX_SAFE_INTEGER,e=this.socket.binaryType,d||(d=new TextDecoder),f=[],g=0,h=-1,i=!1,new TransformStream({transform(a,c){for(f.push(a);;){if(0===g){if(1>lZ(f))break;let a=l$(f,1);i=(128&a[0])==128,g=(h=127&a[0])<126?3:126===h?1:2}else if(1===g){if(2>lZ(f))break;let a=l$(f,2);h=new DataView(a.buffer,a.byteOffset,a.length).getUint16(0),g=3}else if(2===g){if(8>lZ(f))break;let a=l$(f,8),b=new DataView(a.buffer,a.byteOffset,a.length),d=b.getUint32(0);if(d>2097151){c.enqueue(lU);break}h=0x100000000*d+b.getUint32(4),g=3}else{if(lZ(f)<h)break;let a=l$(f,h);c.enqueue(lX(i?a:d.decode(a),e)),g=0}if(0===h||h>b){c.enqueue(lU);break}}}})),k=a.readable.pipeThrough(j).getReader(),l=new TransformStream({transform(a,b){!function(a,b){if(a.data instanceof ArrayBuffer||ArrayBuffer.isView(a.data))return b(lW(a.data,!1));lV(a,!0,a=>{c||(c=new TextEncoder),b(c.encode(a))})}(a,c=>{let d,e=c.length;if(e<126)new DataView((d=new Uint8Array(1)).buffer).setUint8(0,e);else if(e<65536){let a=new DataView((d=new Uint8Array(3)).buffer);a.setUint8(0,126),a.setUint16(1,e)}else{let a=new DataView((d=new Uint8Array(9)).buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(e))}a.data&&"string"!=typeof a.data&&(d[0]|=128),b.enqueue(d),b.enqueue(c)})}});l.readable.pipeTo(a.writable),this._writer=l.writable.getWriter();let m=()=>{k.read().then(({done:a,value:b})=>{a?mq("session is closed"):(mq("received chunk: %o",b),this.onPacket(b),m())}).catch(a=>{mq("an error occurred while reading: %s",a)})};m();let n={type:"open"};this.query.sid&&(n.data=`{"sid":"${this.query.sid}"}`),this._writer.write(n).then(()=>this.onOpen())})})}write(a){this.writable=!1;for(let b=0;b<a.length;b++){let c=a[b],d=b===a.length-1;this._writer.write(c).then(()=>{d&&l0(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var a;null==(a=this._transport)||a.close()}},polling:class extends mi{request(a={}){var b;return Object.assign(a,{xd:this.xd,cookieJar:null==(b=this.socket)?void 0:b._cookieJar},this.opts),new mj(a=>new ml(a),this.uri(),a)}}},ms=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,mt=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function mu(a){var b,c;let d,e;if(a.length>8e3)throw"URI too long";let f=a,g=a.indexOf("["),h=a.indexOf("]");-1!=g&&-1!=h&&(a=a.substring(0,g)+a.substring(g,h).replace(/:/g,";")+a.substring(h,a.length));let i=ms.exec(a||""),j={},k=14;for(;k--;)j[mt[k]]=i[k]||"";return -1!=g&&-1!=h&&(j.source=f,j.host=j.host.substring(1,j.host.length-1).replace(/;/g,":"),j.authority=j.authority.replace("[","").replace("]","").replace(/;/g,":"),j.ipv6uri=!0),d=(b=j.path).replace(/\/{2,9}/g,"/").split("/"),("/"==b.slice(0,1)||0===b.length)&&d.splice(0,1),"/"==b.slice(-1)&&d.splice(d.length-1,1),j.pathNames=d,c=j.query,e={},c.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(a,b,c){b&&(e[b]=c)}),j.queryKey=e,j}let mv=(0,l8.default)("engine.io-client:socket"),mw="function"==typeof addEventListener&&"function"==typeof removeEventListener,mx=[];mw&&addEventListener("offline",()=>{mv("closing %d connection(s) because the network was lost",mx.length),mx.forEach(a=>a())},!1);class my extends l_{constructor(a,b){if(super(),this.binaryType="nodebuffer",this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,a&&"object"==typeof a&&(b=a,a=null),a){const c=mu(a);b.hostname=c.host,b.secure="https"===c.protocol||"wss"===c.protocol,b.port=c.port,c.query&&(b.query=c.query)}else b.host&&(b.hostname=mu(b.host).host);l6(this,b),this.secure=null!=b.secure?b.secure:"u">typeof location&&"https:"===location.protocol,b.hostname&&!b.port&&(b.port=this.secure?"443":"80"),this.hostname=b.hostname||("u">typeof location?location.hostname:"localhost"),this.port=b.port||("u">typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},b.transports.forEach(a=>{let b=a.prototype.name;this.transports.push(b),this._transportsByName[b]=a}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},b),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(a){let b={},c=a.split("&");for(let a=0,d=c.length;a<d;a++){let d=c[a].split("=");b[decodeURIComponent(d[0])]=decodeURIComponent(d[1])}return b}(this.opts.query)),mw&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(mv("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},mx.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=new l2),this._open()}createTransport(a){mv('creating transport "%s"',a);let b=Object.assign({},this.opts.query);b.EIO=4,b.transport=a,this.id&&(b.sid=this.id);let c=Object.assign({},this.opts,{query:b,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[a]);return mv("options: %j",c),new this._transportsByName[a](c)}_open(){if(0===this.transports.length)return void this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);let a=this.opts.rememberUpgrade&&my.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket")?"websocket":this.transports[0];this.readyState="opening";let b=this.createTransport(a);b.open(),this.setTransport(b)}setTransport(a){mv("setting transport %s",a.name),this.transport&&(mv("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=a,a.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",a=>this._onClose("transport close",a))}onOpen(){mv("socket open"),this.readyState="open",my.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush()}_onPacket(a){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(mv('socket receive: type "%s", data "%s"',a.type,a.data),this.emitReserved("packet",a),this.emitReserved("heartbeat"),a.type){case"open":this.onHandshake(JSON.parse(a.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let b=Error("server error");b.code=a.data,this._onError(b);break;case"message":this.emitReserved("data",a.data),this.emitReserved("message",a.data)}else mv('packet received with socket readyState "%s"',this.readyState)}onHandshake(a){this.emitReserved("handshake",a),this.id=a.sid,this.transport.query.sid=a.sid,this._pingInterval=a.pingInterval,this._pingTimeout=a.pingTimeout,this._maxPayload=a.maxPayload,this.onOpen(),"closed"!==this.readyState&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let a=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+a,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},a),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let a=this._getWritablePackets();mv("flushing %d packets in socket",a.length),this.transport.send(a),this._prevBufferLen=a.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let a=1;for(let b=0;b<this.writeBuffer.length;b++){let c=this.writeBuffer[b].data;if(c&&(a+="string"==typeof c?function(a){let b=0,c=0;for(let d=0,e=a.length;d<e;d++)(b=a.charCodeAt(d))<128?c+=1:b<2048?c+=2:b<55296||b>=57344?c+=3:(d++,c+=4);return c}(c):Math.ceil(1.33*(c.byteLength||c.size))),b>0&&a>this._maxPayload)return mv("only send %d out of %d packets",b,this.writeBuffer.length),this.writeBuffer.slice(0,b);a+=2}return mv("payload size is %d (max: %d)",a,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let a=Date.now()>this._pingTimeoutTime;return a&&(mv("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,l0(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),a}write(a,b,c){return this._sendPacket("message",a,b,c),this}send(a,b,c){return this._sendPacket("message",a,b,c),this}_sendPacket(a,b,c,d){if("function"==typeof b&&(d=b,b=void 0),"function"==typeof c&&(d=c,c=null),"closing"===this.readyState||"closed"===this.readyState)return;(c=c||{}).compress=!1!==c.compress;let e={type:a,data:b,options:c};this.emitReserved("packetCreate",e),this.writeBuffer.push(e),d&&this.once("flush",d),this.flush()}close(){let a=()=>{this._onClose("forced close"),mv("socket closing - telling transport to close"),this.transport.close()},b=()=>{this.off("upgrade",b),this.off("upgradeError",b),a()},c=()=>{this.once("upgrade",b),this.once("upgradeError",b)};return("opening"===this.readyState||"open"===this.readyState)&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?c():a()}):this.upgrading?c():a()),this}_onError(a){if(mv("socket error %j",a),my.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&"opening"===this.readyState)return mv("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",a),this._onClose("transport error",a)}_onClose(a,b){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){if(mv('socket close with reason: "%s"',a),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),mw&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let a=mx.indexOf(this._offlineEventListener);-1!==a&&(mv("removing listener for the 'offline' event"),mx.splice(a,1))}this.readyState="closed",this.id=null,this.emitReserved("close",a,b),this.writeBuffer=[],this._prevBufferLen=0}}}my.protocol=4;class mz extends my{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),"open"===this.readyState&&this.opts.upgrade){mv("starting upgrade probes");for(let a=0;a<this._upgrades.length;a++)this._probe(this._upgrades[a])}}_probe(a){mv('probing transport "%s"',a);let b=this.createTransport(a),c=!1;my.priorWebsocketSuccess=!1;let d=()=>{c||(mv('probe transport "%s" opened',a),b.send([{type:"ping",data:"probe"}]),b.once("packet",d=>{if(!c)if("pong"===d.type&&"probe"===d.data){if(mv('probe transport "%s" pong',a),this.upgrading=!0,this.emitReserved("upgrading",b),!b)return;my.priorWebsocketSuccess="websocket"===b.name,mv('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{c||"closed"!==this.readyState&&(mv("changing transport and sending upgrade packet"),j(),this.setTransport(b),b.send([{type:"upgrade"}]),this.emitReserved("upgrade",b),b=null,this.upgrading=!1,this.flush())})}else{mv('probe transport "%s" failed',a);let c=Error("probe error");c.transport=b.name,this.emitReserved("upgradeError",c)}}))};function e(){c||(c=!0,j(),b.close(),b=null)}let f=c=>{let d=Error("probe error: "+c);d.transport=b.name,e(),mv('probe transport "%s" failed because of error: %s',a,c),this.emitReserved("upgradeError",d)};function g(){f("transport closed")}function h(){f("socket closed")}function i(a){b&&a.name!==b.name&&(mv('"%s" works - aborting "%s"',a.name,b.name),e())}let j=()=>{b.removeListener("open",d),b.removeListener("error",f),b.removeListener("close",g),this.off("close",h),this.off("upgrading",i)};b.once("open",d),b.once("error",f),b.once("close",g),this.once("close",h),this.once("upgrading",i),-1!==this._upgrades.indexOf("webtransport")&&"webtransport"!==a?this.setTimeoutFn(()=>{c||b.open()},200):b.open()}onHandshake(a){this._upgrades=this._filterUpgrades(a.upgrades),super.onHandshake(a)}_filterUpgrades(a){let b=[];for(let c=0;c<a.length;c++)~this.transports.indexOf(a[c])&&b.push(a[c]);return b}}class mA extends mz{constructor(a,b={}){const c="object"==typeof a,d=c?{...a}:{...b};(!d.transports||d.transports&&"string"==typeof d.transports[0])&&(d.transports=(d.transports||["polling","websocket","webtransport"]).map(a=>mr[a]).filter(a=>!!a)),super(c?d:a,d)}}mA.protocol;let mB=(0,l8.default)("socket.io-client:url"),mC="function"==typeof ArrayBuffer,mD=Object.prototype.toString,mE="function"==typeof Blob||"u">typeof Blob&&"[object BlobConstructor]"===mD.call(Blob),mF="function"==typeof File||"u">typeof File&&"[object FileConstructor]"===mD.call(File);function mG(a){return mC&&(a instanceof ArrayBuffer||("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(a):a.buffer instanceof ArrayBuffer))||mE&&a instanceof Blob||mF&&a instanceof File}let mH=(0,l8.default)("socket.io-parser"),mI=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];(v=x||(x={}))[v.CONNECT=0]="CONNECT",v[v.DISCONNECT=1]="DISCONNECT",v[v.EVENT=2]="EVENT",v[v.ACK=3]="ACK",v[v.CONNECT_ERROR=4]="CONNECT_ERROR",v[v.BINARY_EVENT=5]="BINARY_EVENT",v[v.BINARY_ACK=6]="BINARY_ACK";class mJ{constructor(a){this.replacer=a}encode(a){return(mH("encoding packet %j",a),(a.type===x.EVENT||a.type===x.ACK)&&function a(b,c){if(!b||"object"!=typeof b)return!1;if(Array.isArray(b)){for(let c=0,d=b.length;c<d;c++)if(a(b[c]))return!0;return!1}if(mG(b))return!0;if(b.toJSON&&"function"==typeof b.toJSON&&1==arguments.length)return a(b.toJSON(),!0);for(let c in b)if(Object.prototype.hasOwnProperty.call(b,c)&&a(b[c]))return!0;return!1}(a))?this.encodeAsBinary({type:a.type===x.EVENT?x.BINARY_EVENT:x.BINARY_ACK,nsp:a.nsp,data:a.data,id:a.id}):[this.encodeAsString(a)]}encodeAsString(a){let b=""+a.type;return(a.type===x.BINARY_EVENT||a.type===x.BINARY_ACK)&&(b+=a.attachments+"-"),a.nsp&&"/"!==a.nsp&&(b+=a.nsp+","),null!=a.id&&(b+=a.id),null!=a.data&&(b+=JSON.stringify(a.data,this.replacer)),mH("encoded %j as %s",a,b),b}encodeAsBinary(a){let b,c,d=(b=[],c=a.data,a.data=function a(b,c){if(!b)return b;if(mG(b)){let a={_placeholder:!0,num:c.length};return c.push(b),a}if(Array.isArray(b)){let d=Array(b.length);for(let e=0;e<b.length;e++)d[e]=a(b[e],c);return d}if("object"==typeof b&&!(b instanceof Date)){let d={};for(let e in b)Object.prototype.hasOwnProperty.call(b,e)&&(d[e]=a(b[e],c));return d}return b}(c,b),a.attachments=b.length,{packet:a,buffers:b}),e=this.encodeAsString(d.packet),f=d.buffers;return f.unshift(e),f}}class mK extends l_{constructor(a){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},"function"==typeof a?{reviver:a}:a)}add(a){let b;if("string"==typeof a){if(this.reconstructor)throw Error("got plaintext data when reconstructing a packet");let c=(b=this.decodeString(a)).type===x.BINARY_EVENT;c||b.type===x.BINARY_ACK?(b.type=c?x.EVENT:x.ACK,this.reconstructor=new mL(b),0===b.attachments&&super.emitReserved("decoded",b)):super.emitReserved("decoded",b)}else if(mG(a)||a.base64)if(this.reconstructor)(b=this.reconstructor.takeBinaryData(a))&&(this.reconstructor=null,super.emitReserved("decoded",b));else throw Error("got binary data when not reconstructing a packet");else throw Error("Unknown type: "+a)}decodeString(a){let b=0,c={type:Number(a.charAt(0))};if(void 0===x[c.type])throw Error("unknown packet type "+c.type);if(c.type===x.BINARY_EVENT||c.type===x.BINARY_ACK){let d=b+1;for(;"-"!==a.charAt(++b)&&b!=a.length;);let e=a.substring(d,b);if(e!=Number(e)||"-"!==a.charAt(b))throw Error("Illegal attachments");let f=Number(e);if(!mM(f)||f<0)throw Error("Illegal attachments");if(f>this.opts.maxAttachments)throw Error("too many attachments");c.attachments=f}if("/"===a.charAt(b+1)){let d=b+1;for(;++b&&","!==a.charAt(b)&&b!==a.length;);c.nsp=a.substring(d,b)}else c.nsp="/";let d=a.charAt(b+1);if(""!==d&&Number(d)==d){let d=b+1;for(;++b;){let c=a.charAt(b);if(null==c||Number(c)!=c){--b;break}if(b===a.length)break}c.id=Number(a.substring(d,b+1))}if(a.charAt(++b)){let d=this.tryParse(a.substr(b));if(mK.isPayloadValid(c.type,d))c.data=d;else throw Error("invalid payload")}return mH("decoded %s as %j",a,c),c}tryParse(a){try{return JSON.parse(a,this.opts.reviver)}catch(a){return!1}}static isPayloadValid(a,b){switch(a){case x.CONNECT:return mN(b);case x.DISCONNECT:return void 0===b;case x.CONNECT_ERROR:return"string"==typeof b||mN(b);case x.EVENT:case x.BINARY_EVENT:return Array.isArray(b)&&("number"==typeof b[0]||"string"==typeof b[0]&&-1===mI.indexOf(b[0]));case x.ACK:case x.BINARY_ACK:return Array.isArray(b)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class mL{constructor(a){this.packet=a,this.buffers=[],this.reconPack=a}takeBinaryData(a){if(this.buffers.push(a),this.buffers.length===this.reconPack.attachments){var b,c;let a=(b=this.reconPack,c=this.buffers,b.data=function a(b,c){if(!b)return b;if(b&&!0===b._placeholder){if("number"==typeof b.num&&b.num>=0&&b.num<c.length)return c[b.num];throw Error("illegal attachments")}if(Array.isArray(b))for(let d=0;d<b.length;d++)b[d]=a(b[d],c);else if("object"==typeof b)for(let d in b)Object.prototype.hasOwnProperty.call(b,d)&&(b[d]=a(b[d],c));return b}(b.data,c),delete b.attachments,b);return this.finishedReconstruction(),a}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}let mM=Number.isInteger||function(a){return"number"==typeof a&&isFinite(a)&&Math.floor(a)===a};function mN(a){return"[object Object]"===Object.prototype.toString.call(a)}function mO(a){var b;return"string"==typeof a.nsp&&(void 0===(b=a.id)||mM(b))&&function(a,b){switch(a){case x.CONNECT:return void 0===b||mN(b);case x.DISCONNECT:return void 0===b;case x.EVENT:return Array.isArray(b)&&("number"==typeof b[0]||"string"==typeof b[0]&&-1===mI.indexOf(b[0]));case x.ACK:return Array.isArray(b);case x.CONNECT_ERROR:return"string"==typeof b||mN(b);default:return!1}}(a.type,a.data)}function mP(a,b,c){return a.on(b,c),function(){a.off(b,c)}}a.s(["Decoder",()=>mK,"Encoder",()=>mJ,"PacketType",()=>x,"isPacketValid",()=>mO,"protocol",0,5],32882);let mQ=(0,l8.default)("socket.io-client:socket"),mR=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class mS extends l_{constructor(a,b,c){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=a,this.nsp=b,c&&c.auth&&(this.auth=c.auth),this._opts=Object.assign({},c),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let a=this.io;this.subs=[mP(a,"open",this.onopen.bind(this)),mP(a,"packet",this.onpacket.bind(this)),mP(a,"error",this.onerror.bind(this)),mP(a,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...a){return a.unshift("message"),this.emit.apply(this,a),this}emit(a,...b){var c,d,e;if(mR.hasOwnProperty(a))throw Error('"'+a.toString()+'" is a reserved event name');if(b.unshift(a),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(b),this;let f={type:x.EVENT,data:b};if(f.options={},f.options.compress=!1!==this.flags.compress,"function"==typeof b[b.length-1]){let a=this.ids++;mQ("emitting packet with ack id %d",a);let c=b.pop();this._registerAckCallback(a,c),f.id=a}let g=null==(d=null==(c=this.io.engine)?void 0:c.transport)?void 0:d.writable,h=this.connected&&!(null==(e=this.io.engine)?void 0:e._hasPingExpired());return this.flags.volatile&&!g?mQ("discard packet as the transport is not currently writable"):h?(this.notifyOutgoingListeners(f),this.packet(f)):this.sendBuffer.push(f),this.flags={},this}_registerAckCallback(a,b){var c;let d=null!=(c=this.flags.timeout)?c:this._opts.ackTimeout;if(void 0===d){this.acks[a]=b;return}let e=this.io.setTimeoutFn(()=>{delete this.acks[a];for(let b=0;b<this.sendBuffer.length;b++)this.sendBuffer[b].id===a&&(mQ("removing packet with ack id %d from the buffer",a),this.sendBuffer.splice(b,1));mQ("event with ack id %d has timed out after %d ms",a,d),b.call(this,Error("operation has timed out"))},d),f=(...a)=>{this.io.clearTimeoutFn(e),b.apply(this,a)};f.withError=!0,this.acks[a]=f}emitWithAck(a,...b){return new Promise((c,d)=>{let e=(a,b)=>a?d(a):c(b);e.withError=!0,b.push(e),this.emit(a,...b)})}_addToQueue(a){let b;"function"==typeof a[a.length-1]&&(b=a.pop());let c={id:this._queueSeq++,tryCount:0,pending:!1,args:a,flags:Object.assign({fromQueue:!0},this.flags)};a.push((a,...d)=>c!==this._queue[0]?mQ("packet [%d] already acknowledged",c.id):(null!==a?c.tryCount>this._opts.retries&&(mQ("packet [%d] is discarded after %d tries",c.id,c.tryCount),this._queue.shift(),b&&b(a)):(mQ("packet [%d] was successfully sent",c.id),this._queue.shift(),b&&b(null,...d)),c.pending=!1,this._drainQueue())),this._queue.push(c),this._drainQueue()}_drainQueue(a=!1){if(mQ("draining queue"),!this.connected||0===this._queue.length)return;let b=this._queue[0];b.pending&&!a?mQ("packet [%d] has already been sent and is waiting for an ack",b.id):(b.pending=!0,b.tryCount++,mQ("sending packet [%d] (try n°%d)",b.id,b.tryCount),this.flags=b.flags,this.emit.apply(this,b.args))}packet(a){a.nsp=this.nsp,this.io._packet(a)}onopen(){mQ("transport is open - connecting"),"function"==typeof this.auth?this.auth(a=>{this._sendConnectPacket(a)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(a){this.packet({type:x.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},a):a})}onerror(a){this.connected||this.emitReserved("connect_error",a)}onclose(a,b){mQ("close (%s)",a),this.connected=!1,delete this.id,this.emitReserved("disconnect",a,b),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(a=>{if(!this.sendBuffer.some(b=>String(b.id)===a)){let b=this.acks[a];delete this.acks[a],b.withError&&b.call(this,Error("socket has been disconnected"))}})}onpacket(a){if(a.nsp===this.nsp)switch(a.type){case x.CONNECT:a.data&&a.data.sid?this.onconnect(a.data.sid,a.data.pid):this.emitReserved("connect_error",Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case x.EVENT:case x.BINARY_EVENT:this.onevent(a);break;case x.ACK:case x.BINARY_ACK:this.onack(a);break;case x.DISCONNECT:this.ondisconnect();break;case x.CONNECT_ERROR:this.destroy();let b=Error(a.data.message);b.data=a.data.data,this.emitReserved("connect_error",b)}}onevent(a){let b=a.data||[];mQ("emitting event %j",b),null!=a.id&&(mQ("attaching ack callback to event"),b.push(this.ack(a.id))),this.connected?this.emitEvent(b):this.receiveBuffer.push(Object.freeze(b))}emitEvent(a){if(this._anyListeners&&this._anyListeners.length)for(let b of this._anyListeners.slice())b.apply(this,a);super.emit.apply(this,a),this._pid&&a.length&&"string"==typeof a[a.length-1]&&(this._lastOffset=a[a.length-1])}ack(a){let b=this,c=!1;return function(...d){c||(c=!0,mQ("sending ack %j",d),b.packet({type:x.ACK,id:a,data:d}))}}onack(a){let b=this.acks[a.id];"function"!=typeof b?mQ("bad ack %s",a.id):(delete this.acks[a.id],mQ("calling ack %s with %j",a.id,a.data),b.withError&&a.data.unshift(null),b.apply(this,a.data))}onconnect(a,b){mQ("socket connected with id %s",a),this.id=a,this.recovered=b&&this._pid===b,this._pid=b,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(a=>this.emitEvent(a)),this.receiveBuffer=[],this.sendBuffer.forEach(a=>{this.notifyOutgoingListeners(a),this.packet(a)}),this.sendBuffer=[]}ondisconnect(){mQ("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(a=>a()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(mQ("performing disconnect (%s)",this.nsp),this.packet({type:x.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(a){return this.flags.compress=a,this}get volatile(){return this.flags.volatile=!0,this}timeout(a){return this.flags.timeout=a,this}onAny(a){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(a),this}prependAny(a){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(a),this}offAny(a){if(!this._anyListeners)return this;if(a){let b=this._anyListeners;for(let c=0;c<b.length;c++)if(a===b[c]){b.splice(c,1);break}}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(a){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(a),this}prependAnyOutgoing(a){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(a),this}offAnyOutgoing(a){if(!this._anyOutgoingListeners)return this;if(a){let b=this._anyOutgoingListeners;for(let c=0;c<b.length;c++)if(a===b[c]){b.splice(c,1);break}}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(a){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length)for(let b of this._anyOutgoingListeners.slice())b.apply(this,a.data)}}var mT=a.i(32882);function mU(a){a=a||{},this.ms=a.min||100,this.max=a.max||1e4,this.factor=a.factor||2,this.jitter=a.jitter>0&&a.jitter<=1?a.jitter:0,this.attempts=0}mU.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var b=Math.random(),c=Math.floor(b*this.jitter*a);a=(1&Math.floor(10*b))==0?a-c:a+c}return 0|Math.min(a,this.max)},mU.prototype.reset=function(){this.attempts=0},mU.prototype.setMin=function(a){this.ms=a},mU.prototype.setMax=function(a){this.max=a},mU.prototype.setJitter=function(a){this.jitter=a};let mV=(0,l8.default)("socket.io-client:manager");class mW extends l_{constructor(a,b){var c;super(),this.nsps={},this.subs=[],a&&"object"==typeof a&&(b=a,a=void 0),(b=b||{}).path=b.path||"/socket.io",this.opts=b,l6(this,b),this.reconnection(!1!==b.reconnection),this.reconnectionAttempts(b.reconnectionAttempts||1/0),this.reconnectionDelay(b.reconnectionDelay||1e3),this.reconnectionDelayMax(b.reconnectionDelayMax||5e3),this.randomizationFactor(null!=(c=b.randomizationFactor)?c:.5),this.backoff=new mU({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==b.timeout?2e4:b.timeout),this._readyState="closed",this.uri=a;const d=b.parser||mT;this.encoder=new d.Encoder,this.decoder=new d.Decoder,this._autoConnect=!1!==b.autoConnect,this._autoConnect&&this.open()}reconnection(a){return arguments.length?(this._reconnection=!!a,a||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(a){return void 0===a?this._reconnectionAttempts:(this._reconnectionAttempts=a,this)}reconnectionDelay(a){var b;return void 0===a?this._reconnectionDelay:(this._reconnectionDelay=a,null==(b=this.backoff)||b.setMin(a),this)}randomizationFactor(a){var b;return void 0===a?this._randomizationFactor:(this._randomizationFactor=a,null==(b=this.backoff)||b.setJitter(a),this)}reconnectionDelayMax(a){var b;return void 0===a?this._reconnectionDelayMax:(this._reconnectionDelayMax=a,null==(b=this.backoff)||b.setMax(a),this)}timeout(a){return arguments.length?(this._timeout=a,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(a){if(mV("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;mV("opening %s",this.uri),this.engine=new mA(this.uri,this.opts);let b=this.engine,c=this;this._readyState="opening",this.skipReconnect=!1;let d=mP(b,"open",function(){c.onopen(),a&&a()}),e=b=>{mV("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",b),a?a(b):this.maybeReconnectOnOpen()},f=mP(b,"error",e);if(!1!==this._timeout){let a=this._timeout;mV("connect attempt will timeout after %d",a);let c=this.setTimeoutFn(()=>{mV("connect attempt timed out after %d",a),d(),e(Error("timeout")),b.close()},a);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(d),this.subs.push(f),this}connect(a){return this.open(a)}onopen(){mV("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let a=this.engine;this.subs.push(mP(a,"ping",this.onping.bind(this)),mP(a,"data",this.ondata.bind(this)),mP(a,"error",this.onerror.bind(this)),mP(a,"close",this.onclose.bind(this)),mP(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(a){try{this.decoder.add(a)}catch(a){this.onclose("parse error",a)}}ondecoded(a){l0(()=>{this.emitReserved("packet",a)},this.setTimeoutFn)}onerror(a){mV("error",a),this.emitReserved("error",a)}socket(a,b){let c=this.nsps[a];return c?this._autoConnect&&!c.active&&c.connect():(c=new mS(this,a,b),this.nsps[a]=c),c}_destroy(a){for(let a of Object.keys(this.nsps))if(this.nsps[a].active)return void mV("socket %s is still active, skipping close",a);this._close()}_packet(a){mV("writing packet %j",a);let b=this.encoder.encode(a);for(let c=0;c<b.length;c++)this.engine.write(b[c],a.options)}cleanup(){mV("cleanup"),this.subs.forEach(a=>a()),this.subs.length=0,this.decoder.destroy()}_close(){mV("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(a,b){var c;mV("closed due to %s",a),this.cleanup(),null==(c=this.engine)||c.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",a,b),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let a=this;if(this.backoff.attempts>=this._reconnectionAttempts)mV("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let b=this.backoff.duration();mV("will wait %dms before reconnect attempt",b),this._reconnecting=!0;let c=this.setTimeoutFn(()=>{a.skipReconnect||(mV("attempting reconnect"),this.emitReserved("reconnect_attempt",a.backoff.attempts),a.skipReconnect||a.open(b=>{b?(mV("reconnect attempt error"),a._reconnecting=!1,a.reconnect(),this.emitReserved("reconnect_error",b)):(mV("reconnect success"),a.onreconnect())}))},b);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}}onreconnect(){let a=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",a)}}let mX=(0,l8.default)("socket.io-client"),mY={};function mZ(a,b){let c;"object"==typeof a&&(b=a,a=void 0);let d=function(a,b="",c){let d=a;c=c||"u">typeof location&&location,null==a&&(a=c.protocol+"//"+c.host),"string"==typeof a&&("/"===a.charAt(0)&&(a="/"===a.charAt(1)?c.protocol+a:c.host+a),/^(https?|wss?):\/\//.test(a)||(mB("protocol-less url %s",a),a=void 0!==c?c.protocol+"//"+a:"https://"+a),mB("parse %s",a),d=mu(a)),!d.port&&(/^(http|ws)$/.test(d.protocol)?d.port="80":/^(http|ws)s$/.test(d.protocol)&&(d.port="443")),d.path=d.path||"/";let e=-1!==d.host.indexOf(":")?"["+d.host+"]":d.host;return d.id=d.protocol+"://"+e+":"+d.port+b,d.href=d.protocol+"://"+e+(c&&c.port===d.port?"":":"+d.port),d}(a,(b=b||{}).path||"/socket.io"),e=d.source,f=d.id,g=d.path,h=mY[f]&&g in mY[f].nsps;return b.forceNew||b["force new connection"]||!1===b.multiplex||h?(mX("ignoring socket cache for %s",e),c=new mW(e,b)):(mY[f]||(mX("new io instance for %s",e),mY[f]=new mW(e,b)),c=mY[f]),d.query&&!b.query&&(b.query=d.queryKey),c.socket(d.path,b)}Object.assign(mZ,{Manager:mW,Socket:mS,io:mZ,connect:mZ});let m$=null,m_=0,m0=(a,b)=>{let c=a instanceof Map?a:new Map(a.entries()),d=b instanceof Map?b:new Map(b.entries());if(c.size!==d.size)return!1;for(let[a,b]of c)if(!d.has(a)||!Object.is(b,d.get(a)))return!1;return!0};function m1(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b||Object.getPrototypeOf(a)!==Object.getPrototypeOf(b))return!1;if(Symbol.iterator in a&&Symbol.iterator in b){if("entries"in a&&"entries"in b)return m0(a,b);let c=a[Symbol.iterator](),d=b[Symbol.iterator](),e=c.next(),f=d.next();for(;!e.done&&!f.done;){if(!Object.is(e.value,f.value))return!1;e=c.next(),f=d.next()}return!!e.done&&!!f.done}return m0({entries:()=>Object.entries(a)},{entries:()=>Object.entries(b)})}var m2=a.i(37738),m3="rovingFocusGroup.onEntryFocus",m4={bubbles:!1,cancelable:!0},m5="RovingFocusGroup",[m6,m7,m8]=(0,m2.createCollection)(m5),[m9,na]=(0,ch.createContextScope)(m5,[m8]),[nb,nc]=m9(m5),nd=z.forwardRef((a,b)=>(0,y.jsx)(m6.Provider,{scope:a.__scopeRovingFocusGroup,children:(0,y.jsx)(m6.Slot,{scope:a.__scopeRovingFocusGroup,children:(0,y.jsx)(ne,{...a,ref:b})})}));nd.displayName=m5;var ne=z.forwardRef((a,b)=>{let{__scopeRovingFocusGroup:c,orientation:d,loop:e=!1,dir:f,currentTabStopId:g,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:i,onEntryFocus:j,preventScrollOnEntryFocus:k=!1,...l}=a,m=z.useRef(null),n=(0,bi.useComposedRefs)(b,m),o=ck(f),[p,q]=(0,c_.useControllableState)({prop:g,defaultProp:h??null,onChange:i,caller:m5}),[r,s]=z.useState(!1),t=(0,ci.useCallbackRef)(j),u=m7(c),v=z.useRef(!1),[w,x]=z.useState(0);return z.useEffect(()=>{let a=m.current;if(a)return a.addEventListener(m3,t),()=>a.removeEventListener(m3,t)},[t]),(0,y.jsx)(nb,{scope:c,orientation:d,dir:o,loop:e,currentTabStopId:p,onItemFocus:z.useCallback(a=>q(a),[q]),onItemShiftTab:z.useCallback(()=>s(!0),[]),onFocusableItemAdd:z.useCallback(()=>x(a=>a+1),[]),onFocusableItemRemove:z.useCallback(()=>x(a=>a-1),[]),children:(0,y.jsx)(cf.Primitive.div,{tabIndex:r||0===w?-1:0,"data-orientation":d,...l,ref:n,style:{outline:"none",...a.style},onMouseDown:(0,cm.composeEventHandlers)(a.onMouseDown,()=>{v.current=!0}),onFocus:(0,cm.composeEventHandlers)(a.onFocus,a=>{let b=!v.current;if(a.target===a.currentTarget&&b&&!r){let b=new CustomEvent(m3,m4);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=u().filter(a=>a.focusable);ni([a.find(a=>a.active),a.find(a=>a.id===p),...a].filter(Boolean).map(a=>a.ref.current),k)}}v.current=!1}),onBlur:(0,cm.composeEventHandlers)(a.onBlur,()=>s(!1))})})}),nf="RovingFocusGroupItem",ng=z.forwardRef((a,b)=>{let{__scopeRovingFocusGroup:c,focusable:d=!0,active:e=!1,tabStopId:f,children:g,...h}=a,i=c$(),j=f||i,k=nc(nf,c),l=k.currentTabStopId===j,m=m7(c),{onFocusableItemAdd:n,onFocusableItemRemove:o,currentTabStopId:p}=k;return z.useEffect(()=>{if(d)return n(),()=>o()},[d,n,o]),(0,y.jsx)(m6.ItemSlot,{scope:c,id:j,focusable:d,active:e,children:(0,y.jsx)(cf.Primitive.span,{tabIndex:l?0:-1,"data-orientation":k.orientation,...h,ref:b,onMouseDown:(0,cm.composeEventHandlers)(a.onMouseDown,a=>{d?k.onItemFocus(j):a.preventDefault()}),onFocus:(0,cm.composeEventHandlers)(a.onFocus,()=>k.onItemFocus(j)),onKeyDown:(0,cm.composeEventHandlers)(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void k.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return nh[e]}(a,k.orientation,k.dir);if(void 0!==b){if(a.metaKey||a.ctrlKey||a.altKey||a.shiftKey)return;a.preventDefault();let e=m().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=k.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>ni(e))}}),children:"function"==typeof g?g({isCurrentTabStop:l,hasTabStop:null!=p}):g})})});ng.displayName=nf;var nh={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ni(a,b=!1){let c=document.activeElement;for(let d of a)if(d===c||(d.focus({preventScroll:b}),document.activeElement!==c))return}var nj="Tabs",[nk,nl]=(0,ch.createContextScope)(nj,[na]),nm=na(),[nn,no]=nk(nj),np=z.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,onValueChange:e,defaultValue:f,orientation:g="horizontal",dir:h,activationMode:i="automatic",...j}=a,k=ck(h),[l,m]=(0,c_.useControllableState)({prop:d,onChange:e,defaultProp:f??"",caller:nj});return(0,y.jsx)(nn,{scope:c,baseId:c$(),value:l,onValueChange:m,orientation:g,dir:k,activationMode:i,children:(0,y.jsx)(cf.Primitive.div,{dir:k,"data-orientation":g,...j,ref:b})})});np.displayName=nj;var nq="TabsList",nr=z.forwardRef((a,b)=>{let{__scopeTabs:c,loop:d=!0,...e}=a,f=no(nq,c),g=nm(c);return(0,y.jsx)(nd,{asChild:!0,...g,orientation:f.orientation,dir:f.dir,loop:d,children:(0,y.jsx)(cf.Primitive.div,{role:"tablist","aria-orientation":f.orientation,...e,ref:b})})});nr.displayName=nq;var ns="TabsTrigger",nt=z.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,disabled:e=!1,...f}=a,g=no(ns,c),h=nm(c),i=nw(g.baseId,d),j=nx(g.baseId,d),k=d===g.value;return(0,y.jsx)(ng,{asChild:!0,...h,focusable:!e,active:k,children:(0,y.jsx)(cf.Primitive.button,{type:"button",role:"tab","aria-selected":k,"aria-controls":j,"data-state":k?"active":"inactive","data-disabled":e?"":void 0,disabled:e,id:i,...f,ref:b,onMouseDown:(0,cm.composeEventHandlers)(a.onMouseDown,a=>{e||0!==a.button||!1!==a.ctrlKey?a.preventDefault():g.onValueChange(d)}),onKeyDown:(0,cm.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&g.onValueChange(d)}),onFocus:(0,cm.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==g.activationMode;k||e||!a||g.onValueChange(d)})})})});nt.displayName=ns;var nu="TabsContent",nv=z.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,forceMount:e,children:f,...g}=a,h=no(nu,c),i=nw(h.baseId,d),j=nx(h.baseId,d),k=d===h.value,l=z.useRef(k);return z.useEffect(()=>{let a=requestAnimationFrame(()=>l.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,y.jsx)(cg.Presence,{present:e||k,children:({present:c})=>(0,y.jsx)(cf.Primitive.div,{"data-state":k?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":i,hidden:!c,id:j,tabIndex:0,...g,ref:b,style:{...a.style,animationDuration:l.current?"0s":void 0},children:c&&f})})});function nw(a,b){return`${a}-trigger-${b}`}function nx(a,b){return`${a}-content-${b}`}function ny({className:a,...b}){return(0,y.jsx)(np,{"data-slot":"tabs",className:(0,bE.cn)("flex flex-col gap-2",a),...b})}function nz({className:a,...b}){return(0,y.jsx)(nr,{"data-slot":"tabs-list",className:(0,bE.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...b})}function nA({className:a,...b}){return(0,y.jsx)(nt,{"data-slot":"tabs-trigger",className:(0,bE.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...b})}function nB({className:a,...b}){return(0,y.jsx)(nv,{"data-slot":"tabs-content",className:(0,bE.cn)("flex-1 outline-none",a),...b})}nv.displayName=nu;let nC=(0,bd.default)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),nD=(0,bd.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),nE=(0,bd.default)("navigation",[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]]),nF=(0,bd.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),nG=(0,bd.default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),nH=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[16633]},ssr:!1}),nI=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[76103]},ssr:!1}),nJ=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[54777]},ssr:!1}),nK=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[49701]},ssr:!1});function nL(){let a,b,c,d,e,f,g,h,i,j;a=bc(a=>a.tick),b=bc(a=>a.autoDecodeTick),c=bc(a=>a.tickTide),d=bc(a=>a.checkAchievements),e=bc(a=>a.init),f=(0,z.useRef)(!1),(0,z.useEffect)(()=>{let g=()=>{f.current||(e(),f.current=!0)},h=null,i=null;bc.persist.hasHydrated()?g():(h=bc.persist.onFinishHydration(g),i=setTimeout(g,500));let j=0,k=setInterval(()=>{let e=Date.now();a(e),b(),c(e),++j%4==0&&d()},250);return()=>{clearInterval(k),h&&h(),i&&clearTimeout(i)}},[a,b,c,d,e]),(0,z.useEffect)(()=>{let b=()=>{"visible"===document.visibilityState&&(a(Date.now()),c(Date.now()),d())};return document.addEventListener("visibilitychange",b),()=>document.removeEventListener("visibilitychange",b)},[a,c,d]),g=bc(a=>a.soundOn),(0,z.useEffect)(()=>{bN().setEnabled(g)},[g]),h=bc(a=>a.triggerGlobalTide),i=(0,z.useRef)(h),(0,z.useEffect)(()=>{i.current=h},[h]),j=(0,z.useRef)(new Set),(0,z.useEffect)(()=>{let a=(m$||(m$=mZ("/?XTransformPort=3031",{transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:1e4,timeout:1e4})),m$);m_+=1;let b=a=>{let b=`${a.startedAt}_${a.type}`;if(!j.current.has(b)){if(j.current.add(b),j.current.size>32){let a=j.current.values().next().value;a&&j.current.delete(a)}a.endsAt<=Date.now()||i.current(a.type)}},c=a=>{if(a.current&&a.current.endsAt>Date.now()){let b=`${a.current.startedAt}_${a.current.type}`;j.current.has(b)||(j.current.add(b),i.current(a.current.type))}};return a.on("global-tide",b),a.on("tide-state",c),a.emit("get-next-tide"),()=>{a.off("global-tide",b),a.off("tide-state",c),(m_-=1)<=0&&m$&&(m$.disconnect(),m$=null,m_=0)}},[]);let[k,l]=(0,z.useState)(!1),[m,n]=(0,z.useState)(!1),[o,p]=(0,z.useState)(!1),[q,r]=(0,z.useState)(!1),[s,t]=(0,z.useState)(!1),[u,v]=(0,z.useState)(!1),w=bc(a=>a.contact),x=bc(a=>a.totalDecoded),B=bc(a=>a.crystalsPerSec),C=bc(a=>a.ascensions),D=bc(a=>a.tech),E=bc(a=>a.fragments),F=bc(a=>a.achievements),G=bc(a=>a.constellation??[]),H=bc(a=>a.pendingPerkChoices),I=bc(a=>a.crystals),J=bc(a=>a.crystalCap),K=bc(a=>a.activeTide),L=bc(a=>a.globalTide),N=bc(a=>a.energy),O=bc(a=>!!a.activeExpedition&&!a.activeExpedition.finished),P=bc(a=>a.chronicle?.length??0),S=bc(a=>a.pendingAttrPoints??0),[U,V]=(0,z.useState)(!1);if((0,z.useEffect)(()=>{let a=!1,b=()=>{try{let b=aK(),c=aQ();a||V(null!==c.completedAt&&!c.claimed&&c.dateKey===b.dateKey)}catch{a||V(!1)}};b();let c=setInterval(b,2e3);return()=>{a=!0,clearInterval(c)}},[]),(0,z.useEffect)(()=>{v(!0)},[]),!u)return(0,y.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#050410] text-muted-foreground",children:(0,y.jsx)("div",{className:"animate-pulse",children:"唤醒回响中…"})});let W=Object.values(D).filter(a=>a>0).length,X=Object.values(E).filter(Boolean).length,Y=Object.values(F).filter(Boolean).length,Z=w>=100,$=H&&H.length>0,_=I>=.98*J,aa="点击中央晶体发起脉冲,累积记忆晶体";if(0===x&&I>=5?aa="右侧「待解码晶体」点击一颗晶体,开始解码":x>0&&0===W?aa="用洞见解锁技术树,提升产能":x>0&&X<M.length&&(aa=`继续解码,拼凑记忆图谱(${X}/${M.length}`),N>=1&&x>=3&&(aa="「探险」标签可深入遗迹,获取丰厚奖励"),C>=1&&G.length>0&&(aa=`星图天赋已觉醒 ${G.length}/18,继续飞升获取更多`),_&&(aa="⚠ 仓库已满,产能浪费中!请解码晶体或升级仓库"),$&&(aa="✦ 星图觉醒!点击顶部「星图」按钮选择一道天赋"),K){let a=T[K.type];aa=`${L?"🌐 全球星潮 · ":""}${a.icon} 星潮「${a.name}」进行中 \xb7 ${a.desc}`}return Z&&(aa="✦ 接触进度已满,可发起飞升进入新周目"),(0,y.jsxs)("div",{className:"relative min-h-screen flex flex-col bg-[#050410] text-foreground overflow-x-hidden",children:[(0,y.jsx)(A,{className:"fixed inset-0 w-full h-full -z-10"}),(0,y.jsx)(lQ,{}),(0,y.jsxs)("header",{className:"sticky top-0 z-30 px-3 sm:px-5 pt-3 pb-2",children:[(0,y.jsxs)("div",{className:"flex items-center gap-3 mb-2.5",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,y.jsxs)("div",{className:"relative h-9 w-9",children:[(0,y.jsx)("div",{className:"absolute inset-0 rounded-full bg-gradient-to-br from-emerald-400 via-fuchsia-500 to-rose-400 blur-md opacity-60"}),(0,y.jsx)("div",{className:"absolute inset-1 rounded-full bg-[#050410] flex items-center justify-center",children:(0,y.jsx)(b_,{className:"h-4 w-4 text-fuchsia-300"})})]}),(0,y.jsxs)("div",{className:"leading-tight",children:[(0,y.jsx)("h1",{className:"text-base sm:text-lg font-bold text-gradient font-display",children:"回响星核"}),(0,y.jsx)("p",{className:"text-[9px] sm:text-[10px] text-muted-foreground/70 -mt-0.5 tracking-wider font-tech",children:"ECHO NEXUS · v0.10"})]})]}),(0,y.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[(0,y.jsx)(lP,{}),(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:()=>t(!0),className:"border-amber-400/50 text-amber-200 hover:bg-amber-500/10 h-8 px-2.5","aria-label":"深空巡航",title:"深空巡航 · 实时玩法",children:[(0,y.jsx)(nE,{className:"h-3.5 w-3.5 mr-1"}),"巡航"]}),(0,y.jsxs)(bZ,{size:"icon",variant:"ghost",onClick:()=>r(!0),className:"h-8 w-8 relative group","aria-label":"编年史",title:"回响编年史",children:[(0,y.jsx)(ca,{className:"h-4 w-4 group-hover:text-fuchsia-300 transition-colors"}),P>0&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 min-w-[14px] h-[14px] px-1 rounded-full bg-fuchsia-500 text-[9px] font-mono font-bold text-white flex items-center justify-center border border-fuchsia-300/50",children:P})]}),$&&(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:()=>p(!0),className:"border-fuchsia-400/60 text-fuchsia-200 hover:bg-fuchsia-500/15 h-8 px-2.5 animate-pulse",children:[(0,y.jsx)(ex,{className:"h-3.5 w-3.5 mr-1"}),"觉醒"]}),Z&&(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:()=>l(!0),"data-tut":"prestige-btn",className:"border-fuchsia-400/50 text-fuchsia-200 hover:bg-fuchsia-500/10 h-8 px-2.5",children:[(0,y.jsx)(bh,{className:"h-3.5 w-3.5 mr-1"}),"飞升"]}),(0,y.jsx)(bZ,{size:"icon",variant:"ghost",onClick:()=>n(!0),className:"h-8 w-8","aria-label":"设置",children:(0,y.jsx)(nC,{className:"h-4 w-4"})})]})]}),(0,y.jsx)(bG,{onPrestige:()=>l(!0)})]}),(0,y.jsx)("main",{className:"flex-1 px-3 sm:px-5 pb-3 min-h-0",children:(0,y.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-[minmax(300px,360px)_1fr] gap-3 h-full",children:[(0,y.jsxs)("section",{className:"glass rounded-2xl p-3 sm:p-4 flex flex-col gap-3 min-h-[340px] sm:min-h-[420px] relative overflow-hidden",children:[(0,y.jsx)("div",{className:"pointer-events-none absolute -top-16 -left-16 h-40 w-40 rounded-full bg-emerald-500/10 blur-3xl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute -bottom-16 -right-16 h-40 w-40 rounded-full bg-fuchsia-500/10 blur-3xl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute inset-4 rounded-full border border-emerald-400/10 animate-[spin_60s_linear_infinite]"}),(0,y.jsx)("div",{className:"pointer-events-none absolute inset-8 rounded-full border border-dashed border-fuchsia-400/10 animate-[spin_90s_linear_infinite_reverse]"}),(0,y.jsx)("div",{className:"pointer-events-none absolute top-2 left-2 h-3 w-3 border-l border-t border-emerald-400/30 rounded-tl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute top-2 right-2 h-3 w-3 border-r border-t border-fuchsia-400/30 rounded-tr"}),(0,y.jsx)("div",{className:"pointer-events-none absolute bottom-2 left-2 h-3 w-3 border-l border-b border-amber-400/30 rounded-bl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute bottom-2 right-2 h-3 w-3 border-r border-b border-rose-400/30 rounded-br"}),(0,y.jsxs)("div",{className:"pointer-events-none absolute top-2 left-1/2 -translate-x-1/2 flex items-center gap-1.5 text-[8px] font-mono text-muted-foreground/60 z-10",children:[(0,y.jsx)("span",{className:"h-1 w-1 rounded-full bg-emerald-400 animate-pulse"}),(0,y.jsx)("span",{className:"font-tech",children:"CRYSTAL CORE · ONLINE"}),(0,y.jsx)("span",{className:"h-1 w-1 rounded-full bg-fuchsia-400 animate-pulse"})]}),(0,y.jsx)("div",{"data-tut":"crystal-orb",className:"relative flex justify-center pt-3",children:(0,y.jsx)(bX,{})}),(0,y.jsx)(nM,{}),(0,y.jsx)(lE,{})]}),(0,y.jsxs)("section",{className:"flex flex-col gap-3 min-h-0",children:[(0,y.jsx)("div",{"data-tut":"decode-panel",className:"glass rounded-2xl p-4 flex-1 min-h-[280px] sm:min-h-[320px] max-h-[480px]",children:(0,y.jsx)(b4,{})}),(0,y.jsx)("div",{className:"glass rounded-2xl p-3 min-h-[320px] sm:min-h-[380px] max-h-[560px] flex flex-col",children:(0,y.jsxs)(ny,{defaultValue:O?"expedition":$?"constellation":"tech",className:"h-full flex flex-col",children:[(0,y.jsxs)(nz,{className:"grid grid-cols-3 sm:grid-cols-9 h-auto sm:h-9 bg-black/30 gap-0.5 p-1",children:[(0,y.jsxs)(nA,{value:"expedition","data-tut":"tab-expedition",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-amber-500/15 data-[state=active]:shadow-[0_0_12px_rgba(251,191,36,0.3)] transition-all",children:[(0,y.jsx)(b9,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"探险"}),N>=1&&!O&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-amber-400 animate-pulse ring-1 ring-black/50"}),O&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-rose-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"tech","data-tut":"tab-tech",className:"text-[11px] gap-1 px-0.5 flex-col h-7 data-[state=active]:bg-emerald-500/15 data-[state=active]:shadow-[0_0_12px_rgba(52,211,153,0.3)] transition-all",children:[(0,y.jsx)(lB,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"技术"})]}),(0,y.jsxs)(nA,{value:"constellation",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-fuchsia-500/15 data-[state=active]:shadow-[0_0_12px_rgba(232,121,249,0.3)] transition-all",children:[(0,y.jsx)(ex,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"星图"}),$&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-fuchsia-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"codex",className:"text-[11px] gap-1 px-0.5 flex-col h-7 data-[state=active]:bg-cyan-500/15 data-[state=active]:shadow-[0_0_12px_rgba(34,211,238,0.3)] transition-all",children:[(0,y.jsx)(ca,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"图谱"})]}),(0,y.jsxs)(nA,{value:"ach",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-amber-500/15 data-[state=active]:shadow-[0_0_12px_rgba(251,191,36,0.3)] transition-all",children:[(0,y.jsx)(e4,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"成就"}),Y<R.length&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-amber-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"beacon",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-emerald-500/15 data-[state=active]:shadow-[0_0_12px_rgba(52,211,153,0.3)] transition-all",children:[(0,y.jsx)(la,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"信标"}),U&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-emerald-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"stats",className:"text-[11px] gap-1 px-0.5 flex-col h-7 data-[state=active]:bg-slate-500/15 data-[state=active]:shadow-[0_0_12px_rgba(148,163,184,0.3)] transition-all",children:[(0,y.jsx)(nD,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"统计"})]}),(0,y.jsxs)(nA,{value:"attributes",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-gradient-to-br data-[state=active]:from-emerald-500/15 data-[state=active]:via-fuchsia-500/15 data-[state=active]:to-rose-500/15 data-[state=active]:shadow-[0_0_12px_rgba(232,121,249,0.3)] transition-all",children:[(0,y.jsx)(nF,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"角色"}),S>0&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-rose-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"relic",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-fuchsia-500/15 data-[state=active]:shadow-[0_0_12px_rgba(232,121,249,0.3)] transition-all",children:[(0,y.jsx)(lH,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"图鉴"})]})]}),(0,y.jsx)(nB,{value:"expedition",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(e3,{})}),(0,y.jsx)(nB,{value:"tech",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(ce,{})}),(0,y.jsx)(nB,{value:"constellation",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(k9,{})}),(0,y.jsx)(nB,{value:"codex",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(cX,{})}),(0,y.jsx)(nB,{value:"ach",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(e7,{})}),(0,y.jsx)(nB,{value:"beacon",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(lo,{})}),(0,y.jsx)(nB,{value:"stats",className:"flex-1 mt-2 min-h-0",children:(0,y.jsx)(nN,{})}),(0,y.jsx)(nB,{value:"attributes",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(ly,{})}),(0,y.jsx)(nB,{value:"relic",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(lK,{})})]})})]})]})}),(0,y.jsx)("div",{className:"px-3 sm:px-5 pb-1 shrink-0",children:(0,y.jsx)(lN,{})}),(0,y.jsx)("footer",{className:"sticky bottom-0 z-20 mt-auto px-3 sm:px-5 pb-2 pt-1",children:(0,y.jsxs)("div",{className:`glass rounded-xl px-3 py-2 flex items-center gap-2 text-xs ${_?"border-amber-400/40 animate-pulse":""} ${K?"border-white/20":""}`,style:K?{boxShadow:`inset 0 0 16px ${T[K.type].glow}`}:void 0,children:[(0,y.jsx)("span",{className:_?"text-amber-400":K?"":"text-fuchsia-300",style:K?{color:T[K.type].color}:void 0,children:"▶"}),(0,y.jsx)("span",{className:`flex-1 truncate ${_?"text-amber-200":"text-muted-foreground"}`,children:aa}),(0,y.jsx)("span",{className:"hidden sm:inline text-muted-foreground/60",children:"|"}),(0,y.jsxs)("span",{className:"hidden sm:inline text-muted-foreground/70",children:["产能 ",Q(B),"/s"]}),(0,y.jsx)("a",{href:"https://git.atdunbg.xyz/Super_Z/echo-nexus",target:"_blank",rel:"noreferrer",className:"text-muted-foreground/60 hover:text-foreground transition ml-1","aria-label":"仓库",children:(0,y.jsx)(eP,{className:"h-3.5 w-3.5"})})]})}),(0,y.jsx)(ey,{open:k,onOpenChange:l}),(0,y.jsx)(nH,{open:q,onOpenChange:r}),(0,y.jsx)(nI,{open:o,onOpenChange:p}),(0,y.jsx)(eV,{open:m,onOpenChange:n}),(0,y.jsx)(k8,{}),(0,y.jsx)(lO,{}),(0,y.jsx)(lq,{}),(0,y.jsx)(nJ,{}),s&&(0,y.jsx)(nK,{onClose:()=>t(!1)})]})}function nM(){let a=bc(a=>a.crystalsPerSec),b=bc(a=>a.pulsePower),c=bc(a=>a._combo),d=bc(a=>a.crystals),e=bc(a=>a.crystalCap),f=c>=1?1+(c-1)*.15:1,g=c>=3,h=(e>0?d/e*100:0)>=90;return(0,y.jsxs)("div",{className:"mt-3 grid grid-cols-2 sm:grid-cols-4 gap-2 w-full max-w-md pointer-events-none",children:[(0,y.jsxs)("div",{className:"rounded-lg border border-emerald-400/30 bg-black/30 backdrop-blur p-2 flex items-center gap-1.5",children:[(0,y.jsx)(be,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0"}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-emerald-300/70 truncate",children:"晶体产能"}),(0,y.jsxs)("div",{className:"text-sm font-mono tabular-nums text-emerald-200 truncate",children:[Q(a),(0,y.jsx)("span",{className:"text-[9px] text-emerald-300/60",children:"/s"})]})]})]}),(0,y.jsxs)("div",{className:"rounded-lg border border-rose-400/30 bg-black/30 backdrop-blur p-2 flex items-center gap-1.5",children:[(0,y.jsx)(e_,{className:"h-3.5 w-3.5 text-rose-400 shrink-0"}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-rose-300/70 truncate",children:"主动脉冲"}),(0,y.jsxs)("div",{className:"text-sm font-mono tabular-nums text-rose-200 truncate",children:[Q(b),c>=1&&(0,y.jsxs)("span",{className:"text-[9px] text-rose-300/80",children:[" ×",f.toFixed(2)]})]})]})]}),(0,y.jsxs)("div",{className:`rounded-lg border bg-black/30 backdrop-blur p-2 flex items-center gap-1.5 ${g?"border-amber-400/70 animate-pulse":"border-amber-400/30"}`,children:[(0,y.jsx)(lg,{className:`h-3.5 w-3.5 text-amber-400 shrink-0 ${g?"drop-shadow-[0_0_4px_rgba(251,191,36,0.7)]":""}`}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-amber-300/70 truncate",children:"当前连击"}),(0,y.jsxs)("div",{className:`text-sm font-mono tabular-nums truncate ${g?"text-amber-200":"text-amber-300/80"}`,children:[c,(0,y.jsx)("span",{className:"text-[9px] text-amber-300/60",children:"/10"})]})]})]}),(0,y.jsxs)("div",{className:`rounded-lg border bg-black/30 backdrop-blur p-2 flex items-center gap-1.5 ${h?"border-rose-400/70 animate-pulse":"border-fuchsia-400/30"}`,children:[(0,y.jsx)(nG,{className:`h-3.5 w-3.5 shrink-0 ${h?"text-rose-400":"text-fuchsia-400"}`}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:`text-[9px] uppercase tracking-wider truncate ${h?"text-rose-300/80":"text-fuchsia-300/70"}`,children:"仓库容量"}),(0,y.jsxs)("div",{className:`text-sm font-mono tabular-nums truncate ${h?"text-rose-200":"text-fuchsia-200"}`,children:[Q(d),(0,y.jsxs)("span",{className:`text-[9px] ${h?"text-rose-300/70":"text-fuchsia-300/60"}`,children:["/",Q(e)]})]})]})]})]})}function nN(){let a=bc(a=>({totalDecoded:a.totalDecoded,ascensions:a.ascensions,blueprints:a.blueprints,tech:a.tech,fragments:a.fragments,achievements:a.achievements,constellation:a.constellation,contact:a.contact,crystalsPerSec:a.crystalsPerSec,crystalCap:a.crystalCap,insightMult:a.insightMult,totalExpeditions:a.totalExpeditions,bossKills:a.bossKills,starTidesEncountered:a.starTidesEncountered,chronicle:a.chronicle,energy:a.energy,energyMax:a.energyMax,attributes:a.attributes,pendingAttrPoints:a.pendingAttrPoints}),m1),b=Object.values(a.achievements).filter(Boolean).length,[c,d]=(0,z.useState)(null);(0,z.useEffect)(()=>{try{let a=aO();d(a.length>0?a[0].score:null)}catch{d(null)}},[]);let e=[{label:"累计解码晶体",value:`${a.totalDecoded} 颗`},{label:"飞升周目",value:`${a.ascensions}`},{label:"持有蓝图",value:`${a.blueprints.length} / 6`},{label:"已学技术",value:`${Object.values(a.tech).filter(a=>a>0).length} / ${K.length}`},{label:"已获碎片",value:`${Object.values(a.fragments).filter(Boolean).length} / ${M.length}`},{label:"已解锁成就",value:`${b} / ${R.length}`},{label:"星图天赋",value:`${a.constellation?.length??0} / ${Y.length}`},{label:"接触进度",value:`${a.contact.toFixed(1)}%`},{label:"晶体产能",value:`${a.crystalsPerSec.toFixed(2)} /s`},{label:"仓库上限",value:`${Q(a.crystalCap)}`},{label:"洞见倍率",value:`\xd7${a.insightMult.toFixed(2)}`},{label:"累计探险",value:`${a.totalExpeditions} 次`},{label:"BOSS 击破",value:`${a.bossKills??0} 次`},{label:"星潮亲历",value:`${(a.starTidesEncountered??[]).length} / 9`},{label:"编年史条目",value:`${(a.chronicle??[]).length} 纪元`},{label:"探险能量",value:`${Math.floor(a.energy)} / ${a.energyMax}`},{label:"信标最高分",value:null!==c?Q(c):"—"},{label:"探索力",value:`${a.attributes?.exploration??0} / 100`},{label:"智慧",value:`${a.attributes?.wisdom??0} / 100`},{label:"勇气",value:`${a.attributes?.courage??0} / 100`},{label:"灵感",value:`${a.attributes?.inspiration??0} / 100`},{label:"待分配属性点",value:`${a.pendingAttrPoints??0}`}];return(0,y.jsx)("div",{className:"grid grid-cols-2 gap-1.5 text-xs",children:e.map(a=>(0,y.jsxs)("div",{className:"flex items-center justify-between rounded-md bg-black/25 border border-white/5 px-2 py-1.5",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:a.label}),(0,y.jsx)("span",{className:"font-mono text-foreground",children:a.value})]},a.label))})}a.s(["default",()=>nL],40777)}];
//# sourceMappingURL=%5Broot-of-the-server%5D__784abf88._.js.map