Files
echo-nexus/_next/static/chunks/d8dd1b99d1f7195a.js
T

10 lines
237 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.
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16015,(e,t,a)=>{},98547,(e,t,a)=>{var s=e.i(47167);e.r(16015);var r=e.r(71645),n=r&&"object"==typeof r&&"default"in r?r:{default:r},l=void 0!==s.default&&s.default.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},i=function(){function e(e){var t=void 0===e?{}:e,a=t.name,s=void 0===a?"stylesheet":a,r=t.optimizeForSpeed,n=void 0===r?l:r;c(o(s),"`name` must be a string"),this._name=s,this._deletedRulePlaceholder="#"+s+"-deleted-rule____{}",c("boolean"==typeof n,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=n,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var i="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=i?i.getAttribute("content"):null}var t,a=e.prototype;return a.setOptimizeForSpeed=function(e){c("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),c(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},a.isOptimizeForSpeed=function(){return this._optimizeForSpeed},a.inject=function(){var e=this;if(c(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(l||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,a){return"number"==typeof a?e._serverSheet.cssRules[a]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),a},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},a.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},a.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},a.insertRule=function(e,t){if(c(o(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var a=this.getSheet();"number"!=typeof t&&(t=a.cssRules.length);try{a.insertRule(e,t)}catch(t){return l||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var s=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,s))}return this._rulesCount++},a.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var a="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!a.cssRules[e])return e;a.deleteRule(e);try{a.insertRule(t,e)}catch(s){l||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),a.insertRule(this._deletedRulePlaceholder,e)}}else{var s=this._tags[e];c(s,"old rule at index `"+e+"` not found"),s.textContent=t}return e},a.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];c(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},a.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},a.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,a){return a?t=t.concat(Array.prototype.map.call(e.getSheetForTag(a).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},a.makeStyleTag=function(e,t,a){t&&c(o(t),"makeStyleTag accepts only strings as second parameter");var s=document.createElement("style");this._nonce&&s.setAttribute("nonce",this._nonce),s.type="text/css",s.setAttribute("data-"+e,""),t&&s.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return a?r.insertBefore(s,a):r.appendChild(s),s},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var a=0;a<t.length;a++){var s=t[a];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}(e.prototype,t),e}();function c(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var d=function(e){for(var t=5381,a=e.length;a;)t=33*t^e.charCodeAt(--a);return t>>>0},u={};function h(e,t){if(!t)return"jsx-"+e;var a=String(t),s=e+a;return u[s]||(u[s]="jsx-"+d(e+"-"+a)),u[s]}function f(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var a=e+t;return u[a]||(u[a]=t.replace(/__jsx-style-dynamic-selector/g,e)),u[a]}var m=function(){function e(e){var t=void 0===e?{}:e,a=t.styleSheet,s=void 0===a?null:a,r=t.optimizeForSpeed,n=void 0!==r&&r;this._sheet=s||new i({name:"styled-jsx",optimizeForSpeed:n}),this._sheet.inject(),s&&"boolean"==typeof n&&(this._sheet.setOptimizeForSpeed(n),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var a=this.getIdAndRules(e),s=a.styleId,r=a.rules;if(s in this._instancesCounts){this._instancesCounts[s]+=1;return}var n=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[s]=n,this._instancesCounts[s]=1},t.remove=function(e){var t=this,a=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(a in this._instancesCounts,"styleId: `"+a+"` not found"),this._instancesCounts[a]-=1,this._instancesCounts[a]<1){var s=this._fromServer&&this._fromServer[a];s?(s.parentNode.removeChild(s),delete this._fromServer[a]):(this._indices[a].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[a]),delete this._instancesCounts[a]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],a=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return a[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,a;return t=this.cssRules(),void 0===(a=e)&&(a={}),t.map(function(e){var t=e[0],s=e[1];return n.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:a.nonce?a.nonce:void 0,dangerouslySetInnerHTML:{__html:s}})})},t.getIdAndRules=function(e){var t=e.children,a=e.dynamic,s=e.id;if(a){var r=h(s,a);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return f(r,e)}):[f(r,t)]}}return{styleId:h(s),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),x=r.createContext(null);function p(){return new m}function g(){return r.useContext(x)}x.displayName="StyleSheetContext";var b=n.default.useInsertionEffect||n.default.useLayoutEffect,v="u">typeof window?p():void 0;function y(e){var t=v||g();return t&&("u"<typeof window?t.add(e):b(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}y.dynamic=function(e){return e.map(function(e){return h(e[0],e[1])}).join(" ")},a.StyleRegistry=function(e){var t=e.registry,a=e.children,s=r.useContext(x),l=r.useState(function(){return s||t||p()})[0];return n.default.createElement(x.Provider,{value:l},a)},a.createStyleRegistry=p,a.style=y,a.useStyleRegistry=g},37902,(e,t,a)=>{t.exports=e.r(98547).style},52683,e=>{"use strict";let t,a,s,r,n,l,o;var i,c,d,u,h,f,m,x=e.i(43476),p=e.i(71645);function g({className:e}){let t=(0,p.useRef)(null);return(0,p.useEffect)(()=>{let e=t.current;if(!e)return;let a=e.getContext("2d");if(!a)return;let s=0,r=0,n=1,l=[],o=[],i=0,c=performance.now(),d=["#34d399","#fb7185","#fbbf24","#e879f9","#a5f3fc"];function u(){n=Math.min(2,window.devicePixelRatio||1),s=e.clientWidth,r=e.clientHeight,e.width=Math.floor(s*n),e.height=Math.floor(r*n),a.setTransform(n,0,0,n,0,0),l=Array.from({length:Math.min(220,Math.floor(s*r/7e3))},()=>({x:Math.random()*s,y:Math.random()*r,z:Math.random(),r:1.4*Math.random()+.2,tw:Math.random()*Math.PI*2,hue:.15>Math.random()?Math.floor(Math.random()*d.length):-1}))}u();let h=new ResizeObserver(u);return h.observe(e),i=requestAnimationFrame(function e(t){let n=t-c;c=t;let u=a.createRadialGradient(.5*s,.4*r,0,.5*s,.5*r,.8*Math.max(s,r));u.addColorStop(0,"#1a0f2e"),u.addColorStop(.45,"#0d0a1f"),u.addColorStop(1,"#050410"),a.fillStyle=u,a.fillRect(0,0,s,r),a.globalCompositeOperation="screen";for(let e=0;e<3;e++){let n=s*(.2+.3*e)+40*Math.sin(t/9e3+e),l=r*(.3+e%2*.4)+30*Math.cos(t/11e3+e),o=Math.max(80,Math.min(s,r)*(.25+.05*e)),i=a.createRadialGradient(n,l,0,n,l,o),c=0===e?"rgba(232,121,249,0.10)":1===e?"rgba(52,211,153,0.08)":"rgba(251,113,133,0.08)";i.addColorStop(0,c),i.addColorStop(1,"rgba(0,0,0,0)"),a.fillStyle=i,a.beginPath(),a.arc(n,l,o,0,2*Math.PI),a.fill()}for(let e of(a.globalCompositeOperation="source-over",l)){e.tw+=.02+.04*e.z;let t=.4+.35*Math.sin(e.tw)+.3*e.z;e.hue>=0?(a.fillStyle=d[e.hue],a.globalAlpha=Math.max(0,Math.min(1,t)),a.beginPath(),a.arc(e.x,e.y,1.6*e.r,0,2*Math.PI),a.fill(),a.globalAlpha=Math.max(0,Math.min(1,.25*t)),a.beginPath(),a.arc(e.x,e.y,4*e.r,0,2*Math.PI)):(a.fillStyle=`rgba(220,230,255,${Math.max(0,Math.min(1,t))})`,a.beginPath(),a.arc(e.x,e.y,e.r,0,2*Math.PI)),a.fill(),e.y+=.02+.05*e.z,e.y>r+2&&(e.y=-2,e.x=Math.random()*s)}a.globalAlpha=1,.04>Math.random()&&function(){if(o.length>60)return;let e=d[Math.floor(Math.random()*d.length)];o.push({x:Math.random()*s,y:r+10,vx:(Math.random()-.5)*.3,vy:-(.5*Math.random()+.2),life:0,maxLife:600+800*Math.random(),color:e})}(),a.globalCompositeOperation="screen";for(let e=o.length-1;e>=0;e--){let t=o[e];if(t.life+=n,t.x+=t.vx*n*.06,t.y+=t.vy*n*.06,t.life>t.maxLife||t.y<-10){o.splice(e,1);continue}let s=.7*Math.sin(t.life/t.maxLife*Math.PI);a.fillStyle=t.color,a.globalAlpha=s,a.beginPath(),a.arc(t.x,t.y,1.6,0,2*Math.PI),a.fill(),a.globalAlpha=.2*s,a.beginPath(),a.arc(t.x,t.y,5,0,2*Math.PI),a.fill()}a.globalAlpha=1,a.globalCompositeOperation="source-over",i=requestAnimationFrame(e)}),()=>{cancelAnimationFrame(i),h.disconnect()}},[]),(0,x.jsx)("canvas",{ref:t,className:e,"aria-hidden":"true"})}e.i(47167);let b=e=>{let t,a=new Set,s=(e,s)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=s?s:"object"!=typeof r||null===r)?r:Object.assign({},t,r),a.forEach(a=>a(t,e))}},r=()=>t,n={setState:s,getState:r,getInitialState:()=>l,subscribe:e=>(a.add(e),()=>a.delete(e))},l=t=e(s,r,n);return n},v=e=>{let t=e?b(e):b,a=e=>(function(e,t=e=>e){let a=p.default.useSyncExternalStore(e.subscribe,p.default.useCallback(()=>t(e.getState()),[e,t]),p.default.useCallback(()=>t(e.getInitialState()),[e,t]));return p.default.useDebugValue(a),a})(t,e);return Object.assign(a,t),a};function y(e,t){let a;try{a=e()}catch(e){return}return{getItem:e=>{var s;let r=e=>null===e?null:JSON.parse(e,null==t?void 0:t.reviver),n=null!=(s=a.getItem(e))?s:null;return n instanceof Promise?n.then(r):r(n)},setItem:(e,s)=>a.setItem(e,JSON.stringify(s,null==t?void 0:t.replacer)),removeItem:e=>a.removeItem(e)}}let w=e=>t=>{try{let a=e(t);if(a instanceof Promise)return a;return{then:e=>w(e)(a),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>w(t)(e)}}},j={crystals:0,insights:0,energy:3,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:5,lastEnergyTick:Date.now(),totalExpeditions:0,bossKills:0,achievements:{},activeTide:null,lastTideEnd:0,starTidesEncountered:[],constellation:[],pendingPerkChoices:null,chronicle:[],runStart:{timestamp:Date.now(),techsUnlocked:0,expeditionsCompleted:0,bossKills:0,starTidesEncountered:[],crystalsDecoded:0},theme:"dark",soundOn:!0},N={1:{crystals:6,insights:1},2:{crystals:22,insights:4},3:{crystals:90,insights:16}},k={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}},S=["emerald","rose","amber","fuchsia"],M={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:"紫"}},_=[{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:"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:"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",cost:60,effect:{kind:"crystalCap",value:200}},{id:"exp_3",branch:"expedition",level:3,name:"维度信标",desc:"探险力 +8,接触进度转化率 +50%",cost:180,effect:{kind:"contactRate",value:.5}},{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}}],C={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:"洞见与接触进度"}},E=[{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}],T=.05,R=.03,P=.04;function $(e){return isFinite(e)?e<1e3?e.toFixed(+(e<10&&e%1!=0)):e<1e6?(e/1e3).toFixed(2)+"K":e<1e9?(e/1e6).toFixed(2)+"M":e<1e12?(e/1e9).toFixed(2)+"B":(e/1e12).toFixed(2)+"T":"∞"}let A=[{id:"ach_first_pulse",name:"初次触碰",desc:"发起第一次脉冲扫描",icon:"✦",color:"#34d399",check:e=>e.totalDecoded>=0||e.crystals>0,reward:{crystals:5},rewardText:"+5 晶体"},{id:"ach_first_decode",name:"谐振初鸣",desc:"成功解码第一颗记忆晶体",icon:"◈",color:"#fb7185",check:e=>e.totalDecoded>=1,reward:{insights:3},rewardText:"+3 洞见"},{id:"ach_decoded_10",name:"回响解码者",desc:"累计解码 10 颗晶体",icon:"❖",color:"#fbbf24",check:e=>e.totalDecoded>=10,reward:{insights:15,crystalsPerSecPct:5},rewardText:"+15 洞见 · 产能 +5%"},{id:"ach_decoded_25",name:"记忆织匠",desc:"累计解码 25 颗晶体",icon:"✺",color:"#e879f9",check:e=>e.totalDecoded>=25,reward:{insights:40,crystalsPerSecPct:8},rewardText:"+40 洞见 · 产能 +8%"},{id:"ach_decoded_50",name:"星核解密师",desc:"累计解码 50 颗晶体",icon:"✷",color:"#34d399",check:e=>e.totalDecoded>=50,reward:{insights:100,crystalsPerSecPct:12,insightPct:10},rewardText:"+100 洞见 · 产能 +12% · 洞见 +10%"},{id:"ach_tech_3",name:"初窥门径",desc:"解锁 3 项技术",icon:"⚙",color:"#fbbf24",check:e=>Object.values(e.tech).filter(e=>e>0).length>=3,reward:{insights:20},rewardText:"+20 洞见"},{id:"ach_tech_all",name:"全谱精通",desc:"解锁全部 12 项技术",icon:"⬡",color:"#e879f9",check:e=>Object.values(e.tech).filter(e=>e>0).length>=12,reward:{crystalsPerSecPct:15,insightPct:15},rewardText:"产能 +15% · 洞见 +15%"},{id:"ach_frag_4",name:"残篇拾遗",desc:"拼凑 4 段记忆碎片",icon:"▤",color:"#fb7185",check:e=>Object.values(e.fragments).filter(Boolean).length>=4,reward:{contact:10,insights:25},rewardText:"+10 接触 · +25 洞见"},{id:"ach_frag_all",name:"回响全谱",desc:"拼凑全部首纪元记忆碎片",icon:"▦",color:"#34d399",check:e=>Object.values(e.fragments).filter(Boolean).length>=8,reward:{contact:25,crystalsPerSecPct:10},rewardText:"+25 接触 · 产能 +10%"},{id:"ach_exp_1",name:"初探遗迹",desc:"完成第一次遗迹探险",icon:"▲",color:"#fbbf24",check:e=>e.totalExpeditions>=1,reward:{insights:10},rewardText:"+10 洞见"},{id:"ach_exp_5",name:"遗迹猎手",desc:"累计出发 5 次探险",icon:"⬢",color:"#fb7185",check:e=>e.totalExpeditions>=5,reward:{insights:30,crystalsPerSecPct:5},rewardText:"+30 洞见 · 产能 +5%"},{id:"ach_prestige_1",name:"初次接触",desc:"完成第一次飞升",icon:"✧",color:"#e879f9",check:e=>e.ascensions>=1,reward:{crystalsPerSecPct:10,insightPct:10},rewardText:"产能 +10% · 洞见 +10%"},{id:"ach_prestige_3",name:"维度行者",desc:"累计飞升 3 次",icon:"✶",color:"#34d399",check:e=>e.ascensions>=3,reward:{crystalsPerSecPct:20,insightPct:20},rewardText:"产能 +20% · 洞见 +20%"},{id:"ach_warehouse",name:"满仓时刻",desc:"晶体储量达到仓库上限",icon:"▣",color:"#fbbf24",check:e=>e.crystals>=e.crystalCap,reward:{insights:8},rewardText:"+8 洞见"},{id:"ach_constellation_1",name:"星图初绘",desc:"觉醒第 1 道星图天赋",icon:"✨",color:"#e879f9",check:e=>(e.constellation?.length??0)>=1,reward:{insights:30,crystalsPerSecPct:5},rewardText:"+30 洞见 · 产能 +5%"},{id:"ach_constellation_6",name:"六分星辉",desc:"觉醒 6 道星图天赋(每类各 1 道)",icon:"✺",color:"#34d399",check:e=>{let t=e.constellation??[];return new Set(t.map(e=>e.split("_")[1])).size>=6&&t.length>=6},reward:{crystalsPerSecPct:12,insightPct:12},rewardText:"产能 +12% · 洞见 +12%"},{id:"ach_chronicle_1",name:"首部编年",desc:"完成首次飞升,开启编年史第一章",icon:"📖",color:"#e879f9",check:e=>(e.chronicle?.length??0)>=1,reward:{insights:40,crystalsPerSecPct:6},rewardText:"+40 洞见 · 产能 +6%"},{id:"ach_chronicle_3",name:"三纪元回响",desc:"完成 3 次飞升,编年史铭刻三章",icon:"📜",color:"#fbbf24",check:e=>(e.chronicle?.length??0)>=3,reward:{crystalsPerSecPct:10,insightPct:10},rewardText:"产能 +10% · 洞见 +10%"},{id:"ach_chronicle_5",name:"五纪元闭环",desc:"完成 5 次飞升,走完一轮纪元循环",icon:"♾",color:"#fcd34d",check:e=>(e.chronicle?.length??0)>=5,reward:{crystalsPerSecPct:15,insightPct:15},rewardText:"产能 +15% · 洞见 +15%"},{id:"ach_boss_1",name:"首杀维度",desc:"在遗迹探险中击破首个 BOSS",icon:"⚔",color:"#fb7185",check:e=>(e.bossKills??0)>=1,reward:{insights:25,crystalsPerSecPct:4},rewardText:"+25 洞见 · 产能 +4%"},{id:"ach_boss_5",name:"维度猎手",desc:"累计击破 5 个 BOSS",icon:"⛧",color:"#e879f9",check:e=>(e.bossKills??0)>=5,reward:{crystalsPerSecPct:10,insightPct:8},rewardText:"产能 +10% · 洞见 +8%"},{id:"ach_tides_all",name:"星潮亲历者",desc:"经历全部 6 种星潮事件",icon:"🌊",color:"#34d399",check:e=>(e.starTidesEncountered?.length??0)>=6,reward:{crystalsPerSecPct:8,insightPct:8},rewardText:"产能 +8% · 洞见 +8%"}];function D(e){let t=0,a=0;for(let s of A)e[s.id]&&(t+=s.reward.crystalsPerSecPct??0,a+=s.reward.insightPct??0);return{crystalsPerSecPct:t,insightPct:a}}let z={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}},O={crystal:22,resonance:20,ruins:16,void:18,core:14,silence:10};function I(e){if(!e)return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};switch(e.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}}}let F={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:"全局综合增益"}},L=[{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 B(e){return L.find(t=>t.id===e)}function H(e){let t=new Set(e),a={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 t.has("c_min_1")&&(a.crystalsPerSecMult+=.2),t.has("c_min_2")&&(a.crystalCapMult+=.5),t.has("c_min_3")&&(a.pulsePowerMult+=.5),t.has("c_dec_1")&&(a.insightMultAdd+=.15),t.has("c_dec_2")&&(a.decodeStepsBonus+=1),t.has("c_dec_3")&&(a.autoDecodeIntervalDeltaSec-=3),t.has("c_exp_1")&&(a.expeditionHpMult+=.25),t.has("c_exp_2")&&(a.expeditionPowerMult+=.2),t.has("c_exp_3")&&(a.energyMaxBonus+=1),t.has("c_con_1")&&(a.contactRateMult+=.2),t.has("c_con_2")&&(a.prestigeContactMinDelta-=10),t.has("c_con_3")&&(a.perBlueprintAllStatsPct+=2),t.has("c_eco_1")&&(a.offlineEffBonus+=.15),t.has("c_eco_2")&&(a.t2t3BonusRate+=.08),t.has("c_eco_3")&&(a.tideGapDeltaSec-=10),t.has("c_cos_1")&&(a.prestigeStartCrystals+=30,a.prestigeStartInsights+=5),t.has("c_cos_2")&&(a.decodeRewardMult+=.1),t.has("c_cos_3")&&(a.allProductionMult+=.08),a}function K(e,t=Math.random){let a=new Set(e),s=L.filter(e=>!a.has(e.id));if(0===s.length)return[];let r=[...s].sort(()=>t()-.5),n=[],l=new Set;for(let e of r){if(n.length>=3)break;l.has(e.category)||(n.push(e),l.add(e.category))}for(let e of r){if(n.length>=3)break;n.includes(e)||n.push(e)}return n.slice(0,3).map(e=>e.id)}function W(e,t){let a=new Set(e);return L.filter(e=>e.category===t&&a.has(e.id)).length}function q(e){return{unlocked:e.length,total:L.length}}let V=Object.fromEntries(L.map(e=>[e.id,e.name])),U=Object.fromEntries(Object.entries(z).map(([e,t])=>[`tide_${e}`,t.name])),X=[{prefix:"第一纪元",suffixes:["觉醒之晨","初鸣之夕","晶体降诞","回响初啼"]},{prefix:"第二纪元",suffixes:["谐振潮汐","光谱涌动","深空低语","残响交织"]},{prefix:"第三纪元",suffixes:["遗迹苏醒","星辉汇聚","虚空回望","接触前夜"]},{prefix:"第四纪元",suffixes:["维度折叠","以太共振","星核悸动","飞升之歌"]},{prefix:"第五纪元",suffixes:["终末回响","永恒闭环","超越之境","起源重述"]}];function Y(e){let t=Math.max(1,Math.round(e.durationSec/60)),a=[];a.push(`「${e.epochName}」——无人机群在第 ${e.ascensionNumber} 次跨越维度的余烬中重新校准。这一周目持续了约 ${t} 分钟。`);let s=[];if(e.decodedThisRun>0&&s.push(`解码了 ${e.decodedThisRun} 颗记忆晶体`),e.techsThisRun>0&&s.push(`激活了 ${e.techsThisRun} 项新技术`),e.expThisRun>0&&s.push(`完成了 ${e.expThisRun} 次遗迹探险`),e.bossKillsThisRun>0&&s.push(`击破 ${e.bossKillsThisRun} 处维度 BOSS`),s.length>0?a.push(`自治机群${s.join("")},回响在虚空中沉淀。`):a.push(`自治机群在静默中等待,仅完成最基本的脉冲扫描。`),e.newTides.length>0){let t=e.newTides.map(e=>U[e]||e).join("、");a.push(`本周目经历了 ${e.newTides.length} 次星潮事件(${t}),深空的呼吸塑造了每一个决策。`)}if(e.perksThisAscension.length>0){let t=e.perksThisAscension.map(e=>V[e]||e).join("、");a.push(`飞升之际,星图觉醒「${t}」,铭刻于永恒回响。`)}return e.milestones.length>0&&a.push(`✦ 里程碑:${e.milestones.join("")}。`),a.push(`蓝图累计 ${e.blueprintsAfter} 张,新的周目在等深处的回声。`),a.join(" ")}function G(e){let t=e.tech??{},a=e.blueprints?.length??0,s=D(e.achievements??{}),r=I(e.activeTide??null),n=H(e.constellation??[]),l=j.crystalsPerSec,o=j.crystalCap,i=j.pulsePower,c=j.offlineEff,d=j.insightMult,u=1,h=!1,f=0;for(let e of _){let a=t[e.id]??0;if(!a)continue;let s=e.effect;switch(s.kind){case"crystalsPerSec":l+=s.value*a;break;case"crystalCap":o+=s.value*a;break;case"pulsePower":i+=s.value*a;break;case"offlineEff":c=Math.min(1,c+s.value*a);break;case"insightMult":d+=s.value*a;break;case"contactRate":u+=s.value*a;break;case"decodeSteps":f+=s.value*a;break;case"autoDecode":h=a>0}}let m=n.perBlueprintAllStatsPct/100;return l*=1+a*(T+m),d*=1+a*(R+m),u*=1+a*(P+m),l*=1+s.crystalsPerSecPct/100,d*=1+s.insightPct/100,l*=n.crystalsPerSecMult*n.allProductionMult,o*=n.crystalCapMult,i*=n.pulsePowerMult*n.allProductionMult,c=Math.min(1,c+n.offlineEffBonus),d+=n.insightMultAdd,u*=n.contactRateMult,f+=n.decodeStepsBonus,{crystalsPerSec:l,crystalCap:o,pulsePower:i,offlineEff:c,insightMult:d+=r.insightMultAdd,contactRateMult:u*=r.contactRateMult,autoDecode:h,decodeStepsBonus:f}}function J(e){return Math.max(0,Math.min(6,Math.floor(e.totalDecoded/20))-e.blueprints.length)}function Z(){return{...j,tech:{},fragments:{},achievements:{},activeTide:null,lastTideEnd:Date.now(),pendingCrystals:[],activePuzzle:null,activeExpedition:null,expeditionLog:[],lastEnergyTick:Date.now(),createdAt:Date.now(),lastTick:Date.now()}}function Q(e,t,a){let s=N[e];return{crystals:s.crystals,insights:Math.ceil(s.insights*t),contact:+(.6*e*a).toFixed(2)}}function ee(e,t){let a,s=k[e],r=t??Math.floor(1e9*Math.random()),n=(a=r>>>0,()=>{a|=0;let e=Math.imul((a=a+0x6d2b79f5|0)^a>>>15,1|a);return(((e=e+Math.imul(e^e>>>7,61|e)^e)^e>>>14)>>>0)/0x100000000}),{rows:l,cols:o,targetLen:i}=s,c=l*o,d=[];for(let e=0;e<i;e++)d.push(S[Math.floor(n()*S.length)]);new Set(d).size<2&&(d[d.length-1]=S[(S.indexOf(d[0])+1)%S.length]);let u=e=>{let t=Math.floor(e/o),a=e%o,s=[];return t>0&&s.push((t-1)*o+a),t<l-1&&s.push((t+1)*o+a),a>0&&s.push(t*o+(a-1)),a<o-1&&s.push(t*o+(a+1)),s},h=null;for(let e=0;e<300&&!h;e++){let e=new Set,t=[],a=Math.floor(n()*c);e.add(a),t.push(a);let s=a,r=!0;for(let a=1;a<d.length;a++){let a=u(s).filter(t=>!e.has(t));if(0===a.length){r=!1;break}s=a[Math.floor(n()*a.length)],e.add(s),t.push(s)}r&&(h=t)}h||(h=Array.from({length:d.length},(e,t)=>t));let f=new Map;h.forEach((e,t)=>f.set(e,d[t]));let m=[];for(let e=0;e<l;e++)for(let t=0;t<o;t++){let a,s=e*o+t;a=f.has(s)?f.get(s):.6>n()?d[Math.floor(n()*d.length)]:S[Math.floor(n()*S.length)],m.push({id:s,row:e,col:t,color:a,used:!1})}return{tier:e,grid:m,rows:l,cols:o,target:d,path:[],stepLimit:s.stepLimitBase,seed:r}}function et(e){let t=e.target.slice(e.path.length);if(0===t.length)return!0;let a=new Set(e.path),s=0===e.path.length?e.grid.filter(e=>!a.has(e.id)&&e.color===t[0]).map(e=>e.id):[e.path[e.path.length-1]],r=(s,n)=>{if(n>=t.length)return!0;let l=t[n];for(let t of(t=>{let a=e.grid.find(e=>e.id===t);if(!a)return[];let s=[];return a.row>0&&s.push((a.row-1)*e.cols+a.col),a.row<e.rows-1&&s.push((a.row+1)*e.cols+a.col),a.col>0&&s.push(a.row*e.cols+(a.col-1)),a.col<e.cols-1&&s.push(a.row*e.cols+(a.col+1)),s})(s)){if(a.has(t))continue;let o=e.grid.find(e=>e.id===t);if(o&&o.color===l){if(0===n&&0===e.path.length){let t=e.grid.find(e=>e.id===s);if(!t||t.color!==l)continue}if(a.add(t),r(t,n+1))return!0;a.delete(t)}}return!1};for(let n of s)if(0===e.path.length){let s=e.grid.find(e=>e.id===n);if(!s||s.color!==t[0])continue;if(a.add(n),r(n,1))return!0;a.delete(n)}else if(r(n,0))return!0;return!1}let ea={combat:.3,treasure:.25,choice:.2,puzzle:.1,rest:.15,boss:0},es={combat:{titles:["守卫残影","虚空巡游者","腐化无人机","以太守门人"],descs:["一道扭曲的残影拦住去路,它是被遗忘的守卫。","虚空巡游者在走廊游荡,感知到了你的存在。","腐化的自治无人机识别为入侵者,启动攻击协议。","以太守门人挡在门前,唯有将其击溃方可通过。"]},treasure:{titles:["遗失货舱","晶体宝库","遗物储藏室","谐振宝箱"],descs:["一扇半开的舱门后,散落着未及带走的晶体。","宝库的能量护盾早已失效,宝藏唾手可得。","储藏室里的容器还亮着微光,里面是珍贵的洞见核心。","一只谐振宝箱静静等候,似乎在等故人归来。"]},choice:{titles:["分岔甬道","低语祭坛","未知装置","回响之井"],descs:["甬道在此分岔,两条路都传来不同的低语。","祭坛上浮动着两团光,你必须选择其一。","未知装置闪烁着两个按钮,你不知道后果。","回响之井倒映出两种可能的未来。"]},puzzle:{titles:["封印之门","谐振锁","记忆机关","维度栅栏"],descs:["一道封印之门需要正确的谐振才能开启。","谐振锁闪烁着复杂的图案,解之有大奖。","记忆机关考验着你的解码技艺。","维度栅栏以谜题为钥,智者得通行。"]},rest:{titles:["休憩节点","能量泉眼","静默之厅","回响营地"],descs:["一处宁静的节点,可在此恢复生命。","能量泉眼涌出暖流,抚慰你的探险队。","静默之厅中,时间仿佛静止,伤痛缓缓消散。","前人留下的营地,尚有补给可用。"]},boss:{titles:["以太回响体","维度守护者","飞升残念","终焉之核"],descs:["路径尽头,以太回响体静静伫立——它是这个遗迹意志的化身。","维度守护者挡在最后,唯有超越它方能触及终焉。","飞升残念凝聚成形,它是以太族离去前留下的最后一道试炼。","终焉之核悬浮于大厅中央,接触它即完成本次探险。"]}};function er(e,t){return Math.max(.25,Math.min(.95,e/(e+8*t)))}let en={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:"✶"}},el={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 eo(e=new Date){let t=e.getUTCFullYear(),a=String(e.getUTCMonth()+1).padStart(2,"0"),s=String(e.getUTCDate()).padStart(2,"0");return`${t}-${a}-${s}`}function ei(e=new Date){let t,a=eo(e),s=function(e){let t=0x811c9dc5;for(let a=0;a<e.length;a++)t^=e.charCodeAt(a),t=Math.imul(t,0x1000193)>>>0;return t>>>0}(a),r=(t=s>>>0,()=>{t|=0;let e=Math.imul((t=t+0x6d2b79f5|0)^t>>>15,1|t);return(((e=e+Math.imul(e^e>>>7,61|e)^e)^e>>>14)>>>0)/0x100000000}),n=["decode","expedition","pulse","boss","insight"],l=n[Math.floor(r()*n.length)],o=r(),i=o<.55?"routine":o<.88?"anomaly":"singular",c=en[i].mult,d=0,u=0,h=0,f="",m="";switch(l){case"decode":u=Math.round(4*(d=Math.round((6+Math.floor(10*r()))*c))*c),h=.8*d,f=`解码 ${d} 颗记忆晶体`,m=`深空信标要求解码 ${d} 颗晶体。谐振风暴期间效率更高。`;break;case"expedition":u=Math.round(12*(d=Math.max(1,Math.round((1+Math.floor(3*r()))*c)))*c),h=1.5*d,f=`完成 ${d} 次遗迹探险`,m=`派出探险队完成 ${d} 次远征,无论胜负均计入。`;break;case"pulse":u=Math.round(1.2*(d=Math.round((20+Math.floor(30*r()))*c))*c),h=.3*d,f=`发起 ${d} 次脉冲扫描`,m=`主动点击晶体发起 ${d} 次脉冲。连击可叠加加成。`;break;case"boss":u=Math.round(30*(d=Math.max(1,Math.round(c)))*c),h=3*d,f=`击破 ${d} 处维度 BOSS`,m=`在探险终点击破 ${d} 处 BOSS。提升探险力后再挑战。`;break;case"insight":d=Math.round((40+Math.floor(80*r()))*c),u=0,h=.1*d,f=`累计获取 ${d} 洞见`,m=`通过解码、探险、星潮等途径累计 ${d} 洞见。`}return{dateKey:a,type:l,difficulty:i,goal:d,rewardInsight:u,rewardContact:h,seed:s,title:f,desc:m}}let ec="echo-nexus-beacon-lb-v1",ed="echo-nexus-beacon-prog-v1";function eu(){if("u"<typeof localStorage)return[];try{let e=localStorage.getItem(ec);if(!e)return[];return JSON.parse(e).sort((e,t)=>t.score-e.score).slice(0,20)}catch{return[]}}function eh(e=new Date){let t=eo(e);if("u"<typeof localStorage)return{dateKey:t,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};try{let e=localStorage.getItem(ed);if(!e)return{dateKey:t,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};let a=JSON.parse(e);if(a.dateKey!==t)return{dateKey:t,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};return a}catch{return{dateKey:t,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0}}}function ef(e){"u">typeof localStorage&&localStorage.setItem(ed,JSON.stringify(e))}let em=null;function ex(e){em=e,window.dispatchEvent(new CustomEvent("echo-nexus-offline-report"))}function ep(){let e=em;return em=null,e}function eg(e){let t=G(e);return{crystalsPerSec:t.crystalsPerSec,crystalCap:t.crystalCap,pulsePower:t.pulsePower,offlineEff:t.offlineEff,insightMult:t.insightMult,contactRateMult:t.contactRateMult,autoDecode:t.autoDecode,decodeStepsBonus:t.decodeStepsBonus}}function eb(e,t){try{let a,s,r,n,l,o=ei();if(o.type!==e)return!1;let i=eh();if(null!==i.completedAt)return!1;let{justCompleted:c}=(a=Math.min(o.goal,i.progress+t),r=(s=null===i.completedAt&&a>=o.goal)?Date.now():i.completedAt,n=null!==r?Math.floor((r-i.startedAt)/1e3):i.durationSec,l={...i,progress:a,completedAt:r,durationSec:n},ef(l),{progress:l,justCompleted:s});return c}catch{return!1}}function ev(e){let t=[];for(let a of E)!e.fragments[a.id]&&e.totalDecoded>=a.threshold&&(e.fragments[a.id]=!0,t.push(a.id));return t}window.__setOfflineReport=ex;let ey=(t?v(t):v)((a=(e,t)=>({...Z(),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_achievementQueue:[],_tideEvents:[],init:()=>{let a=t(),s=Date.now(),r=a.activePuzzle;if(r&&!et(r)){let t={id:`c_${s}_rec`,tier:r.tier,value:N[r.tier].crystals,createdAt:s};r=null,e({pendingCrystals:[...a.pendingCrystals,t].slice(-6)})}let n=a.achievements??{},l=a.activeTide??null,o=a.constellation??[],i=a.pendingPerkChoices??null,c={chronicle:Array.isArray(a.chronicle)?a.chronicle:[],runStart:a.runStart||{timestamp:a.createdAt||Date.now(),techsUnlocked:Object.keys(a.tech||{}).length,expeditionsCompleted:a.totalExpeditions||0,bossKills:a.bossKills||0,starTidesEncountered:[...a.starTidesEncountered||[]],crystalsDecoded:a.totalDecoded||0},bossKills:"number"==typeof a.bossKills?a.bossKills:0,starTidesEncountered:Array.isArray(a.starTidesEncountered)?a.starTidesEncountered:[]},d=H(o),u=j.energyMax+d.energyMaxBonus,h=a.lastTideEnd??0,f=l&&l.endsAt>s?l:null,m=Math.max(0,(s-a.lastTick)/1e3);if(window.__initTrace={lastTick:a.lastTick,now:s,elapsed:m,crystalsBefore:a.crystals,hydrated:ey.persist.hasHydrated(),at:Date.now()},m>5){let t=Math.min(m,28800),l=a.crystalsPerSec*t*a.offlineEff,d=a.crystals,x=Math.min(a.crystalCap,a.crystals+l),p={elapsedSec:t,rawElapsedSec:m,gain:x-d,rate:a.crystalsPerSec,eff:a.offlineEff,capped:m>28800,crystalsBefore:d,crystalsAfter:x,crystalCap:a.crystalCap};window.__lastOfflineReport={gain:p.gain,elapsed:p.elapsedSec,at:Date.now()},ex(p),e({crystals:x,lastTick:s,activePuzzle:r,achievements:n,activeTide:f,lastTideEnd:h,constellation:o,pendingPerkChoices:i,energyMax:u,chronicle:c.chronicle,runStart:c.runStart,bossKills:c.bossKills,starTidesEncountered:c.starTidesEncountered,...eg({tech:a.tech,blueprints:a.blueprints,achievements:n,activeTide:f,constellation:o})})}else e({lastTick:s,activePuzzle:r,achievements:n,activeTide:f,lastTideEnd:h,constellation:o,pendingPerkChoices:i,energyMax:u,chronicle:c.chronicle,runStart:c.runStart,bossKills:c.bossKills,starTidesEncountered:c.starTidesEncountered,...eg({tech:a.tech,blueprints:a.blueprints,achievements:n,activeTide:f,constellation:o})})},loadOnline:()=>{let a=t();e({...eg({tech:a.tech,blueprints:a.blueprints,achievements:a.achievements,activeTide:a.activeTide,constellation:a.constellation})})},hardReset:()=>{e({...Z(),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_achievementQueue:[],_tideEvents:[]})},tickTide:a=>{let s=t(),r=s.activeTide,n=Math.max(15e3,4e4+1e3*H(s.constellation??[]).tideGapDeltaSec);if(r&&a>=r.endsAt){let t=r.type,n=0;"silence"===r.type&&(n=function(e){let t=I(e);if(!t.silenceInsightPerSec)return 0;let a=(e.endsAt-e.startedAt)/1e3;return Math.round(t.silenceInsightPerSec*a)}(r));let l=s.insights+n,o={ended:t};return n>0&&(o.silenceCompensation=n),e({activeTide:null,lastTideEnd:a,insights:l,...eg({tech:s.tech,blueprints:s.blueprints,achievements:s.achievements,activeTide:null,constellation:s.constellation}),_tideEvents:[...s._tideEvents,o]}),o}if(!r&&a-s.lastTideEnd>=(0===s.lastTideEnd||s.lastTideEnd<=s.createdAt+1e3?3e4:n)){let t=function(e=Math.random){let t=Object.values(O).reduce((e,t)=>e+t,0),a=e()*t;for(let e of Object.keys(O))if((a-=O[e])<=0)return e;return"crystal"}(),r={id:`tide_${a}_${Math.random().toString(36).slice(2,7)}`,type:t,startedAt:a,endsAt:a+75e3},n={started:t},l=s.starTidesEncountered??[],o=`tide_${t}`;return e({activeTide:r,starTidesEncountered:l.includes(o)?l:[...l,o],...eg({tech:s.tech,blueprints:s.blueprints,achievements:s.achievements,activeTide:r,constellation:s.constellation}),_tideEvents:[...s._tideEvents,n]}),n}return null},consumeTideEvents:()=>{let a=t();if(0===a._tideEvents.length)return[];let s=a._tideEvents;return e({_tideEvents:[]}),s},tick:a=>{let s=t(),r=Math.max(0,(a-s.lastTick)/1e3);if(r<=0)return;let n=I(s.activeTide),l=s.crystalsPerSec*n.crystalsPerSecMult,o=s.crystals>=s.crystalCap?s.crystals:Math.min(s.crystalCap,s.crystals+l*r),i=1+.03*s.blueprints.length,c=s.pendingCrystals,d=s._lastSpawn;if(a-d>8/i*1e3&&c.length<6){let e=function(e,t=Math.random){if(e<=0)return function(e=Math.random){let t=e();return t<.7?1:t<.95?2:3}(t);let a=t(),s=Math.min(.5,e),r=.7-.7*s;return a<r?1:a<r+(.25+.25*s*.7)?2:3}(H(s.constellation??[]).t2t3BonusRate);c=[...c,{id:`c_${a}_${Math.random().toString(36).slice(2,7)}`,tier:e,value:N[e].crystals,createdAt:a}],d=a}let u=s.energy,h=s.lastEnergyTick;if(u<s.energyMax){var f,m,x;let e,t,r=(f=h,m=u,x=s.energyMax,(t=Math.floor((a-f)/(e=45e3)))<=0?{energy:m,lastTick:f}:{energy:Math.min(x,m+t),lastTick:f+t*e});u=r.energy,h=r.lastTick}else h=a;e({crystals:o,lastTick:a,pendingCrystals:c,_lastSpawn:d,energy:u,lastEnergyTick:h})},pulse:()=>{let a=t(),s=Date.now(),r=1;s-a._lastPulse<1500&&(r=Math.min(10,a._combo+1));let n=1+(r-1)*.15,l=I(a.activeTide),o=a.pulsePower*n*l.pulsePowerMult;return e({crystals:Math.min(a.crystalCap,a.crystals+o),_combo:r,_lastPulse:s}),eb("pulse",1),{gain:o,combo:r}},startDecode:a=>{let s=t(),r=s.pendingCrystals.find(e=>e.id===a);r&&e({activePuzzle:ee(r.tier),pendingCrystals:s.pendingCrystals.filter(e=>e.id!==a)})},clickNode:a=>{let s=t();if(!s.activePuzzle)return{ok:!1,finished:!1,failReason:"无活跃谜题"};let r=JSON.parse(JSON.stringify(s.activePuzzle)),n=function(e,t){let a=e.grid.find(e=>e.id===t);if(!a)return{ok:!1,finished:!1,failReason:"无效节点"};if(a.used)return{ok:!1,finished:!1,failReason:"节点已使用"};let s=e.path.length;if(a.color!==e.target[s])return{ok:!1,finished:!1,failReason:"谐振不匹配"};if(s>0){var r;if(r=e.grid.find(t=>t.id===e.path[s-1]),Math.abs(r.row-a.row)+Math.abs(r.col-a.col)!==1)return{ok:!1,finished:!1,failReason:"节点不相邻"}}return s>=e.stepLimit?{ok:!1,finished:!1,failReason:"步数耗尽"}:(a.used=!0,e.path.push(t),{ok:!0,finished:e.path.length>=e.target.length})}(r,a);if(n.ok){if(n.finished){let t=I(s.activeTide),a=H(s.constellation??[]),n=Q(r.tier,s.insightMult,s.contactRateMult),l=t.decodeRewardMult*a.decodeRewardMult,o={crystals:Math.round(n.crystals*l),insights:Math.round(n.insights*l),contact:+(n.contact*l).toFixed(2)},i=s.totalDecoded+1,c=Math.min(100,s.contact+o.contact),d=s.insights+o.insights,u=s.crystals+o.crystals,h={...s,totalDecoded:i,fragments:{...s.fragments}},f=ev(h);return e({activePuzzle:null,crystals:u,insights:d,contact:c,totalDecoded:i,fragments:h.fragments}),eb("decode",1),eb("insight",o.insights),{ok:!0,finished:!0,failReason:f.join(",")||void 0}}let t=et(r);return e({activePuzzle:r}),{ok:!0,finished:!1,solvable:t}}return n},undoStep:()=>{let a=t();if(!a.activePuzzle||0===a.activePuzzle.path.length)return;let s=JSON.parse(JSON.stringify(a.activePuzzle)),r=s.path.pop();if(void 0!==r){let e=s.grid.find(e=>e.id===r);e&&(e.used=!1)}e({activePuzzle:s})},retryPuzzle:()=>{let a=t();if(a.activePuzzle){var s;e({activePuzzle:ee((s=a.activePuzzle).tier,s.seed+1)})}},abandonPuzzle:()=>{let a=t();if(!a.activePuzzle)return;let s={id:`c_${Date.now()}_ret`,tier:a.activePuzzle.tier,value:N[a.activePuzzle.tier].crystals,createdAt:Date.now()};e({activePuzzle:null,pendingCrystals:[...a.pendingCrystals,s].slice(-6)})},autoDecodeTick:()=>{let a=t();if(!a.autoDecode)return;let s=Date.now(),r=H(a.constellation??[]),n=Math.max(5e3,12e3+1e3*r.autoDecodeIntervalDeltaSec);if(s-a._lastAutoDecode<n)return;let l=a.pendingCrystals.findIndex(e=>1===e.tier);if(l<0)return;let o=a.pendingCrystals[l],i=I(a.activeTide),c=Q(1,a.insightMult,a.contactRateMult),d=i.decodeRewardMult*r.decodeRewardMult,u={crystals:Math.round(c.crystals*d),insights:Math.round(c.insights*d),contact:+(c.contact*d).toFixed(2)},h=a.totalDecoded+1,f={...a,totalDecoded:h,fragments:{...a.fragments}};ev(f),e({pendingCrystals:a.pendingCrystals.filter(e=>e.id!==o.id),crystals:a.crystals+u.crystals,insights:a.insights+u.insights,contact:Math.min(100,a.contact+u.contact),totalDecoded:h,fragments:f.fragments,_lastAutoDecode:s}),eb("decode",1),eb("insight",u.insights)},buyTech:a=>{let s=t(),r=_.find(e=>e.id===a);if(!r||(s.tech[a]??0)>=1||s.insights<r.cost)return!1;let n={...s.tech,[a]:1};return e({insights:s.insights-r.cost,tech:n,...eg({tech:n,blueprints:s.blueprints,achievements:s.achievements,activeTide:s.activeTide,constellation:s.constellation})}),!0},startExpedition:()=>{let a,s,r=t();if(r.activeExpedition&&!r.activeExpedition.finished)return{ok:!1,reason:"已有进行中的探险"};if(r.energy<1)return{ok:!1,reason:"能量不足"};let n=I(r.activeTide);return e({activeExpedition:function(e,t,a){let s,r=(s=e>>>0,()=>{s|=0;let e=Math.imul((s=s+0x6d2b79f5|0)^s>>>15,1|s);return(((e=e+Math.imul(e^e>>>7,61|e)^e)^e>>>14)>>>0)/0x100000000}),n=5+Math.floor(3*r()),l=[];for(let e=0;e<n;e++){let t=e===n-1,a=t?"boss":function(e){let t=Object.keys(ea),a=t.reduce((e,t)=>e+ea[t],0),s=e()*a;for(let e of t)if((s-=ea[e])<=0)return e;return"combat"}(r),s=es[a],o=Math.floor(r()*s.titles.length);l.push({id:e,type:a,title:s.titles[o],desc:s.descs[o],cleared:!1,difficulty:t?5+Math.floor(3*r()):1+Math.floor(4*r()),position:e})}if("combat"===l[0].type||"boss"===l[0].type){l[0].type=.5>r()?"treasure":"rest";let e=es[l[0].type];l[0].title=e.titles[0],l[0].desc=e.descs[0],l[0].difficulty=1}return{id:`exp_${e}_${Date.now()}`,nodes:l,currentNode:0,finished:!1,rewards:{crystals:0,insights:0,contact:0,fragments:[]},power:t,hp:a,maxHp:a,seed:e,startedAt:Date.now()}}(Math.floor(1e9*Math.random()),(a=10,s=r.tech?.exp_1??0,a+=3*s+5*(r.tech?.exp_2??0)+8*(r.tech?.exp_3??0),Math.round(a*=(1+(r.blueprints?.length??0)*.08)*(1+(r.ascensions??0)*.15)*H(r.constellation??[]).expeditionPowerMult)+n.expeditionPowerBonus),Math.round((100+(r.tech?.exp_2??0)*20+(r.ascensions??0)*10)*H(r.constellation??[]).expeditionHpMult)+n.expeditionHpBonus),energy:r.energy-1,totalExpeditions:r.totalExpeditions+1}),{ok:!0}},resolveCurrentNode:()=>{let a=t();if(!a.activeExpedition||a.activeExpedition.finished)return null;let s=JSON.parse(JSON.stringify(a.activeExpedition)),r=function(e,t=Math.random){let a=e.nodes[e.currentNode];if(!a)return{log:"无节点",ended:!0,endReason:"abort"};if(a.cleared)return e.currentNode>=e.nodes.length-1?{log:"探险已完成",ended:!0,endReason:"victory"}:(e.currentNode++,{log:`前进至节点 ${e.currentNode+1}`,ended:!1});let s=e.power,r=a.difficulty;switch(a.type){case"combat":{let n=er(s,r);if(t()<n){let e=8+6*r+Math.floor(10*t()),s=1+r+Math.floor(2*t());return a.cleared=!0,{log:`击败「${a.title}」,缴获 ${e} 晶体、${s} 洞见。`,crystals:e,insights:s,ended:!1}}let l=20+10*r+Math.floor(15*t());if(e.hp-l<=0)return a.cleared=!0,{log:`「${a.title}」过于强大,探险队全灭…(生命 -${e.hp}`,hpDelta:-e.hp,ended:!0,endReason:"defeat"};return a.cleared=!0,{log:`「${a.title}」击退了探险队,损失 ${l} 生命,狼狈通过。`,hpDelta:-l,ended:!1}}case"treasure":{let e=10+8*r+Math.floor(15*t()),s=2+r+Math.floor(3*t());return a.cleared=!0,{log:`在「${a.title}」中发现 ${e} 晶体、${s} 洞见。`,crystals:e,insights:s,ended:!1}}case"rest":{let e=15+8*r+Math.floor(10*t());return a.cleared=!0,{log:`在「${a.title}」休整,恢复 ${e} 生命。`,hpDelta:e,ended:!1}}case"puzzle":{let e=Math.min(.9,.4+.01*s);if(t()<e){let e=20+12*r,t=5+3*r,s=1+.5*r;return a.cleared=!0,{log:`解开「${a.title}」,获得 ${e} 晶体、${t} 洞见、${s.toFixed(1)} 接触进度。`,crystals:e,insights:t,contact:s,ended:!1}}return a.cleared=!0,{log:`「${a.title}」未能解开,但探险队平安通过。`,ended:!1}}case"choice":{if(.55>t()){let e=6+5*r+Math.floor(8*t());return a.cleared=!0,{log:`在「${a.title}」做出了明智的选择,获得 ${e} 晶体。`,crystals:e,ended:!1}}let e=8+5*r;return a.cleared=!0,{log:`在「${a.title}」的选择带来了代价,损失 ${e} 生命。`,hpDelta:-e,ended:!1}}case"boss":{let n=er(s,r),l=t()<n;if(a.cleared=!0,l){let e=60+25*r,t=15+6*r,s=5+1.5*r;return{log:`✦ 击败「${a.title}」!获得 ${e} 晶体、${t} 洞见、${s.toFixed(1)} 接触进度。`,crystals:e,insights:t,contact:s,ended:!0,endReason:"victory"}}return{log:`「${a.title}」的力量超出想象,探险队全军覆没…`,hpDelta:-e.hp,ended:!0,endReason:"defeat"}}}}(s);r.crystals&&(s.rewards.crystals+=r.crystals),r.insights&&(s.rewards.insights+=r.insights),r.contact&&(s.rewards.contact+=r.contact),r.fragments&&s.rewards.fragments.push(...r.fragments),r.hpDelta&&(s.hp=Math.max(0,Math.min(s.maxHp,s.hp+r.hpDelta)));let n=a.crystals+(r.crystals||0),l=a.insights+(r.insights||0),o=Math.min(100,a.contact+(r.contact||0)),i={...a.fragments};if(r.fragments)for(let e of r.fragments)i[e]=!0;let c=[{expeditionId:s.id,nodeType:s.nodes[s.currentNode]?.type||"combat",result:r.log,rewards:[r.crystals?`+${r.crystals}晶体`:"",r.insights?`+${r.insights}洞见`:"",r.contact?`+${r.contact.toFixed(1)}接触`:"",r.hpDelta?`${r.hpDelta>0?"+":""}${r.hpDelta}生命`:""].filter(Boolean).join(" "),timestamp:Date.now()},...a.expeditionLog].slice(0,30);r.ended&&(s.finished=!0);let d=a.bossKills??0;return r.ended&&"victory"===r.endReason&&s.nodes[s.currentNode]?.type==="boss"&&(d+=1),e({activeExpedition:s,crystals:n,insights:l,contact:o,fragments:i,expeditionLog:c,bossKills:d}),r.ended&&(eb("expedition",1),"victory"===r.endReason&&s.nodes[s.currentNode]?.type==="boss"&&eb("boss",1)),r.insights&&eb("insight",r.insights),r},advanceNode:()=>{let a=t();if(!a.activeExpedition||a.activeExpedition.finished)return;let s=JSON.parse(JSON.stringify(a.activeExpedition)),r=s.nodes[s.currentNode];r&&r.cleared&&(s.currentNode>=s.nodes.length-1||(s.currentNode++,e({activeExpedition:s})))},abortExpedition:()=>{let a=t();if(!a.activeExpedition)return;let s=JSON.parse(JSON.stringify(a.activeExpedition));s.finished=!0;let r={expeditionId:s.id,nodeType:"rest",result:"探险队主动撤退,保留已获奖励。",rewards:"",timestamp:Date.now()};e({activeExpedition:s,expeditionLog:[r,...a.expeditionLog].slice(0,30)})},doPrestige:()=>{let a,s,r,n,l,o,i,c,d,u=t();if(u.contact<100)return null;let h=J(u),f=(a=J(u),s=[...u.blueprints,...Array.from({length:a},(e,t)=>`bp_${Date.now()}_${t}`)].slice(0,6),r=K(u.constellation??[]),n=H(u.constellation??[]),l=function(e,t=[]){let a,s,r,n,l,o,i=e.ascensions+1,c=(a=Date.now(),{durationSec:Math.max(1,Math.floor((a-(s=e.runStart).timestamp)/1e3)),techsThisRun:Math.max(0,Object.keys(e.tech||{}).length-s.techsUnlocked),expThisRun:Math.max(0,e.totalExpeditions-s.expeditionsCompleted),bossKillsThisRun:Math.max(0,e.bossKills-s.bossKills),decodedThisRun:Math.max(0,e.totalDecoded-s.crystalsDecoded),newTides:(e.starTidesEncountered||[]).filter(e=>!(s.starTidesEncountered||[]).includes(e))}),d=e.createdAt+7919*i>>>0,u=(r=(i-1)%X.length,l=d%(n=X[r]).suffixes.length,`${n.prefix} \xb7 ${n.suffixes[l]}`),h=(o=[],1===e.ascensions+1&&o.push("首次飞升"),c.expThisRun>0&&0===e.runStart.expeditionsCompleted&&o.push("首次完成遗迹探险"),c.bossKillsThisRun>0&&o.push("首杀维度 BOSS"),c.decodedThisRun>=10&&o.push(`单周目解码 ${c.decodedThisRun} 颗`),c.decodedThisRun>=30&&o.push(`单周目解码 ${c.decodedThisRun} 颗`),c.techsThisRun>=5&&o.push("技术狂人"),c.newTides.length>=3&&o.push("星潮亲历者"),(e.constellation?.length||0)>=6&&o.push("星图六分"),(e.constellation?.length||0)>=12&&o.push("星图十二宫"),o),f=Math.min(e.blueprints.length+1,6),m=Y({ascensionNumber:i,epochName:u,durationSec:c.durationSec,techsThisRun:c.techsThisRun,expThisRun:c.expThisRun,bossKillsThisRun:c.bossKillsThisRun,decodedThisRun:c.decodedThisRun,newTides:c.newTides,perksThisAscension:t,blueprintsAfter:f,milestones:h});return{ascensionNumber:i,epochName:u,timestamp:Date.now(),durationSec:c.durationSec,summary:{techsUnlocked:Object.keys(e.tech||{}).length,constellationsTotal:e.constellation?.length||0,expeditionsCompleted:e.totalExpeditions,bossKills:e.bossKills,starTidesEncountered:e.starTidesEncountered?.length||0,blueprintsAfter:f,crystalsDecoded:e.totalDecoded,crystalsDecodedThisRun:c.decodedThisRun},perksThisAscension:t,tidesThisRun:c.newTides,lore:m,milestones:h}}(u,[]),o=[...u.chronicle||[],l].slice(-50),i={timestamp:Date.now(),techsUnlocked:Object.keys(u.tech||{}).length,expeditionsCompleted:u.totalExpeditions,bossKills:u.bossKills,starTidesEncountered:[...u.starTidesEncountered||[]],crystalsDecoded:u.totalDecoded},c=Z(),d=G({tech:{},blueprints:s,achievements:u.achievements,constellation:u.constellation}),{...c,fragments:u.fragments,totalDecoded:u.totalDecoded,ascensions:u.ascensions+1,blueprints:s,achievements:u.achievements,constellation:u.constellation,pendingPerkChoices:r.length>0?r:null,crystals:n.prestigeStartCrystals,insights:n.prestigeStartInsights,theme:u.theme,soundOn:u.soundOn,createdAt:u.createdAt,lastTick:Date.now(),lastEnergyTick:Date.now(),expeditionLog:u.expeditionLog,totalExpeditions:u.totalExpeditions,bossKills:u.bossKills,starTidesEncountered:u.starTidesEncountered,chronicle:o,runStart:i,activeTide:null,lastTideEnd:Date.now(),...d}),m=H(f.constellation??[]),x=j.energyMax+m.energyMaxBonus;return e({...f,energyMax:x,...eg({tech:f.tech,blueprints:f.blueprints,achievements:f.achievements,activeTide:f.activeTide,constellation:f.constellation}),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_tideEvents:[]}),{newBp:h}},chooseConstellationPerk:a=>{let s=t();if(!s.pendingPerkChoices||!s.pendingPerkChoices.includes(a)||!B(a)||s.constellation?.includes(a))return!1;let r=[...s.constellation??[],a],n=H(r),l=j.energyMax+n.energyMaxBonus,o=s.chronicle??[],i=o;if(o.length>0){let e=function(e,t){if(e.perksThisAscension.length===t.length&&e.perksThisAscension.every((e,a)=>e===t[a]))return e;let a=t.map(e=>V[e]||e).join("、"),s=t.length>0?` 飞升之际,星图觉醒「${a}」,铭刻于永恒回响。`:"",r=e.lore.includes("飞升之际")?e.lore:e.lore+s;return{...e,perksThisAscension:t,lore:r}}(o[o.length-1],[a]);i=[...o.slice(0,-1),e]}return e({constellation:r,pendingPerkChoices:null,energyMax:l,chronicle:i,...eg({tech:s.tech,blueprints:s.blueprints,achievements:s.achievements,activeTide:s.activeTide,constellation:r})}),!0},rerollPerkChoices:()=>{let a=t();if(!a.pendingPerkChoices)return;let s=K(a.constellation??[]);s.length>0&&e({pendingPerkChoices:s})},checkAchievements:()=>{let a=t(),s=[],r={...a.achievements},n=a.crystals,l=a.insights,o=a.contact,i=!1;for(let e of A)!r[e.id]&&e.check(a)&&(r[e.id]=!0,s.push(e),e.reward.crystals&&(n+=e.reward.crystals),e.reward.insights&&(l+=e.reward.insights),e.reward.contact&&(o=Math.min(100,o+e.reward.contact)),(e.reward.crystalsPerSecPct||e.reward.insightPct)&&(i=!0));return 0===s.length?[]:(e({achievements:r,crystals:n,insights:l,contact:o,...i?eg({tech:a.tech,blueprints:a.blueprints,achievements:r,activeTide:a.activeTide,constellation:a.constellation}):{},_achievementQueue:[...a._achievementQueue,...s]}),s)},consumeAchievementQueue:()=>{let a=t();if(0===a._achievementQueue.length)return[];let s=a._achievementQueue;return e({_achievementQueue:[]}),s},canPrestige:()=>t().contact>=100,toggleTheme:()=>e({theme:"dark"===t().theme?"light":"dark"}),toggleSound:()=>e({soundOn:!t().soundOn}),grantBeaconReward:(a,s)=>{let r=t();e({insights:r.insights+Math.round(a),contact:Math.min(100,r.contact+s)})}}),s={name:"echo-nexus-save-v1",storage:y(()=>localStorage),partialize:e=>{let{_lastAutoDecode:t,_lastSpawn:a,_combo:s,_lastPulse:r,_achievementQueue:n,_tideEvents:l,...o}=e;return o}},(e,t,r)=>{let n,l={storage:y(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...s},o=!1,i=0,c=new Set,d=new Set,u=l.storage;if(!u)return a((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),e(...t)},t,r);let h=()=>{let e=l.partialize({...t()});return u.setItem(l.name,{state:e,version:l.version})},f=r.setState;r.setState=(e,t)=>(f(e,t),h());let m=a((...t)=>(e(...t),h()),t,r);r.getInitialState=()=>m;let x=()=>{var a,s;if(!u)return;let r=++i;o=!1,c.forEach(e=>{var a;return e(null!=(a=t())?a:m)});let f=(null==(s=l.onRehydrateStorage)?void 0:s.call(l,null!=(a=t())?a:m))||void 0;return w(u.getItem.bind(u))(l.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===l.version)return[!1,e.state];else{if(l.migrate){let t=l.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(a=>{var s;if(r!==i)return;let[o,c]=a;if(e(n=l.merge(c,null!=(s=t())?s:m),!0),o)return h()}).then(()=>{r===i&&(null==f||f(n,void 0),n=t(),o=!0,d.forEach(e=>e(n)))}).catch(e=>{r===i&&(null==f||f(void 0,e))})};return r.persist={setOptions:e=>{l={...l,...e},e.storage&&(u=e.storage)},clearStorage:()=>{null==u||u.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>x(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(d.add(e),()=>{d.delete(e)})},l.skipHydration||x(),n||m}));var ew=e.i(75254);let ej=(0,ew.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"}]]),eN=(0,ew.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"}]]),ek=(0,ew.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"}]]),eS=(0,ew.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"}]]);e.i(74080);var eM=e.i(20783),e_=Symbol.for("react.lazy"),eC=p[" use ".trim().toString()];function eE(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===e_&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function eT(e){var t;let a,s=(t=e,(a=p.forwardRef((e,t)=>{let{children:a,...s}=e;if(eE(a)&&"function"==typeof eC&&(a=eC(a._payload)),p.isValidElement(a)){var r;let e,n,l=(r=a,(n=(e=Object.getOwnPropertyDescriptor(r.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.ref:(n=(e=Object.getOwnPropertyDescriptor(r,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.props.ref:r.props.ref||r.ref),o=function(e,t){let a={...t};for(let s in t){let r=e[s],n=t[s];/^on[A-Z]/.test(s)?r&&n?a[s]=(...e)=>{let t=n(...e);return r(...e),t}:r&&(a[s]=r):"style"===s?a[s]={...r,...n}:"className"===s&&(a[s]=[r,n].filter(Boolean).join(" "))}return{...e,...a}}(s,a.props);return a.type!==p.Fragment&&(o.ref=t?(0,eM.composeRefs)(t,l):l),p.cloneElement(a,o)}return p.Children.count(a)>1?p.Children.only(null):null})).displayName=`${t}.SlotClone`,a),r=p.forwardRef((e,t)=>{let{children:a,...r}=e;eE(a)&&"function"==typeof eC&&(a=eC(a._payload));let n=p.Children.toArray(a),l=n.find(e$);if(l){let e=l.props.children,a=n.map(t=>t!==l?t:p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null);return(0,x.jsx)(s,{...r,ref:t,children:p.isValidElement(e)?p.cloneElement(e,void 0,a):null})}return(0,x.jsx)(s,{...r,ref:t,children:a})});return r.displayName=`${e}.Slot`,r}var eR=eT("Slot"),eP=Symbol("radix.slottable");function e$(e){return p.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===eP}var eA=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let a=eT(`Primitive.${t}`),s=p.forwardRef((e,s)=>{let{asChild:r,...n}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,x.jsx)(r?a:t,{...n,ref:s})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),eD="Progress",[ez,eO]=function(e,t=[]){let a=[],s=()=>{let t=a.map(e=>p.createContext(e));return function(a){let s=a?.[e]||t;return p.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return s.scopeName=e,[function(t,s){let r=p.createContext(s);r.displayName=t+"Context";let n=a.length;a=[...a,s];let l=t=>{let{scope:a,children:s,...l}=t,o=a?.[e]?.[n]||r,i=p.useMemo(()=>l,Object.values(l));return(0,x.jsx)(o.Provider,{value:i,children:s})};return l.displayName=t+"Provider",[l,function(a,l){let o=l?.[e]?.[n]||r,i=p.useContext(o);if(i)return i;if(void 0!==s)return s;throw Error(`\`${a}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let a=()=>{let a=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let s=a.reduce((t,{useScope:a,scopeName:s})=>{let r=a(e)[`__scope${s}`];return{...t,...r}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return a.scopeName=t.scopeName,a}(s,...t)]}(eD),[eI,eF]=ez(eD),eL=p.forwardRef((e,t)=>{var a,s;let{__scopeProgress:r,value:n=null,max:l,getValueLabel:o=eK,...i}=e;(l||0===l)&&!eV(l)&&console.error((a=`${l}`,`Invalid prop \`max\` of value \`${a}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let c=eV(l)?l:100;null===n||eU(n,c)||console.error((s=`${n}`,`Invalid prop \`value\` of value \`${s}\` 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 d=eU(n,c)?n:null,u=eq(d)?o(d,c):void 0;return(0,x.jsx)(eI,{scope:r,value:d,max:c,children:(0,x.jsx)(eA.div,{"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":eq(d)?d:void 0,"aria-valuetext":u,role:"progressbar","data-state":eW(d,c),"data-value":d??void 0,"data-max":c,...i,ref:t})})});eL.displayName=eD;var eB="ProgressIndicator",eH=p.forwardRef((e,t)=>{let{__scopeProgress:a,...s}=e,r=eF(eB,a);return(0,x.jsx)(eA.div,{"data-state":eW(r.value,r.max),"data-value":r.value??void 0,"data-max":r.max,...s,ref:t})});function eK(e,t){return`${Math.round(e/t*100)}%`}function eW(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function eq(e){return"number"==typeof e}function eV(e){return eq(e)&&!isNaN(e)&&e>0}function eU(e,t){return eq(e)&&!isNaN(e)&&e<=t&&e>=0}eH.displayName=eB;var eX=e.i(75157);function eY({className:e,value:t,...a}){return(0,x.jsx)(eL,{"data-slot":"progress",className:(0,eX.cn)("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",e),...a,children:(0,x.jsx)(eH,{"data-slot":"progress-indicator",className:"bg-primary h-full w-full flex-1 transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})})}function eG({onPrestige:e}){let t=ey(e=>e.crystals),a=ey(e=>e.crystalsPerSec),s=ey(e=>e.insights),r=ey(e=>e.contact),n=ey(e=>e.ascensions),l=ey(e=>e.blueprints);return(0,x.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,x.jsx)(eJ,{icon:(0,x.jsx)(ej,{className:"h-4 w-4 text-emerald-400"}),label:"记忆晶体",value:$(t),sub:`+${a.toFixed(1)}/s`,glow:"rgba(52,211,153,0.4)"}),(0,x.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,x.jsx)(eJ,{icon:(0,x.jsx)(eN,{className:"h-4 w-4 text-amber-400"}),label:"技术洞见",value:$(s),sub:"解码产出",glow:"rgba(251,191,36,0.4)"}),(0,x.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,x.jsxs)("div",{className:"flex-1 min-w-[200px] flex flex-col gap-1.5",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(ek,{className:"h-4 w-4 text-fuchsia-400 shrink-0"}),(0,x.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:"接触进度"}),(0,x.jsxs)("span",{className:"text-xs font-mono font-semibold text-fuchsia-300 ml-auto tabular-nums",children:[r.toFixed(1),"%"]}),r>=100&&(0,x.jsx)("button",{onClick:e,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,x.jsx)(eY,{value:r,className:"h-1.5 bg-white/10 [&>div]:bg-gradient-to-r [&>div]:from-fuchsia-500 [&>div]:to-rose-400"})]}),(0,x.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,x.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,x.jsx)(eS,{className:"h-4 w-4 text-rose-400 shrink-0"}),(0,x.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,x.jsx)("span",{className:"text-[10px] text-muted-foreground leading-none",children:"飞升"}),(0,x.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,x.jsx)("span",{className:"text-sm font-mono font-semibold leading-none",children:n}),(0,x.jsxs)("span",{className:"text-amber-300 text-xs leading-none",children:["×",l.length]})]})]})]})]})}function eJ({icon:e,label:t,value:a,sub:s,glow:r}){return(0,x.jsxs)("div",{className:"flex items-center gap-2.5",style:{filter:`drop-shadow(0 0 6px ${r})`},children:[e,(0,x.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,x.jsx)("span",{className:"text-[10px] text-muted-foreground leading-none",children:t}),(0,x.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,x.jsx)("span",{className:"text-sm font-mono font-semibold leading-none tabular-nums",children:a}),(0,x.jsx)("span",{className:"text-[10px] text-muted-foreground/80 whitespace-nowrap",children:s})]})]})]})}var eZ=e.i(37902),eQ=e.i(74911);let e0={emerald:523.25,rose:587.33,amber:659.25,fuchsia:698.46};class e1{ctx=null;master=null;enabled=!0;volume=.35;ensure(){if(!this.ctx){let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;this.ctx=new e,this.master=this.ctx.createGain(),this.master.gain.value=this.volume,this.master.connect(this.ctx.destination)}return"suspended"===this.ctx.state&&this.ctx.resume(),this.ctx}setEnabled(e){this.enabled=e}setVolume(e){this.volume=Math.max(0,Math.min(1,e)),this.master&&(this.master.gain.value=this.volume)}tone(e,t,a="sine",s=.3,r=0,n=0,l){let o=this.ensure();if(!o||!this.master)return;let i=o.currentTime+r,c=o.createOscillator(),d=o.createGain();if(c.type=a,c.frequency.setValueAtTime(e,i),n&&c.detune.setValueAtTime(n,i),d.gain.setValueAtTime(0,i),d.gain.linearRampToValueAtTime(s,i+.008),d.gain.exponentialRampToValueAtTime(1e-4,i+t),l){let e=o.createBiquadFilter();e.type="lowpass",e.frequency.value=l,c.connect(e),e.connect(d)}else c.connect(d);d.connect(this.master),c.start(i),c.stop(i+t+.05)}sweep(e,t,a,s="sine",r=.3,n=0){let l=this.ensure();if(!l||!this.master)return;let o=l.currentTime+n,i=l.createOscillator(),c=l.createGain();i.type=s,i.frequency.setValueAtTime(e,o),i.frequency.exponentialRampToValueAtTime(Math.max(1,t),o+a),c.gain.setValueAtTime(0,o),c.gain.linearRampToValueAtTime(r,o+.02),c.gain.exponentialRampToValueAtTime(1e-4,o+a),i.connect(c),c.connect(this.master),i.start(o),i.stop(o+a+.05)}noise(e,t=.2,a=0,s=1200){let r=this.ensure();if(!r||!this.master)return;let n=r.currentTime+a,l=Math.floor(r.sampleRate*e),o=r.createBuffer(1,l,r.sampleRate),i=o.getChannelData(0);for(let e=0;e<l;e++)i[e]=(2*Math.random()-1)*(1-e/l);let c=r.createBufferSource();c.buffer=o;let d=r.createBiquadFilter();d.type="lowpass",d.frequency.value=s;let u=r.createGain();u.gain.setValueAtTime(t,n),u.gain.exponentialRampToValueAtTime(1e-4,n+e),c.connect(d),d.connect(u),u.connect(this.master),c.start(n),c.stop(n+e+.02)}play(e,t){if(this.enabled&&this.ensure())switch(e){case"pulse":{let e=220+(t?.combo?18*t.combo:0);this.tone(e,.18,"sine",.28),this.tone(2*e,.14,"triangle",.1,.01);break}case"pulseCombo":{let e=440+(t?.combo?24*t.combo:0);this.tone(e,.2,"sine",.3),this.tone(1.5*e,.18,"triangle",.14,.01),this.tone(2*e,.16,"sine",.08,.02);break}case"decodeClick":{let e=t?.color?e0[t.color]??523:523;this.tone(e,.16,"sine",.26),this.tone(2*e,.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 e2=null;function e5(){return e2||(e2=new e1),e2}function e3(e,t){e5().play(e,t)}function e4(){let e=ey(e=>e.pulse),t=ey(e=>e.crystals),a=ey(e=>e.crystalsPerSec),s=ey(e=>e.crystalCap),r=ey(e=>e._combo),{toast:n}=(0,eQ.useToast)(),[l,o]=(0,p.useState)([]),[i,c]=(0,p.useState)([]),[d,u]=(0,p.useState)(0),h=(0,p.useRef)(0),f=(0,p.useCallback)(t=>{let a=e();if(!a)return;let s=t.currentTarget.getBoundingClientRect(),r=t.clientX-s.left,l=t.clientY-s.top,i=h.current++,d=a.combo>=5?"#fbbf24":a.combo>=3?"#e879f9":"#34d399";o(e=>[...e,{id:i,x:r,y:l,text:`+${a.gain.toFixed(1)}`,born:Date.now(),color:d}]);let f=[],m=6+Math.min(6,a.combo);for(let e=0;e<m;e++)f.push({id:h.current++,angle:2*Math.PI*e/m+.3*Math.random(),dist:0,born:Date.now(),color:d});c(e=>[...e,...f]),u(e=>e+1),e3(a.combo>=3?"pulseCombo":"pulse",{combo:a.combo}),setTimeout(()=>{o(e=>e.filter(e=>e.id!==i))},900),setTimeout(()=>{c(e=>e.filter(e=>!f.includes(e)))},700),a.combo>=5&&a.combo%5==0&&n({title:`\xd7${a.combo} 连击!`,description:"谐振叠加,产能飙升。"})},[e,n]),m=Math.min(100,t/Math.max(1,s)*100);return(0,x.jsxs)("div",{className:"jsx-14e60529209e63ba relative flex flex-col items-center justify-center gap-4 select-none",children:[r>1&&(0,x.jsxs)("div",{className:"jsx-14e60529209e63ba 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",children:["×",r," 连击"]}),(0,x.jsxs)("button",{onClick:f,"aria-label":"脉冲扫描,获取记忆晶体",className:"jsx-14e60529209e63ba relative h-52 w-52 sm:h-64 sm:w-64 rounded-full focus:outline-none group",children:[(0,x.jsx)("div",{className:"jsx-14e60529209e63ba absolute inset-0 rounded-full bg-emerald-500/10 blur-2xl group-hover:bg-emerald-500/20 transition-colors"}),(0,x.jsxs)("div",{style:{animation:"echo-spin 18s linear infinite"},className:"jsx-14e60529209e63ba absolute inset-2 rounded-full border border-emerald-400/30",children:[(0,x.jsx)("div",{className:"jsx-14e60529209e63ba 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,x.jsx)("div",{className:"jsx-14e60529209e63ba 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,x.jsx)("div",{style:{animation:"echo-spin 24s linear infinite reverse"},className:"jsx-14e60529209e63ba absolute inset-6 rounded-full border border-fuchsia-400/20 border-dashed"}),(0,x.jsxs)("svg",{viewBox:"0 0 100 100",className:"jsx-14e60529209e63ba absolute inset-0 -rotate-90",children:[(0,x.jsx)("circle",{cx:"50",cy:"50",r:"44",fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:"2",className:"jsx-14e60529209e63ba"}),(0,x.jsx)("circle",{cx:"50",cy:"50",r:"44",fill:"none",stroke:"url(#echoGrad)",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:`${2*Math.PI*44}`,strokeDashoffset:`${2*Math.PI*44*(1-m/100)}`,style:{transition:"stroke-dashoffset 0.3s ease",filter:"drop-shadow(0 0 4px rgba(52,211,153,0.6))"},className:"jsx-14e60529209e63ba"}),(0,x.jsx)("defs",{className:"jsx-14e60529209e63ba",children:(0,x.jsxs)("linearGradient",{id:"echoGrad",x1:"0",y1:"0",x2:"1",y2:"1",className:"jsx-14e60529209e63ba",children:[(0,x.jsx)("stop",{offset:"0%",stopColor:"#34d399",className:"jsx-14e60529209e63ba"}),(0,x.jsx)("stop",{offset:"50%",stopColor:"#e879f9",className:"jsx-14e60529209e63ba"}),(0,x.jsx)("stop",{offset:"100%",stopColor:"#fb7185",className:"jsx-14e60529209e63ba"})]})})]}),(0,x.jsx)("div",{style:{animation:"echo-ring 0.7s ease-out forwards"},className:"jsx-14e60529209e63ba absolute inset-8 rounded-full border-2 border-emerald-400/60 pointer-events-none"},`ring-${d}`),(0,x.jsx)("div",{style:{animation:"echo-ping 0.4s ease-out"},className:"jsx-14e60529209e63ba absolute inset-12 rounded-full flex items-center justify-center",children:(0,x.jsxs)("div",{className:"jsx-14e60529209e63ba relative h-full w-full",children:[(0,x.jsx)("div",{style:{background:"radial-gradient(circle at 35% 30%, rgba(255,255,255,0.9), rgba(52,211,153,0.7) 35%, rgba(232,121,249,0.5) 70%, rgba(251,113,133,0.3))",boxShadow:"0 0 30px rgba(52,211,153,0.6), 0 0 60px rgba(232,121,249,0.4), inset 0 0 20px rgba(255,255,255,0.3)"},className:"jsx-14e60529209e63ba absolute inset-0 rounded-full"}),(0,x.jsx)("div",{className:"jsx-14e60529209e63ba absolute top-3 left-6 h-6 w-10 rounded-full bg-white/40 blur-sm rotate-[-20deg]"}),(0,x.jsx)("div",{style:{backgroundImage:"repeating-linear-gradient(60deg, rgba(255,255,255,0.4) 0 1px, transparent 1px 8px), repeating-linear-gradient(-60deg, rgba(255,255,255,0.4) 0 1px, transparent 1px 8px)"},className:"jsx-14e60529209e63ba absolute inset-4 rounded-full opacity-30"})]})},d),i.map(e=>(0,x.jsx)("span",{style:{width:4,height:4,background:e.color,boxShadow:`0 0 6px ${e.color}`,"--angle":`${e.angle}rad`,animation:"echo-burst 0.7s ease-out forwards"},className:"jsx-14e60529209e63ba absolute left-1/2 top-1/2 rounded-full pointer-events-none"},e.id)),l.map(e=>(0,x.jsx)("span",{style:{left:e.x,top:e.y,color:e.color,transform:"translate(-50%, -50%)",animation:"echo-float 0.9s ease-out forwards",textShadow:`0 0 8px ${e.color}`},className:"jsx-14e60529209e63ba absolute pointer-events-none font-mono font-bold text-sm",children:e.text},e.id))]}),(0,x.jsxs)("div",{className:"jsx-14e60529209e63ba text-center",children:[(0,x.jsx)("div",{style:{textShadow:"0 0 12px rgba(52,211,153,0.5)"},className:"jsx-14e60529209e63ba text-2xl font-mono font-bold text-emerald-300",children:$(t)}),(0,x.jsxs)("div",{className:"jsx-14e60529209e63ba text-xs text-muted-foreground mt-0.5",children:["记忆晶体 · ",a.toFixed(1),"/s · 上限 ",$(s)]}),(0,x.jsxs)("div",{className:"jsx-14e60529209e63ba text-[11px] text-muted-foreground/70 mt-2",children:["点击晶体发起",(0,x.jsx)("span",{className:"jsx-14e60529209e63ba text-emerald-300",children:"脉冲扫描"}),",连击叠加加成"]})]}),(0,x.jsx)(eZ.default,{id:"14e60529209e63ba",children:"@keyframes echo-spin{to{transform:rotate(360deg)}}@keyframes echo-ping{0%{transform:scale(.92)}50%{transform:scale(1.04)}to{transform:scale(1)}}@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)}}@keyframes echo-burst{0%{transform:translate(-50%,-50%)rotate(var(--angle))translateX(0)rotate(calc(-1*var(--angle)));opacity:1}to{transform:translate(-50%,-50%)rotate(var(--angle))translateX(80px)rotate(calc(-1*var(--angle)));opacity:0}}"})]})}let e6=(0,e.i(25913).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 e8({className:e,variant:t,size:a,asChild:s=!1,...r}){return(0,x.jsx)(s?eR:"button",{"data-slot":"button",className:(0,eX.cn)(e6({variant:t,size:a,className:e})),...r})}var e9=e.i(37727);let e7=(0,ew.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"}]]),te=(0,ew.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),tt=(0,ew.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"}]]),ta=(0,ew.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 ts(){let e=ey(e=>e.activePuzzle),t=ey(e=>e.clickNode),a=ey(e=>e.undoStep),s=ey(e=>e.retryPuzzle),r=ey(e=>e.abandonPuzzle),{toast:n}=(0,eQ.useToast)(),[l,o]=(0,p.useState)(null),[i,c]=(0,p.useState)(null),[d,u]=(0,p.useState)(!1);if(!e)return null;let{grid:h,rows:f,cols:m,target:g,path:b,stepLimit:v,tier:y}=e,w=b.length,j=g[w],N=b.length>0&&b.length<g.length&&!et(e),k=()=>{a(),u(!1),c(null)},S=100/m,_=100/f,C=b.map(e=>h.find(t=>t.id===e)).filter(Boolean);return(0,x.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex flex-col gap-4 h-full",children:[(0,x.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center justify-center gap-2 flex-wrap",children:[(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-xs text-muted-foreground mr-1",children:"目标谐振"}),g.map((e,t)=>{let a=t<w,s=t===w,r=M[e];return(0,x.jsxs)("div",{style:{background:`radial-gradient(circle at 35% 30%, ${r.hex}, ${r.hex}aa 60%, ${r.hex}44)`,boxShadow:s?`0 0 18px ${r.glow}, 0 0 36px ${r.glow}`:`0 0 8px ${r.glow}`,"--tw-ring-color":r.hex},className:`jsx-35ab0418fdc54847 relative h-9 w-9 rounded-full flex items-center justify-center transition-all duration-300 ${a?"opacity-30 scale-90":""} ${s?"scale-125 ring-2 ring-offset-2 ring-offset-background":""}`,children:[a&&(0,x.jsx)(te,{className:"h-4 w-4 text-white"}),s&&(0,x.jsx)("span",{style:{color:r.hex},className:"jsx-35ab0418fdc54847 absolute -bottom-5 text-[10px] font-medium",children:"下一个"})]},t)})]}),(0,x.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,x.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:`${S}% ${_}%`},className:"jsx-35ab0418fdc54847 absolute inset-0 opacity-20"}),(0,x.jsx)("svg",{className:"jsx-35ab0418fdc54847 absolute inset-0 w-full h-full pointer-events-none",children:C.map((e,t)=>{if(0===t)return null;let a=C[t-1],s=(a.col+.5)*S,r=(a.row+.5)*_,n=(e.col+.5)*S,l=(e.row+.5)*_,o=M[e.color];return(0,x.jsx)("line",{x1:`${s}%`,y1:`${r}%`,x2:`${n}%`,y2:`${l}%`,stroke:o.hex,strokeWidth:2.5,strokeLinecap:"round",style:{filter:`drop-shadow(0 0 4px ${o.glow})`},className:"jsx-35ab0418fdc54847 echo-path-line"},t)})}),h.map(a=>{let s=M[a.color],r=a.used,h=void 0!==j&&a.color===j&&!r,f=0===b.length&&h&&function(e,t){if(0!==e.path.length)return!1;let a=e.grid.find(e=>e.id===t);if(!a||a.used||a.color!==e.target[0])return!1;let s=JSON.parse(JSON.stringify(e));return s.grid.find(e=>e.id===t).used=!0,s.path.push(t),et(s)}(e,a.id),p=0===b.length&&h&&!f,g=l===a.id,v=i?.id===a.id,y=(a.col+.5)*S,w=(a.row+.5)*_;return(0,x.jsx)("button",{onClick:()=>(e=>{let a=t(e.id);if(a.ok&&a.finished){u(!1),e3("decodeSuccess"),a.failReason&&a.failReason.split(",").filter(Boolean).length&&(e3("fragmentUnlock"),n({title:"✦ 记忆碎片浮现",description:"新的回响被拼入图谱,前往「记忆图谱」查看。"})),n({title:"谐振闭合!",description:"晶体解码成功,记忆已释放。"});return}a.ok?(e3("decodeClick",{color:e.color}),c({id:e.id,ok:!0}),setTimeout(()=>c(null),280),!1!==a.solvable||d||(u(!0),n({title:"谐振受阻",description:"此路不通,建议撤销上一步或重排。"})),!0===a.solvable&&u(!1)):(e3("decodeFail"),c({id:e.id,ok:!1}),setTimeout(()=>c(null),280))})(a),onMouseEnter:()=>o(a.id),onMouseLeave:()=>o(null),disabled:r,style:{left:`${y}%`,top:`${w}%`,width:`min(${100/m*.62}%, 56px)`,aspectRatio:"1",background:r?"rgba(255,255,255,0.04)":`radial-gradient(circle at 35% 30%, ${s.hex}, ${s.hex}cc 55%, ${s.hex}55)`,boxShadow:r?"inset 0 0 12px rgba(0,0,0,0.5)":f?`0 0 16px ${s.glow}, 0 0 32px ${s.glow}, inset 0 0 10px rgba(255,255,255,0.5)`:h?`0 0 10px ${s.glow}, 0 0 20px ${s.glow}, inset 0 0 6px rgba(255,255,255,0.3)`:`0 0 6px ${s.glow}`,border:f?`2px solid ${s.hex}`:h?`1.5px solid ${s.hex}aa`:"1px solid rgba(255,255,255,0.12)",opacity:r?.35:p?.5:1,transform:`translate(-50%, -50%) scale(${g&&!r?1.12:v?i?.ok?1.25:.8:1})`,animation:f?"echo-pulse 1.2s ease-in-out infinite":h&&!p?"echo-pulse 1.6s ease-in-out infinite":void 0},"aria-label":`${s.label}色节点 ${a.row+1}-${a.col+1}`,className:"jsx-35ab0418fdc54847 absolute -translate-x-1/2 -translate-y-1/2 rounded-full transition-all duration-200 focus:outline-none disabled:cursor-not-allowed",children:!r&&(0,x.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"})},a.id)})]}),N&&(0,x.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,x.jsx)(ta,{className:"h-3.5 w-3.5 shrink-0"}),(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847",children:"谐振受阻,此路已无解。"}),(0,x.jsxs)(e8,{size:"sm",variant:"outline",onClick:k,className:"h-6 px-2 ml-auto border-rose-400/50 text-rose-100 hover:bg-rose-500/20 text-[11px]",children:[(0,x.jsx)(tt,{className:"h-3 w-3 mr-1"}),"撤销"]})]}),(0,x.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center justify-between gap-3",children:[(0,x.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-2 text-xs",children:[(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-muted-foreground",children:"步数"}),(0,x.jsxs)("span",{className:`jsx-35ab0418fdc54847 font-mono font-semibold ${b.length>=v?"text-rose-400":"text-foreground"}`,children:[b.length," / ",v]}),(0,x.jsxs)("span",{className:"jsx-35ab0418fdc54847 ml-2 text-muted-foreground",children:["T",y]})]}),(0,x.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-1.5",children:[(0,x.jsxs)(e8,{variant:"ghost",size:"sm",onClick:k,disabled:0===b.length,className:"h-7",children:[(0,x.jsx)(tt,{className:"h-3.5 w-3.5 mr-1"}),"撤销"]}),(0,x.jsxs)(e8,{variant:"ghost",size:"sm",onClick:()=>{s(),u(!1),c(null)},className:"h-7",children:[(0,x.jsx)(eS,{className:"h-3.5 w-3.5 mr-1"}),"重排"]}),(0,x.jsxs)(e8,{variant:"ghost",size:"sm",onClick:()=>{r(),c(null),u(!1)},className:"h-7",children:[(0,x.jsx)(e9.X,{className:"h-3.5 w-3.5 mr-1"}),"放回"]})]})]}),(0,x.jsx)("p",{className:"jsx-35ab0418fdc54847 text-[11px] text-muted-foreground/80 text-center leading-relaxed",children:0===b.length?(0,x.jsxs)(x.Fragment,{children:["点击",(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"高亮"}),"的可行起点开始,按目标顺序走",(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"相邻同色"}),"节点;走错可",(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-rose-300",children:"撤销"}),"。"]}):(0,x.jsxs)(x.Fragment,{children:["按「目标谐振」顺序,点击",(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"上下左右相邻"}),"的同色节点。每个节点仅可使用一次;走错可",(0,x.jsx)("span",{className:"jsx-35ab0418fdc54847 text-rose-300",children:"撤销"}),"。"]})}),(0,x.jsx)(eZ.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 tr(){let e=ey(e=>e.activePuzzle),t=ey(e=>e.pendingCrystals),a=ey(e=>e.startDecode),s=ey(e=>e.crystalsPerSec),r=ey(e=>e.crystalCap),n=ey(e=>e.crystals);return e?(0,x.jsxs)("div",{className:"h-full flex flex-col",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,x.jsx)(e7,{className:"h-4 w-4 text-rose-400"}),(0,x.jsx)("h3",{className:"text-sm font-semibold",children:"解码共振阵列"})]}),(0,x.jsx)("div",{className:"flex-1 min-h-0",children:(0,x.jsx)(ts,{})})]}):(0,x.jsxs)("div",{className:"jsx-53059b9e32765d5f h-full flex flex-col",children:[(0,x.jsxs)("div",{className:"jsx-53059b9e32765d5f flex items-center gap-2 mb-3",children:[(0,x.jsx)(e7,{className:"h-4 w-4 text-rose-400"}),(0,x.jsx)("h3",{className:"jsx-53059b9e32765d5f text-sm font-semibold",children:"待解码晶体"}),(0,x.jsxs)("span",{className:"jsx-53059b9e32765d5f text-xs text-muted-foreground ml-auto",children:["产能 ",s.toFixed(1),"/s · ",Math.floor(n),"/",Math.floor(r)]})]}),0===t.length?(0,x.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,x.jsxs)("div",{className:"jsx-53059b9e32765d5f relative h-16 w-16",children:[(0,x.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-0 rounded-full bg-rose-500/20 blur-xl animate-pulse"}),(0,x.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-2 rounded-full border-2 border-rose-400/40 rotate-45"}),(0,x.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-4 rounded-full bg-rose-500/30"})]}),(0,x.jsx)("p",{className:"jsx-53059b9e32765d5f text-sm text-muted-foreground",children:"晶体正在生成中…"}),(0,x.jsx)("p",{className:"jsx-53059b9e32765d5f text-xs text-muted-foreground/70 max-w-[220px]",children:"自治无人机每数秒回收一颗记忆晶体,点击下方晶体开启解码。"})]}):(0,x.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:t.map(e=>(0,x.jsx)(tn,{crystal:e,onClick:()=>a(e.id)},e.id))}),(0,x.jsx)(eZ.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 tn({crystal:e,onClick:t}){let a=1===e.tier?"#34d399":2===e.tier?"#fbbf24":"#e879f9",s=1===e.tier?"常见":2===e.tier?"稀有":"史诗";return(0,x.jsxs)("button",{onClick:t,className:"group relative aspect-square rounded-2xl border border-white/10 bg-black/40 hover:border-white/30 transition-all duration-300 hover:scale-[1.03] focus:outline-none overflow-hidden",style:{boxShadow:`inset 0 0 24px ${a}22`},children:[(0,x.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"relative h-12 w-12 transition-transform duration-500 group-hover:rotate-180",style:{filter:`drop-shadow(0 0 12px ${a}88)`},children:[(0,x.jsx)("div",{className:"absolute inset-0 rotate-45 rounded-md",style:{background:`linear-gradient(135deg, ${a}, ${a}66)`,border:`1px solid ${a}`}}),(0,x.jsx)("div",{className:"absolute inset-2 rotate-45 rounded-sm",style:{background:"linear-gradient(135deg, rgba(255,255,255,0.5), transparent)"}})]})}),(0,x.jsxs)("div",{className:"absolute top-1.5 left-1.5 text-[10px] font-mono px-1.5 py-0.5 rounded bg-black/50",style:{color:a},children:["T",e.tier]}),(0,x.jsx)("div",{className:"absolute bottom-1.5 right-1.5 text-[10px] text-white/70",children:s}),(0,x.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity flex items-end justify-center pb-2",children:(0,x.jsx)("span",{className:"text-[11px] font-medium text-white",children:"解码 →"})})]})}function tl({className:e,...t}){return(0,x.jsx)("div",{"data-slot":"card",className:(0,eX.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}let to=(0,ew.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"}]]),ti=(0,ew.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"}]]),tc=(0,ew.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"}]]),td=(0,ew.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"}]]),tu=(0,ew.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"}]]),th={Pickaxe:to,ScanLine:ti,Rocket:tc,BookOpen:td},tf={mining:"#34d399",decoding:"#fb7185",expedition:"#fbbf24",narrative:"#e879f9"};function tm(){let e=ey(e=>e.tech),t=ey(e=>e.insights),a=ey(e=>e.buyTech);return(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex flex-col gap-3 h-full",children:[(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center justify-between",children:[(0,x.jsx)("h3",{className:"jsx-fbf3fdae687a84dd text-sm font-semibold",children:"技术树"}),(0,x.jsxs)("span",{className:"jsx-fbf3fdae687a84dd text-xs text-muted-foreground",children:["洞见 ",(0,x.jsx)("span",{className:"jsx-fbf3fdae687a84dd text-amber-300 font-mono",children:$(t)})]})]}),(0,x.jsx)("div",{className:"jsx-fbf3fdae687a84dd flex-1 overflow-y-auto echo-scroll pr-1 space-y-3",children:["mining","decoding","expedition","narrative"].map(s=>{let r=C[s],n=th[r.icon],l=tf[s],o=_.filter(e=>e.branch===s);return(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd",children:[(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-2 mb-1.5 px-1",children:[(0,x.jsx)(n,{className:"jsx-fbf3fdae687a84dd h-3.5 w-3.5"}),(0,x.jsx)("span",{style:{color:l},className:"jsx-fbf3fdae687a84dd text-xs font-medium",children:r.name}),(0,x.jsx)("span",{className:"jsx-fbf3fdae687a84dd text-[10px] text-muted-foreground/70",children:r.desc})]}),(0,x.jsx)("div",{className:"jsx-fbf3fdae687a84dd grid gap-1.5",children:o.map(s=>{let r=(e[s.id]??0)>=1,n=t>=s.cost;return(0,x.jsx)(tl,{className:`p-2.5 transition-all duration-200 ${r?"bg-white/5 border-white/10":n?"bg-black/30 border-white/15 hover:border-white/30 cursor-pointer":"bg-black/20 border-white/5 opacity-60"}`,style:r?{boxShadow:`inset 0 0 0 1px ${l}44, 0 0 12px ${l}22`}:void 0,children:(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-2",children:[(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex-1 min-w-0",children:[(0,x.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-1.5",children:[(0,x.jsx)("span",{style:{color:r?l:void 0},className:"jsx-fbf3fdae687a84dd text-xs font-semibold truncate",children:s.name}),r&&(0,x.jsx)(te,{className:"h-3 w-3",style:{color:l}})]}),(0,x.jsx)("p",{className:"jsx-fbf3fdae687a84dd text-[10px] text-muted-foreground/80 truncate",children:s.desc})]}),!r&&(0,x.jsxs)(e8,{size:"sm",variant:n?"default":"ghost",disabled:!n,onClick:()=>{a(s.id)&&e3("techBuy")},className:"h-7 px-2 text-[11px] shrink-0",style:n?{background:`${l}22`,border:`1px solid ${l}66`,color:l}:void 0,children:[(0,x.jsx)(tu,{className:"h-2.5 w-2.5 mr-1"}),s.cost]})]})},s.id)})})]},s)})}),(0,x.jsx)(eZ.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 tx=e.i(48425),tp=e.i(96626),tg=e.i(30030),tb=e.i(30207),tv=p.createContext(void 0);function ty(e){let t=p.useContext(tv);return e||t||"ltr"}var tw=e.i(34620),tj=e.i(81140),tN="ScrollArea",[tk,tS]=(0,tg.createContextScope)(tN),[tM,t_]=tk(tN),tC=p.forwardRef((e,t)=>{let{__scopeScrollArea:a,type:s="hover",dir:r,scrollHideDelay:n=600,...l}=e,[o,i]=p.useState(null),[c,d]=p.useState(null),[u,h]=p.useState(null),[f,m]=p.useState(null),[g,b]=p.useState(null),[v,y]=p.useState(0),[w,j]=p.useState(0),[N,k]=p.useState(!1),[S,M]=p.useState(!1),_=(0,eM.useComposedRefs)(t,e=>i(e)),C=ty(r);return(0,x.jsx)(tM,{scope:a,type:s,dir:C,scrollHideDelay:n,scrollArea:o,viewport:c,onViewportChange:d,content:u,onContentChange:h,scrollbarX:f,onScrollbarXChange:m,scrollbarXEnabled:N,onScrollbarXEnabledChange:k,scrollbarY:g,onScrollbarYChange:b,scrollbarYEnabled:S,onScrollbarYEnabledChange:M,onCornerWidthChange:y,onCornerHeightChange:j,children:(0,x.jsx)(tx.Primitive.div,{dir:C,...l,ref:_,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":w+"px",...e.style}})})});tC.displayName=tN;var tE="ScrollAreaViewport",tT=p.forwardRef((e,t)=>{let{__scopeScrollArea:a,children:s,nonce:r,...n}=e,l=t_(tE,a),o=p.useRef(null),i=(0,eM.useComposedRefs)(t,o,l.onViewportChange);return(0,x.jsxs)(x.Fragment,{children:[(0,x.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:r}),(0,x.jsx)(tx.Primitive.div,{"data-radix-scroll-area-viewport":"",...n,ref:i,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,x.jsx)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:s})})]})});tT.displayName=tE;var tR="ScrollAreaScrollbar",tP=p.forwardRef((e,t)=>{let{forceMount:a,...s}=e,r=t_(tR,e.__scopeScrollArea),{onScrollbarXEnabledChange:n,onScrollbarYEnabledChange:l}=r,o="horizontal"===e.orientation;return p.useEffect(()=>(o?n(!0):l(!0),()=>{o?n(!1):l(!1)}),[o,n,l]),"hover"===r.type?(0,x.jsx)(t$,{...s,ref:t,forceMount:a}):"scroll"===r.type?(0,x.jsx)(tA,{...s,ref:t,forceMount:a}):"auto"===r.type?(0,x.jsx)(tD,{...s,ref:t,forceMount:a}):"always"===r.type?(0,x.jsx)(tz,{...s,ref:t}):null});tP.displayName=tR;var t$=p.forwardRef((e,t)=>{let{forceMount:a,...s}=e,r=t_(tR,e.__scopeScrollArea),[n,l]=p.useState(!1);return p.useEffect(()=>{let e=r.scrollArea,t=0;if(e){let a=()=>{window.clearTimeout(t),l(!0)},s=()=>{t=window.setTimeout(()=>l(!1),r.scrollHideDelay)};return e.addEventListener("pointerenter",a),e.addEventListener("pointerleave",s),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",a),e.removeEventListener("pointerleave",s)}}},[r.scrollArea,r.scrollHideDelay]),(0,x.jsx)(tp.Presence,{present:a||n,children:(0,x.jsx)(tD,{"data-state":n?"visible":"hidden",...s,ref:t})})}),tA=p.forwardRef((e,t)=>{var a;let{forceMount:s,...r}=e,n=t_(tR,e.__scopeScrollArea),l="horizontal"===e.orientation,o=t0(()=>c("SCROLL_END"),100),[i,c]=(a={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},p.useReducer((e,t)=>a[e][t]??e,"hidden"));return p.useEffect(()=>{if("idle"===i){let e=window.setTimeout(()=>c("HIDE"),n.scrollHideDelay);return()=>window.clearTimeout(e)}},[i,n.scrollHideDelay,c]),p.useEffect(()=>{let e=n.viewport,t=l?"scrollLeft":"scrollTop";if(e){let a=e[t],s=()=>{let s=e[t];a!==s&&(c("SCROLL"),o()),a=s};return e.addEventListener("scroll",s),()=>e.removeEventListener("scroll",s)}},[n.viewport,l,c,o]),(0,x.jsx)(tp.Presence,{present:s||"hidden"!==i,children:(0,x.jsx)(tz,{"data-state":"hidden"===i?"hidden":"visible",...r,ref:t,onPointerEnter:(0,tj.composeEventHandlers)(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:(0,tj.composeEventHandlers)(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),tD=p.forwardRef((e,t)=>{let a=t_(tR,e.__scopeScrollArea),{forceMount:s,...r}=e,[n,l]=p.useState(!1),o="horizontal"===e.orientation,i=t0(()=>{if(a.viewport){let e=a.viewport.offsetWidth<a.viewport.scrollWidth,t=a.viewport.offsetHeight<a.viewport.scrollHeight;l(o?e:t)}},10);return t1(a.viewport,i),t1(a.content,i),(0,x.jsx)(tp.Presence,{present:s||n,children:(0,x.jsx)(tz,{"data-state":n?"visible":"hidden",...r,ref:t})})}),tz=p.forwardRef((e,t)=>{let{orientation:a="vertical",...s}=e,r=t_(tR,e.__scopeScrollArea),n=p.useRef(null),l=p.useRef(0),[o,i]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=tY(o.viewport,o.content),d={...s,sizes:o,onSizesChange:i,hasThumb:!!(c>0&&c<1),onThumbChange:e=>n.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function u(e,t){return function(e,t,a,s="ltr"){let r=tG(a),n=t||r/2,l=a.scrollbar.paddingStart+n,o=a.scrollbar.size-a.scrollbar.paddingEnd-(r-n),i=a.content-a.viewport;return tZ([l,o],"ltr"===s?[0,i]:[-1*i,0])(e)}(e,l.current,o,t)}return"horizontal"===a?(0,x.jsx)(tO,{...d,ref:t,onThumbPositionChange:()=>{if(r.viewport&&n.current){let e=tJ(r.viewport.scrollLeft,o,r.dir);n.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{r.viewport&&(r.viewport.scrollLeft=e)},onDragScroll:e=>{r.viewport&&(r.viewport.scrollLeft=u(e,r.dir))}}):"vertical"===a?(0,x.jsx)(tI,{...d,ref:t,onThumbPositionChange:()=>{if(r.viewport&&n.current){let e=tJ(r.viewport.scrollTop,o);n.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{r.viewport&&(r.viewport.scrollTop=e)},onDragScroll:e=>{r.viewport&&(r.viewport.scrollTop=u(e))}}):null}),tO=p.forwardRef((e,t)=>{let{sizes:a,onSizesChange:s,...r}=e,n=t_(tR,e.__scopeScrollArea),[l,o]=p.useState(),i=p.useRef(null),c=(0,eM.useComposedRefs)(t,i,n.onScrollbarXChange);return p.useEffect(()=>{i.current&&o(getComputedStyle(i.current))},[i]),(0,x.jsx)(tB,{"data-orientation":"horizontal",...r,ref:c,sizes:a,style:{bottom:0,left:"rtl"===n.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===n.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":tG(a)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,a)=>{if(n.viewport){var s,r;let l=n.viewport.scrollLeft+t.deltaX;e.onWheelScroll(l),s=l,r=a,s>0&&s<r&&t.preventDefault()}},onResize:()=>{i.current&&n.viewport&&l&&s({content:n.viewport.scrollWidth,viewport:n.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:tX(l.paddingLeft),paddingEnd:tX(l.paddingRight)}})}})}),tI=p.forwardRef((e,t)=>{let{sizes:a,onSizesChange:s,...r}=e,n=t_(tR,e.__scopeScrollArea),[l,o]=p.useState(),i=p.useRef(null),c=(0,eM.useComposedRefs)(t,i,n.onScrollbarYChange);return p.useEffect(()=>{i.current&&o(getComputedStyle(i.current))},[i]),(0,x.jsx)(tB,{"data-orientation":"vertical",...r,ref:c,sizes:a,style:{top:0,right:"ltr"===n.dir?0:void 0,left:"rtl"===n.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":tG(a)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,a)=>{if(n.viewport){var s,r;let l=n.viewport.scrollTop+t.deltaY;e.onWheelScroll(l),s=l,r=a,s>0&&s<r&&t.preventDefault()}},onResize:()=>{i.current&&n.viewport&&l&&s({content:n.viewport.scrollHeight,viewport:n.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:tX(l.paddingTop),paddingEnd:tX(l.paddingBottom)}})}})}),[tF,tL]=tk(tR),tB=p.forwardRef((e,t)=>{let{__scopeScrollArea:a,sizes:s,hasThumb:r,onThumbChange:n,onThumbPointerUp:l,onThumbPointerDown:o,onThumbPositionChange:i,onDragScroll:c,onWheelScroll:d,onResize:u,...h}=e,f=t_(tR,a),[m,g]=p.useState(null),b=(0,eM.useComposedRefs)(t,e=>g(e)),v=p.useRef(null),y=p.useRef(""),w=f.viewport,j=s.content-s.viewport,N=(0,tb.useCallbackRef)(d),k=(0,tb.useCallbackRef)(i),S=t0(u,10);function M(e){v.current&&c({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return p.useEffect(()=>{let e=e=>{let t=e.target;m?.contains(t)&&N(e,j)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[w,m,j,N]),p.useEffect(k,[s,k]),t1(m,S),t1(f.content,S),(0,x.jsx)(tF,{scope:a,scrollbar:m,hasThumb:r,onThumbChange:(0,tb.useCallbackRef)(n),onThumbPointerUp:(0,tb.useCallbackRef)(l),onThumbPositionChange:k,onThumbPointerDown:(0,tb.useCallbackRef)(o),children:(0,x.jsx)(tx.Primitive.div,{...h,ref:b,style:{position:"absolute",...h.style},onPointerDown:(0,tj.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),v.current=m.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),M(e))}),onPointerMove:(0,tj.composeEventHandlers)(e.onPointerMove,M),onPointerUp:(0,tj.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,f.viewport&&(f.viewport.style.scrollBehavior=""),v.current=null})})})}),tH="ScrollAreaThumb",tK=p.forwardRef((e,t)=>{let{forceMount:a,...s}=e,r=tL(tH,e.__scopeScrollArea);return(0,x.jsx)(tp.Presence,{present:a||r.hasThumb,children:(0,x.jsx)(tW,{ref:t,...s})})}),tW=p.forwardRef((e,t)=>{let{__scopeScrollArea:a,style:s,...r}=e,n=t_(tH,a),l=tL(tH,a),{onThumbPositionChange:o}=l,i=(0,eM.useComposedRefs)(t,e=>l.onThumbChange(e)),c=p.useRef(void 0),d=t0(()=>{c.current&&(c.current(),c.current=void 0)},100);return p.useEffect(()=>{let e=n.viewport;if(e){let t=()=>{d(),c.current||(c.current=tQ(e,o),o())};return o(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[n.viewport,d,o]),(0,x.jsx)(tx.Primitive.div,{"data-state":l.hasThumb?"visible":"hidden",...r,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...s},onPointerDownCapture:(0,tj.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),a=e.clientX-t.left,s=e.clientY-t.top;l.onThumbPointerDown({x:a,y:s})}),onPointerUp:(0,tj.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});tK.displayName=tH;var tq="ScrollAreaCorner",tV=p.forwardRef((e,t)=>{let a=t_(tq,e.__scopeScrollArea),s=!!(a.scrollbarX&&a.scrollbarY);return"scroll"!==a.type&&s?(0,x.jsx)(tU,{...e,ref:t}):null});tV.displayName=tq;var tU=p.forwardRef((e,t)=>{let{__scopeScrollArea:a,...s}=e,r=t_(tq,a),[n,l]=p.useState(0),[o,i]=p.useState(0),c=!!(n&&o);return t1(r.scrollbarX,()=>{let e=r.scrollbarX?.offsetHeight||0;r.onCornerHeightChange(e),i(e)}),t1(r.scrollbarY,()=>{let e=r.scrollbarY?.offsetWidth||0;r.onCornerWidthChange(e),l(e)}),c?(0,x.jsx)(tx.Primitive.div,{...s,ref:t,style:{width:n,height:o,position:"absolute",right:"ltr"===r.dir?0:void 0,left:"rtl"===r.dir?0:void 0,bottom:0,...e.style}}):null});function tX(e){return e?parseInt(e,10):0}function tY(e,t){let a=e/t;return isNaN(a)?0:a}function tG(e){let t=tY(e.viewport,e.content),a=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-a)*t,18)}function tJ(e,t,a="ltr"){let s=tG(t),r=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,n=t.scrollbar.size-r,l=t.content-t.viewport,o=function(e,[t,a]){return Math.min(a,Math.max(t,e))}(e,"ltr"===a?[0,l]:[-1*l,0]);return tZ([0,l],[0,n-s])(o)}function tZ(e,t){return a=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let s=(t[1]-t[0])/(e[1]-e[0]);return t[0]+s*(a-e[0])}}var tQ=(e,t=()=>{})=>{let a={left:e.scrollLeft,top:e.scrollTop},s=0;return!function r(){let n={left:e.scrollLeft,top:e.scrollTop},l=a.left!==n.left,o=a.top!==n.top;(l||o)&&t(),a=n,s=window.requestAnimationFrame(r)}(),()=>window.cancelAnimationFrame(s)};function t0(e,t){let a=(0,tb.useCallbackRef)(e),s=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(s.current),[]),p.useCallback(()=>{window.clearTimeout(s.current),s.current=window.setTimeout(a,t)},[a,t])}function t1(e,t){let a=(0,tb.useCallbackRef)(t);(0,tw.useLayoutEffect)(()=>{let t=0;if(e){let s=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(a)});return s.observe(e),()=>{window.cancelAnimationFrame(t),s.unobserve(e)}}},[e,a])}function t2({className:e,children:t,...a}){return(0,x.jsxs)(tC,{"data-slot":"scroll-area",className:(0,eX.cn)("relative",e),...a,children:[(0,x.jsx)(tT,{"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:t}),(0,x.jsx)(t5,{}),(0,x.jsx)(tV,{})]})}function t5({className:e,orientation:t="vertical",...a}){return(0,x.jsx)(tP,{"data-slot":"scroll-area-scrollbar",orientation:t,className:(0,eX.cn)("flex touch-none p-px transition-colors select-none","vertical"===t&&"h-full w-2.5 border-l border-l-transparent","horizontal"===t&&"h-2.5 flex-col border-t border-t-transparent",e),...a,children:(0,x.jsx)(tK,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}let t3=["","寂灭前夜","谐振纪","飞升潮","回响纪","接触纪"];function t4(){let e=ey(e=>e.fragments),t=ey(e=>e.totalDecoded),a=function(e){for(let t of E)if(e<t.threshold)return t.threshold;return null}(t),[s,r]=(0,p.useState)(null),n=E.filter(e=>1===e.era),l=n.filter(t=>e[t.id]).length;return(0,x.jsxs)("div",{className:"flex flex-col gap-2 h-full",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("h3",{className:"text-sm font-semibold flex items-center gap-1.5",children:[(0,x.jsx)(td,{className:"h-4 w-4 text-fuchsia-400"}),"记忆图谱"]}),(0,x.jsxs)("span",{className:"text-xs text-muted-foreground",children:[l,"/",n.length," · 第一纪元"]})]}),a&&(0,x.jsxs)("div",{className:"text-[10px] text-muted-foreground/80 px-1",children:["再解码 ",(0,x.jsx)("span",{className:"text-fuchsia-300 font-mono",children:a-t})," 颗 → 下一个碎片"]}),(0,x.jsx)(t2,{className:"flex-1 min-h-0",children:(0,x.jsx)("div",{className:"grid grid-cols-2 gap-2 pr-2",children:n.map((t,a)=>{let s=!!e[t.id];return(0,x.jsxs)("button",{onClick:()=>s&&r(t),disabled:!s,className:`relative aspect-[4/3] rounded-xl border text-left p-2 transition-all duration-300 overflow-hidden ${s?"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:s?{boxShadow:"0 0 16px rgba(232,121,249,0.15)"}:void 0,children:[(0,x.jsx)("span",{className:`absolute top-1.5 right-1.5 text-[9px] font-mono ${s?"text-fuchsia-300/70":"text-white/20"}`,children:String(a+1).padStart(2,"0")}),s?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"absolute -top-3 -right-3 h-12 w-12 rounded-full bg-fuchsia-500/20 blur-xl"}),(0,x.jsx)(e7,{className:"h-3 w-3 text-fuchsia-300 mb-1"}),(0,x.jsx)("div",{className:"text-[11px] font-semibold text-fuchsia-100 leading-tight",children:t.title}),(0,x.jsxs)("div",{className:"text-[9px] text-muted-foreground mt-1 line-clamp-2",children:[t.echo.slice(0,28),"…"]})]}):(0,x.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-1",children:[(0,x.jsx)(tu,{className:"h-4 w-4 text-white/20"}),(0,x.jsxs)("span",{className:"text-[9px] text-white/30",children:["需解码 ",t.threshold," 颗"]})]})]},t.id)})})}),s&&(0,x.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/70 backdrop-blur-sm",onClick:()=>r(null),children:(0,x.jsxs)(tl,{className:"max-w-md w-full p-5 bg-gradient-to-br from-fuchsia-950/60 to-black/80 border-fuchsia-400/40",onClick:e=>e.stopPropagation(),style:{boxShadow:"0 0 40px rgba(232,121,249,0.25)"},children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,x.jsx)(e7,{className:"h-4 w-4 text-fuchsia-300"}),(0,x.jsxs)("span",{className:"text-[10px] text-fuchsia-300/70 font-mono",children:["第 ",s.era," 纪元 · ",t3[s.era]||""]})]}),(0,x.jsx)("h4",{className:"text-lg font-bold text-fuchsia-100 mb-3",children:s.title}),(0,x.jsxs)("p",{className:"text-sm text-foreground/90 leading-relaxed italic",children:["「",s.echo,"」"]}),(0,x.jsx)("button",{onClick:()=>r(null),className:"mt-4 text-xs text-muted-foreground hover:text-foreground transition",children:"关闭"})]})})]})}var t6=p[" useId ".trim().toString()]||(()=>void 0),t8=0;function t9(e){let[t,a]=p.useState(t6());return(0,tw.useLayoutEffect)(()=>{e||a(e=>e??String(t8++))},[e]),e||(t?`radix-${t}`:"")}var t7=e.i(69340),ae=e.i(26330),at="focusScope.autoFocusOnMount",aa="focusScope.autoFocusOnUnmount",as={bubbles:!1,cancelable:!0},ar=p.forwardRef((e,t)=>{let{loop:a=!1,trapped:s=!1,onMountAutoFocus:r,onUnmountAutoFocus:n,...l}=e,[o,i]=p.useState(null),c=(0,tb.useCallbackRef)(r),d=(0,tb.useCallbackRef)(n),u=p.useRef(null),h=(0,eM.useComposedRefs)(t,e=>i(e)),f=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(s){let e=function(e){if(f.paused||!o)return;let t=e.target;o.contains(t)?u.current=t:ao(u.current,{select:!0})},t=function(e){if(f.paused||!o)return;let t=e.relatedTarget;null!==t&&(o.contains(t)||ao(u.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let a=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&ao(o)});return o&&a.observe(o,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),a.disconnect()}}},[s,o,f.paused]),p.useEffect(()=>{if(o){ai.add(f);let e=document.activeElement;if(!o.contains(e)){let t=new CustomEvent(at,as);o.addEventListener(at,c),o.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let a=document.activeElement;for(let s of e)if(ao(s,{select:t}),document.activeElement!==a)return}(an(o).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&ao(o))}return()=>{o.removeEventListener(at,c),setTimeout(()=>{let t=new CustomEvent(aa,as);o.addEventListener(aa,d),o.dispatchEvent(t),t.defaultPrevented||ao(e??document.body,{select:!0}),o.removeEventListener(aa,d),ai.remove(f)},0)}}},[o,c,d,f]);let m=p.useCallback(e=>{if(!a&&!s||f.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=document.activeElement;if(t&&r){var n;let t,s=e.currentTarget,[l,o]=[al(t=an(n=s),n),al(t.reverse(),n)];l&&o?e.shiftKey||r!==o?e.shiftKey&&r===l&&(e.preventDefault(),a&&ao(o,{select:!0})):(e.preventDefault(),a&&ao(l,{select:!0})):r===s&&e.preventDefault()}},[a,s,f.paused]);return(0,x.jsx)(tx.Primitive.div,{tabIndex:-1,...l,ref:h,onKeyDown:m})});function an(e){let t=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)t.push(a.currentNode);return t}function al(e,t){for(let a of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(a,{upTo:t}))return a}function ao(e,{select:t=!1}={}){if(e&&e.focus){var a;let s=document.activeElement;e.focus({preventScroll:!0}),e!==s&&(a=e)instanceof HTMLInputElement&&"select"in a&&t&&e.select()}}ar.displayName="FocusScope";var ai=(l=[],{add(e){let t=l[0];e!==t&&t?.pause(),(l=ac(l,e)).unshift(e)},remove(e){l=ac(l,e),l[0]?.resume()}});function ac(e,t){let a=[...e],s=a.indexOf(t);return -1!==s&&a.splice(s,1),a}var ad=e.i(74606),au=0;function ah(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var af=function(){return(af=Object.assign||function(e){for(var t,a=1,s=arguments.length;a<s;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function am(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&0>t.indexOf(s)&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,s=Object.getOwnPropertySymbols(e);r<s.length;r++)0>t.indexOf(s[r])&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(a[s[r]]=e[s[r]]);return a}var ax=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),ap="width-before-scroll-bar";function ag(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var ab="u">typeof window?p.useLayoutEffect:p.useEffect,av=new WeakMap,ay=(void 0===i&&(i={}),(void 0===c&&(c=function(e){return e}),d=[],u=!1,h={read:function(){if(u)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return d.length?d[d.length-1]:null},useMedium:function(e){var t=c(e,u);return d.push(t),function(){d=d.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(u=!0;d.length;){var t=d;d=[],t.forEach(e)}d={push:function(t){return e(t)},filter:function(){return d}}},assignMedium:function(e){u=!0;var t=[];if(d.length){var a=d;d=[],a.forEach(e),t=d}var s=function(){var a=t;t=[],a.forEach(e)},r=function(){return Promise.resolve().then(s)};r(),d={push:function(e){t.push(e),r()},filter:function(e){return t=t.filter(e),d}}}}).options=af({async:!0,ssr:!1},i),h),aw=function(){},aj=p.forwardRef(function(e,t){var a,s,r,n,l=p.useRef(null),o=p.useState({onScrollCapture:aw,onWheelCapture:aw,onTouchMoveCapture:aw}),i=o[0],c=o[1],d=e.forwardProps,u=e.children,h=e.className,f=e.removeScrollBar,m=e.enabled,x=e.shards,g=e.sideCar,b=e.noRelative,v=e.noIsolation,y=e.inert,w=e.allowPinchZoom,j=e.as,N=e.gapMode,k=am(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),S=(a=[l,t],s=function(e){return a.forEach(function(t){return ag(t,e)})},(r=(0,p.useState)(function(){return{value:null,callback:s,facade:{get current(){return r.value},set current(value){var e=r.value;e!==value&&(r.value=value,r.callback(value,e))}}}})[0]).callback=s,n=r.facade,ab(function(){var e=av.get(n);if(e){var t=new Set(e),s=new Set(a),r=n.current;t.forEach(function(e){s.has(e)||ag(e,null)}),s.forEach(function(e){t.has(e)||ag(e,r)})}av.set(n,a)},[a]),n),M=af(af({},k),i);return p.createElement(p.Fragment,null,m&&p.createElement(g,{sideCar:ay,removeScrollBar:f,shards:x,noRelative:b,noIsolation:v,inert:y,setCallbacks:c,allowPinchZoom:!!w,lockRef:l,gapMode:N}),d?p.cloneElement(p.Children.only(u),af(af({},M),{ref:S})):p.createElement(void 0===j?"div":j,af({},M,{className:h,ref:S}),u))});aj.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},aj.classNames={fullWidth:ap,zeroRight:ax};var aN=function(e){var t=e.sideCar,a=am(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var s=t.read();if(!s)throw Error("Sidecar medium not found");return p.createElement(s,af({},a))};aN.isSideCarExport=!0;var ak=function(){var e=0,t=null;return{add:function(a){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=m||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var s,r;(s=t).styleSheet?s.styleSheet.cssText=a:s.appendChild(document.createTextNode(a)),r=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(r)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},aS=function(){var e=ak();return function(t,a){p.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&a])}},aM=function(){var e=aS();return function(t){return e(t.styles,t.dynamic),null}},a_={left:0,top:0,right:0,gap:0},aC=function(e){return parseInt(e||"",10)||0},aE=function(e){var t=window.getComputedStyle(document.body),a=t["padding"===e?"paddingLeft":"marginLeft"],s=t["padding"===e?"paddingTop":"marginTop"],r=t["padding"===e?"paddingRight":"marginRight"];return[aC(a),aC(s),aC(r)]},aT=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return a_;var t=aE(e),a=document.documentElement.clientWidth,s=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,s-a+t[2]-t[0])}},aR=aM(),aP="data-scroll-locked",a$=function(e,t,a,s){var r=e.left,n=e.top,l=e.right,o=e.gap;return void 0===a&&(a="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(s,";\n padding-right: ").concat(o,"px ").concat(s,";\n }\n body[").concat(aP,"] {\n overflow: hidden ").concat(s,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(s,";"),"margin"===a&&"\n padding-left: ".concat(r,"px;\n padding-top: ").concat(n,"px;\n padding-right: ").concat(l,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(o,"px ").concat(s,";\n "),"padding"===a&&"padding-right: ".concat(o,"px ").concat(s,";")].filter(Boolean).join(""),"\n }\n \n .").concat(ax," {\n right: ").concat(o,"px ").concat(s,";\n }\n \n .").concat(ap," {\n margin-right: ").concat(o,"px ").concat(s,";\n }\n \n .").concat(ax," .").concat(ax," {\n right: 0 ").concat(s,";\n }\n \n .").concat(ap," .").concat(ap," {\n margin-right: 0 ").concat(s,";\n }\n \n body[").concat(aP,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(o,"px;\n }\n")},aA=function(){var e=parseInt(document.body.getAttribute(aP)||"0",10);return isFinite(e)?e:0},aD=function(){p.useEffect(function(){return document.body.setAttribute(aP,(aA()+1).toString()),function(){var e=aA()-1;e<=0?document.body.removeAttribute(aP):document.body.setAttribute(aP,e.toString())}},[])},az=function(e){var t=e.noRelative,a=e.noImportant,s=e.gapMode,r=void 0===s?"margin":s;aD();var n=p.useMemo(function(){return aT(r)},[r]);return p.createElement(aR,{styles:a$(n,!t,r,a?"":"!important")})},aO=!1;if("u">typeof window)try{var aI=Object.defineProperty({},"passive",{get:function(){return aO=!0,!0}});window.addEventListener("test",aI,aI),window.removeEventListener("test",aI,aI)}catch(e){aO=!1}var aF=!!aO&&{passive:!1},aL=function(e,t){if(!(e instanceof Element))return!1;var a=window.getComputedStyle(e);return"hidden"!==a[t]&&(a.overflowY!==a.overflowX||"TEXTAREA"===e.tagName||"visible"!==a[t])},aB=function(e,t){var a=t.ownerDocument,s=t;do{if("u">typeof ShadowRoot&&s instanceof ShadowRoot&&(s=s.host),aH(e,s)){var r=aK(e,s);if(r[1]>r[2])return!0}s=s.parentNode}while(s&&s!==a.body)return!1},aH=function(e,t){return"v"===e?aL(t,"overflowY"):aL(t,"overflowX")},aK=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},aW=function(e,t,a,s,r){var n,l=(n=window.getComputedStyle(t).direction,"h"===e&&"rtl"===n?-1:1),o=l*s,i=a.target,c=t.contains(i),d=!1,u=o>0,h=0,f=0;do{if(!i)break;var m=aK(e,i),x=m[0],p=m[1]-m[2]-l*x;(x||p)&&aH(e,i)&&(h+=p,f+=x);var g=i.parentNode;i=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&i!==document.body||c&&(t.contains(i)||t===i))return u&&(r&&1>Math.abs(h)||!r&&o>h)?d=!0:!u&&(r&&1>Math.abs(f)||!r&&-o>f)&&(d=!0),d},aq=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aV=function(e){return[e.deltaX,e.deltaY]},aU=function(e){return e&&"current"in e?e.current:e},aX=0,aY=[];let aG=(f=function(e){var t=p.useRef([]),a=p.useRef([0,0]),s=p.useRef(),r=p.useState(aX++)[0],n=p.useState(aM)[0],l=p.useRef(e);p.useEffect(function(){l.current=e},[e]),p.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var t=(function(e,t,a){if(a||2==arguments.length)for(var s,r=0,n=t.length;r<n;r++)!s&&r in t||(s||(s=Array.prototype.slice.call(t,0,r)),s[r]=t[r]);return e.concat(s||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(aU),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var o=p.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!l.current.allowPinchZoom;var r,n=aq(e),o=a.current,i="deltaX"in e?e.deltaX:o[0]-n[0],c="deltaY"in e?e.deltaY:o[1]-n[1],d=e.target,u=Math.abs(i)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===u&&"range"===d.type)return!1;var h=window.getSelection(),f=h&&h.anchorNode;if(f&&(f===d||f.contains(d)))return!1;var m=aB(u,d);if(!m)return!0;if(m?r=u:(r="v"===u?"h":"v",m=aB(u,d)),!m)return!1;if(!s.current&&"changedTouches"in e&&(i||c)&&(s.current=r),!r)return!0;var x=s.current||r;return aW(x,t,e,"h"===x?i:c,!0)},[]),i=p.useCallback(function(e){if(aY.length&&aY[aY.length-1]===n){var a="deltaY"in e?aV(e):aq(e),s=t.current.filter(function(t){var s;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(s=t.delta,s[0]===a[0]&&s[1]===a[1])})[0];if(s&&s.should){e.cancelable&&e.preventDefault();return}if(!s){var r=(l.current.shards||[]).map(aU).filter(Boolean).filter(function(t){return t.contains(e.target)});(r.length>0?o(e,r[0]):!l.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=p.useCallback(function(e,a,s,r){var n={name:e,delta:a,target:s,should:r,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(s)};t.current.push(n),setTimeout(function(){t.current=t.current.filter(function(e){return e!==n})},1)},[]),d=p.useCallback(function(e){a.current=aq(e),s.current=void 0},[]),u=p.useCallback(function(t){c(t.type,aV(t),t.target,o(t,e.lockRef.current))},[]),h=p.useCallback(function(t){c(t.type,aq(t),t.target,o(t,e.lockRef.current))},[]);p.useEffect(function(){return aY.push(n),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:h}),document.addEventListener("wheel",i,aF),document.addEventListener("touchmove",i,aF),document.addEventListener("touchstart",d,aF),function(){aY=aY.filter(function(e){return e!==n}),document.removeEventListener("wheel",i,aF),document.removeEventListener("touchmove",i,aF),document.removeEventListener("touchstart",d,aF)}},[]);var f=e.removeScrollBar,m=e.inert;return p.createElement(p.Fragment,null,m?p.createElement(n,{styles:"\n .block-interactivity-".concat(r," {pointer-events: none;}\n .allow-interactivity-").concat(r," {pointer-events: all;}\n")}):null,f?p.createElement(az,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},ay.useMedium(f),aN);var aJ=p.forwardRef(function(e,t){return p.createElement(aj,af({},e,{ref:t,sideCar:aG}))});aJ.classNames=aj.classNames;var aZ=new WeakMap,aQ=new WeakMap,a0={},a1=0,a2=function(e){return e&&(e.host||a2(e.parentNode))},a5=function(e,t,a,s){var r=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var a=a2(e);return a&&t.contains(a)?a:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});a0[a]||(a0[a]=new WeakMap);var n=a0[a],l=[],o=new Set,i=new Set(r),c=function(e){!e||o.has(e)||(o.add(e),c(e.parentNode))};r.forEach(c);var d=function(e){!e||i.has(e)||Array.prototype.forEach.call(e.children,function(e){if(o.has(e))d(e);else try{var t=e.getAttribute(s),r=null!==t&&"false"!==t,i=(aZ.get(e)||0)+1,c=(n.get(e)||0)+1;aZ.set(e,i),n.set(e,c),l.push(e),1===i&&r&&aQ.set(e,!0),1===c&&e.setAttribute(a,"true"),r||e.setAttribute(s,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return d(t),o.clear(),a1++,function(){l.forEach(function(e){var t=aZ.get(e)-1,r=n.get(e)-1;aZ.set(e,t),n.set(e,r),t||(aQ.has(e)||e.removeAttribute(s),aQ.delete(e)),r||e.removeAttribute(a)}),--a1||(aZ=new WeakMap,aZ=new WeakMap,aQ=new WeakMap,a0={})}},a3=function(e,t,a){void 0===a&&(a="data-aria-hidden");var s=Array.from(Array.isArray(e)?e:[e]),r=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return r?(s.push.apply(s,Array.from(r.querySelectorAll("[aria-live], script"))),a5(s,r,a,"aria-hidden")):function(){return null}},a4=Symbol("radix.slottable");function a6(e){return p.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===a4}var a8="Dialog",[a9,a7]=(0,tg.createContextScope)(a8),[se,st]=a9(a8),sa=e=>{let{__scopeDialog:t,children:a,open:s,defaultOpen:r,onOpenChange:n,modal:l=!0}=e,o=p.useRef(null),i=p.useRef(null),[c,d]=(0,t7.useControllableState)({prop:s,defaultProp:r??!1,onChange:n,caller:a8});return(0,x.jsx)(se,{scope:t,triggerRef:o,contentRef:i,contentId:t9(),titleId:t9(),descriptionId:t9(),open:c,onOpenChange:d,onOpenToggle:p.useCallback(()=>d(e=>!e),[d]),modal:l,children:a})};sa.displayName=a8;var ss="DialogTrigger";p.forwardRef((e,t)=>{let{__scopeDialog:a,...s}=e,r=st(ss,a),n=(0,eM.useComposedRefs)(t,r.triggerRef);return(0,x.jsx)(tx.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":sN(r.open),...s,ref:n,onClick:(0,tj.composeEventHandlers)(e.onClick,r.onOpenToggle)})}).displayName=ss;var sr="DialogPortal",[sn,sl]=a9(sr,{forceMount:void 0}),so=e=>{let{__scopeDialog:t,forceMount:a,children:s,container:r}=e,n=st(sr,t);return(0,x.jsx)(sn,{scope:t,forceMount:a,children:p.Children.map(s,e=>(0,x.jsx)(tp.Presence,{present:a||n.open,children:(0,x.jsx)(ad.Portal,{asChild:!0,container:r,children:e})}))})};so.displayName=sr;var si="DialogOverlay",sc=p.forwardRef((e,t)=>{let a=sl(si,e.__scopeDialog),{forceMount:s=a.forceMount,...r}=e,n=st(si,e.__scopeDialog);return n.modal?(0,x.jsx)(tp.Presence,{present:s||n.open,children:(0,x.jsx)(su,{...r,ref:t})}):null});sc.displayName=si;var sd=((o=p.forwardRef((e,t)=>{let{children:a,...s}=e;if(p.isValidElement(a)){var r;let e,n,l=(r=a,(n=(e=Object.getOwnPropertyDescriptor(r.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.ref:(n=(e=Object.getOwnPropertyDescriptor(r,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.props.ref:r.props.ref||r.ref),o=function(e,t){let a={...t};for(let s in t){let r=e[s],n=t[s];/^on[A-Z]/.test(s)?r&&n?a[s]=(...e)=>{let t=n(...e);return r(...e),t}:r&&(a[s]=r):"style"===s?a[s]={...r,...n}:"className"===s&&(a[s]=[r,n].filter(Boolean).join(" "))}return{...e,...a}}(s,a.props);return a.type!==p.Fragment&&(o.ref=t?(0,eM.composeRefs)(t,l):l),p.cloneElement(a,o)}return p.Children.count(a)>1?p.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",r=o,(n=p.forwardRef((e,t)=>{let{children:a,...s}=e,n=p.Children.toArray(a),l=n.find(a6);if(l){let e=l.props.children,a=n.map(t=>t!==l?t:p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null);return(0,x.jsx)(r,{...s,ref:t,children:p.isValidElement(e)?p.cloneElement(e,void 0,a):null})}return(0,x.jsx)(r,{...s,ref:t,children:a})})).displayName="DialogOverlay.RemoveScroll.Slot",n),su=p.forwardRef((e,t)=>{let{__scopeDialog:a,...s}=e,r=st(si,a);return(0,x.jsx)(aJ,{as:sd,allowPinchZoom:!0,shards:[r.contentRef],children:(0,x.jsx)(tx.Primitive.div,{"data-state":sN(r.open),...s,ref:t,style:{pointerEvents:"auto",...s.style}})})}),sh="DialogContent",sf=p.forwardRef((e,t)=>{let a=sl(sh,e.__scopeDialog),{forceMount:s=a.forceMount,...r}=e,n=st(sh,e.__scopeDialog);return(0,x.jsx)(tp.Presence,{present:s||n.open,children:n.modal?(0,x.jsx)(sm,{...r,ref:t}):(0,x.jsx)(sx,{...r,ref:t})})});sf.displayName=sh;var sm=p.forwardRef((e,t)=>{let a=st(sh,e.__scopeDialog),s=p.useRef(null),r=(0,eM.useComposedRefs)(t,a.contentRef,s);return p.useEffect(()=>{let e=s.current;if(e)return a3(e)},[]),(0,x.jsx)(sp,{...e,ref:r,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,tj.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),a.triggerRef.current?.focus()}),onPointerDownOutside:(0,tj.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,a=0===t.button&&!0===t.ctrlKey;(2===t.button||a)&&e.preventDefault()}),onFocusOutside:(0,tj.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),sx=p.forwardRef((e,t)=>{let a=st(sh,e.__scopeDialog),s=p.useRef(!1),r=p.useRef(!1);return(0,x.jsx)(sp,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(s.current||a.triggerRef.current?.focus(),t.preventDefault()),s.current=!1,r.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(s.current=!0,"pointerdown"===t.detail.originalEvent.type&&(r.current=!0));let n=t.target;a.triggerRef.current?.contains(n)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&r.current&&t.preventDefault()}})}),sp=p.forwardRef((e,t)=>{let{__scopeDialog:a,trapFocus:s,onOpenAutoFocus:r,onCloseAutoFocus:n,...l}=e,o=st(sh,a),i=p.useRef(null),c=(0,eM.useComposedRefs)(t,i);return p.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ah()),document.body.insertAdjacentElement("beforeend",e[1]??ah()),au++,()=>{1===au&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),au--}},[]),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(ar,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:r,onUnmountAutoFocus:n,children:(0,x.jsx)(ae.DismissableLayer,{role:"dialog",id:o.contentId,"aria-describedby":o.descriptionId,"aria-labelledby":o.titleId,"data-state":sN(o.open),...l,ref:c,onDismiss:()=>o.onOpenChange(!1)})}),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s_,{titleId:o.titleId}),(0,x.jsx)(sC,{contentRef:i,descriptionId:o.descriptionId})]})]})}),sg="DialogTitle",sb=p.forwardRef((e,t)=>{let{__scopeDialog:a,...s}=e,r=st(sg,a);return(0,x.jsx)(tx.Primitive.h2,{id:r.titleId,...s,ref:t})});sb.displayName=sg;var sv="DialogDescription",sy=p.forwardRef((e,t)=>{let{__scopeDialog:a,...s}=e,r=st(sv,a);return(0,x.jsx)(tx.Primitive.p,{id:r.descriptionId,...s,ref:t})});sy.displayName=sv;var sw="DialogClose",sj=p.forwardRef((e,t)=>{let{__scopeDialog:a,...s}=e,r=st(sw,a);return(0,x.jsx)(tx.Primitive.button,{type:"button",...s,ref:t,onClick:(0,tj.composeEventHandlers)(e.onClick,()=>r.onOpenChange(!1))})});function sN(e){return e?"open":"closed"}sj.displayName=sw;var sk="DialogTitleWarning",[sS,sM]=(0,tg.createContext)(sk,{contentName:sh,titleName:sg,docsSlug:"dialog"}),s_=({titleId:e})=>{let t=sM(sk),a=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return p.useEffect(()=>{e&&(document.getElementById(e)||console.error(a))},[a,e]),null},sC=({contentRef:e,descriptionId:t})=>{let a=sM("DialogDescriptionWarning"),s=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${a.contentName}}.`;return p.useEffect(()=>{let a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(s))},[s,e,t]),null},sE=e.i(41947),sE=sE;function sT({...e}){return(0,x.jsx)(sa,{"data-slot":"dialog",...e})}function sR({...e}){return(0,x.jsx)(so,{"data-slot":"dialog-portal",...e})}function sP({className:e,...t}){return(0,x.jsx)(sc,{"data-slot":"dialog-overlay",className:(0,eX.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",e),...t})}function s$({className:e,children:t,showCloseButton:a=!0,...s}){return(0,x.jsxs)(sR,{"data-slot":"dialog-portal",children:[(0,x.jsx)(sP,{}),(0,x.jsxs)(sf,{"data-slot":"dialog-content",className:(0,eX.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",e),...s,children:[t,a&&(0,x.jsxs)(sj,{"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,x.jsx)(sE.default,{}),(0,x.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function sA({className:e,...t}){return(0,x.jsx)("div",{"data-slot":"dialog-header",className:(0,eX.cn)("flex flex-col gap-2 text-center sm:text-left",e),...t})}function sD({className:e,...t}){return(0,x.jsx)("div",{"data-slot":"dialog-footer",className:(0,eX.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}function sz({className:e,...t}){return(0,x.jsx)(sb,{"data-slot":"dialog-title",className:(0,eX.cn)("text-lg leading-none font-semibold",e),...t})}function sO({className:e,...t}){return(0,x.jsx)(sy,{"data-slot":"dialog-description",className:(0,eX.cn)("text-muted-foreground text-sm",e),...t})}let sI=(0,ew.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 sF({open:e,onOpenChange:t}){let a=ey(),s=ey(e=>e.doPrestige),{toast:r}=(0,eQ.useToast)(),[n,l]=(0,p.useState)(!1),[o,i]=(0,p.useState)(!1),c=J(a);a.blueprints.length;let d=Math.min(6,a.blueprints.length+c),u=q(a.constellation??[]);return(0,x.jsx)(sT,{open:e,onOpenChange:t,children:(0,x.jsxs)(s$,{className:"bg-gradient-to-br from-fuchsia-950/70 to-black/90 border-fuchsia-400/40",children:[(0,x.jsxs)(sA,{children:[(0,x.jsxs)(sz,{className:"flex items-center gap-2 text-fuchsia-100",children:[(0,x.jsx)(eS,{className:"h-5 w-5"}),"飞升 · 跨越维度"]}),(0,x.jsx)(sO,{className:"text-fuchsia-200/70",children:"当接触进度满溢,你将跨越维度与以太族相会。本次飞升将重置资源与技术,但保留记忆图谱与蓝图加成。"})]}),(0,x.jsxs)("div",{className:"space-y-3 py-2",children:[(0,x.jsxs)("div",{className:"rounded-lg border border-fuchsia-400/30 bg-fuchsia-950/30 p-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsx)("span",{className:"text-sm text-fuchsia-200",children:"本次获得蓝图"}),(0,x.jsxs)("span",{className:"text-2xl font-mono font-bold text-fuchsia-100",children:["+",c]})]}),(0,x.jsxs)("p",{className:"text-[11px] text-muted-foreground mt-1",children:["蓝图总数将达 ",d,"/",6,"(每 ",20," 次解码产出 1 张)"]})]}),(0,x.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,x.jsx)(sL,{label:"产能",value:`+${(d*T*100).toFixed(0)}%`,color:"#34d399"}),(0,x.jsx)(sL,{label:"洞见",value:`+${(d*R*100).toFixed(0)}%`,color:"#fbbf24"}),(0,x.jsx)(sL,{label:"接触",value:`+${(d*P*100).toFixed(0)}%`,color:"#e879f9"})]}),(0,x.jsxs)("div",{className:"text-[11px] text-muted-foreground space-y-1 pt-1",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,x.jsx)(e7,{className:"h-3 w-3 text-fuchsia-400"}),"保留:记忆图谱、累计解码数、飞升次数、蓝图、星图天赋"]}),(0,x.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,x.jsx)(eS,{className:"h-3 w-3 text-rose-400"}),"重置:晶体、洞见、技术树、接触进度、待解码晶体"]})]}),(0,x.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,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(sI,{className:"h-4 w-4 text-fuchsia-300"}),(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("div",{className:"text-[12px] text-fuchsia-200 font-bold",children:"星图觉醒预告"}),(0,x.jsxs)("div",{className:"text-[10px] text-muted-foreground",children:["飞升后将从 3 道随机天赋中选 1,永久获得加成",u.unlocked<u.total&&(0,x.jsxs)("span",{className:"text-fuchsia-300/80",children:[" · 当前 ",u.unlocked,"/",u.total]})]})]}),(0,x.jsx)("div",{className:"text-[10px] text-fuchsia-300/70 font-mono",children:u.unlocked<u.total?"✦ 可觉醒":"✧ 已圆满"})]})}),(0,x.jsxs)("div",{className:"rounded-lg border border-violet-400/25 bg-violet-950/20 p-2.5 flex items-center gap-2",children:[(0,x.jsx)(td,{className:"h-4 w-4 text-violet-300 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 text-[10px] text-violet-100/70 leading-relaxed",children:["本次飞升将铭刻入",(0,x.jsx)("span",{className:"text-violet-200 font-bold",children:"回响编年史"}),", 记录本周目的解码、探险、星潮与觉醒天赋,形成永恒叙事时间轴。"]})]})]}),(0,x.jsxs)(sD,{children:[(0,x.jsx)(e8,{variant:"ghost",onClick:()=>t(!1),children:"取消"}),(0,x.jsx)(e8,{disabled:n&&!o,onClick:()=>{if(!n){l(!0),i(!1),window.setTimeout(()=>i(!0),900);return}let e=s();t(!1),l(!1),i(!1),e&&(e3("prestige"),window.setTimeout(()=>e3("chronicle"),600),r({title:"✦ 飞升成功",description:`获得 ${e.newBp} 张蓝图,进入第 ${a.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:n?o?"再次确认飞升":"请确认…":c<=0?"飞升(无新蓝图)":"飞升"})]})]})})}function sL({label:e,value:t,color:a}){return(0,x.jsxs)("div",{className:"rounded-lg border p-2 text-center",style:{borderColor:`${a}44`,background:`${a}11`},children:[(0,x.jsx)("div",{className:"text-[10px] text-muted-foreground",children:e}),(0,x.jsx)("div",{className:"text-sm font-mono font-bold",style:{color:a},children:t})]})}var sB="Switch",[sH,sK]=(0,tg.createContextScope)(sB),[sW,sq]=sH(sB),sV=p.forwardRef((e,t)=>{let{__scopeSwitch:a,name:s,checked:r,defaultChecked:n,required:l,disabled:o,value:i="on",onCheckedChange:c,form:d,...u}=e,[h,f]=p.useState(null),m=(0,eM.useComposedRefs)(t,e=>f(e)),g=p.useRef(!1),b=!h||d||!!h.closest("form"),[v,y]=(0,t7.useControllableState)({prop:r,defaultProp:n??!1,onChange:c,caller:sB});return(0,x.jsxs)(sW,{scope:a,checked:v,disabled:o,children:[(0,x.jsx)(tx.Primitive.button,{type:"button",role:"switch","aria-checked":v,"aria-required":l,"data-state":sG(v),"data-disabled":o?"":void 0,disabled:o,value:i,...u,ref:m,onClick:(0,tj.composeEventHandlers)(e.onClick,e=>{y(e=>!e),b&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),b&&(0,x.jsx)(sY,{control:h,bubbles:!g.current,name:s,value:i,checked:v,required:l,disabled:o,form:d,style:{transform:"translateX(-100%)"}})]})});sV.displayName=sB;var sU="SwitchThumb",sX=p.forwardRef((e,t)=>{let{__scopeSwitch:a,...s}=e,r=sq(sU,a);return(0,x.jsx)(tx.Primitive.span,{"data-state":sG(r.checked),"data-disabled":r.disabled?"":void 0,...s,ref:t})});sX.displayName=sU;var sY=p.forwardRef(({__scopeSwitch:e,control:t,checked:a,bubbles:s=!0,...r},n)=>{let l,o=p.useRef(null),i=(0,eM.useComposedRefs)(o,n),c=(l=p.useRef({value:a,previous:a}),p.useMemo(()=>(l.current.value!==a&&(l.current.previous=l.current.value,l.current.value=a),l.current.previous),[a])),d=function(e){let[t,a]=p.useState(void 0);return(0,tw.useLayoutEffect)(()=>{if(e){a({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let s,r;if(!Array.isArray(t)||!t.length)return;let n=t[0];if("borderBoxSize"in n){let e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;s=t.inlineSize,r=t.blockSize}else s=e.offsetWidth,r=e.offsetHeight;a({width:s,height:r})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}a(void 0)},[e]),t}(t);return p.useEffect(()=>{let e=o.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(c!==a&&t){let r=new Event("click",{bubbles:s});t.call(e,a),e.dispatchEvent(r)}},[c,a,s]),(0,x.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a,...r,tabIndex:-1,ref:i,style:{...r.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function sG(e){return e?"checked":"unchecked"}function sJ({className:e,...t}){return(0,x.jsx)(sV,{"data-slot":"switch",className:(0,eX.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",e),...t,children:(0,x.jsx)(sX,{"data-slot":"switch-thumb",className:(0,eX.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")})})}sY.displayName="SwitchBubbleInput";var sZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let a=eT(`Primitive.${t}`),s=p.forwardRef((e,s)=>{let{asChild:r,...n}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,x.jsx)(r?a:t,{...n,ref:s})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),sQ=p.forwardRef((e,t)=>(0,x.jsx)(sZ.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));function s0({className:e,...t}){return(0,x.jsx)(sQ,{"data-slot":"label",className:(0,eX.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",e),...t})}sQ.displayName="Label";let s1=(0,ew.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"}]]),s2=(0,ew.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"}]]),s5=(0,ew.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"}]]),s3=(0,ew.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"}]]),s4=(0,ew.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"}]]),s6=[{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深空之中,回响永续。祝你考古愉快。"}],s8="echo-nexus-tutorial-v1";function s9({open:e,onOpenChange:t}){let a=ey(e=>e.soundOn),s=ey(e=>e.toggleSound),r=ey(e=>e.hardReset),n=ey(e=>e.ascensions),l=ey(e=>e.totalDecoded),{toast:o}=(0,eQ.useToast)(),[i,c]=(0,p.useState)(!1);return(0,x.jsx)(sT,{open:e,onOpenChange:t,children:(0,x.jsxs)(s$,{className:"bg-gradient-to-br from-slate-900/80 to-black/90 border-white/15",children:[(0,x.jsxs)(sA,{children:[(0,x.jsx)(sz,{children:"设置"}),(0,x.jsx)(sO,{children:"游戏偏好与存档管理"})]}),(0,x.jsxs)("div",{className:"space-y-4 py-2",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-white/10 bg-black/30 p-3",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)(s0,{className:"text-sm",children:"音效反馈"}),(0,x.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"脉冲、解码、探险、飞升等程序化音效"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(e8,{size:"sm",variant:"ghost",className:"h-7 px-2 text-muted-foreground hover:text-foreground",onClick:()=>e3("decodeSuccess"),"aria-label":"试听音效",children:(0,x.jsx)(s5,{className:"h-3.5 w-3.5"})}),(0,x.jsx)(sJ,{checked:a,onCheckedChange:s})]})]}),(0,x.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-white/10 bg-black/30 p-3",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)(s0,{className:"text-sm",children:"新手教程"}),(0,x.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"重新查看 5 步玩法引导"})]}),(0,x.jsxs)(e8,{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(s8)}catch{}window.dispatchEvent(new CustomEvent("echo-nexus-tutorial-restart")),t(!1)},children:[(0,x.jsx)(s3,{className:"h-3.5 w-3.5 mr-1"}),"重看教程"]})]}),(0,x.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/30 p-3 text-xs space-y-1.5",children:[(0,x.jsxs)("div",{className:"flex justify-between",children:[(0,x.jsx)("span",{className:"text-muted-foreground",children:"累计解码"}),(0,x.jsxs)("span",{className:"font-mono",children:[l," 颗"]})]}),(0,x.jsxs)("div",{className:"flex justify-between",children:[(0,x.jsx)("span",{className:"text-muted-foreground",children:"飞升周目"}),(0,x.jsx)("span",{className:"font-mono",children:n})]}),(0,x.jsxs)("div",{className:"flex justify-between",children:[(0,x.jsx)("span",{className:"text-muted-foreground",children:"存档位置"}),(0,x.jsx)("span",{className:"font-mono text-[10px]",children:"浏览器本地"})]})]}),(0,x.jsxs)("div",{className:"rounded-lg border border-rose-500/30 bg-rose-950/20 p-3",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,x.jsx)(ta,{className:"h-4 w-4 text-rose-400"}),(0,x.jsx)("span",{className:"text-sm font-medium text-rose-200",children:"危险操作"})]}),(0,x.jsx)("p",{className:"text-[11px] text-muted-foreground mb-2",children:"清空所有进度,包括记忆图谱与飞升记录,不可恢复。"}),(0,x.jsxs)(e8,{variant:"outline",size:"sm",className:"border-rose-500/40 text-rose-300 hover:bg-rose-500/10",onClick:()=>{i?(r(),c(!1),t(!1),o({title:"存档已清空",description:"一切归零,重新开始。"})):c(!0)},children:[(0,x.jsx)(s1,{className:"h-3.5 w-3.5 mr-1"}),i?"再次点击确认清空":"清空存档"]})]}),(0,x.jsxs)("div",{className:"space-y-1.5",children:[(0,x.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,x.jsx)(s4,{className:"h-3.5 w-3.5"}),"在线游玩(gitea-pages"]}),(0,x.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,x.jsx)(s2,{className:"h-3.5 w-3.5"}),"git.atdunbg.xyz/Super_Z/echo-nexus"]})]})]}),(0,x.jsx)(sD,{children:(0,x.jsx)(e8,{variant:"ghost",onClick:()=>t(!1),children:"关闭"})})]})})}let s7=(0,ew.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"}]]),re=(0,ew.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"}]]),rt=(0,ew.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"}]]),ra=(0,ew.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"}]]),rs=(0,ew.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"}]]),rr=(0,ew.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"}]]),rn=(0,ew.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),rl=(0,ew.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"}]]),ro={combat:{icon:s7,color:"#fb7185",label:"战斗",bg:"rgba(251,113,133,0.15)"},treasure:{icon:ej,color:"#fbbf24",label:"宝藏",bg:"rgba(251,191,36,0.15)"},choice:{icon:re,color:"#a5f3fc",label:"抉择",bg:"rgba(165,243,252,0.15)"},puzzle:{icon:rt,color:"#e879f9",label:"解谜",bg:"rgba(232,121,249,0.15)"},rest:{icon:rs,color:"#34d399",label:"休整",bg:"rgba(52,211,153,0.15)"},boss:{icon:ra,color:"#f43f5e",label:"BOSS",bg:"rgba(244,63,94,0.2)"}};function ri(){let e=ey(e=>e.activeExpedition),t=ey(e=>e.energy),a=ey(e=>e.energyMax),s=ey(e=>e.lastEnergyTick),r=ey(e=>e.expeditionLog),n=ey(e=>e.totalExpeditions),l=ey(e=>e.startExpedition),o=ey(e=>e.resolveCurrentNode),i=ey(e=>e.advanceNode),c=ey(e=>e.abortExpedition),{toast:d}=(0,eQ.useToast)(),[u,h]=(0,p.useState)(null),f=Date.now(),m=45e3,g=t>=a?100:Math.min(100,(f-s)/m*100);if(!e||e.finished)return(0,x.jsxs)("div",{className:"flex flex-col gap-3 h-full",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("h3",{className:"text-sm font-semibold flex items-center gap-1.5",children:[(0,x.jsx)(tc,{className:"h-4 w-4 text-amber-400"}),"遗迹探险"]}),(0,x.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["已探索 ",n," 次"]})]}),(0,x.jsxs)("div",{className:"rounded-xl border border-amber-400/20 bg-amber-950/20 p-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,x.jsx)(rr,{className:"h-3.5 w-3.5 text-amber-400"}),(0,x.jsx)("span",{className:"text-xs text-amber-200",children:"探险能量"})]}),(0,x.jsxs)("span",{className:"text-xs font-mono text-amber-100",children:[t," / ",a]})]}),t<a?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(eY,{value:g,className:"h-1.5 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-amber-500 [&>div]:to-yellow-300"}),(0,x.jsxs)("p",{className:"text-[10px] text-muted-foreground/70 mt-1",children:["下一点能量约 ",Math.ceil((m-(f-s))/1e3),"s 后恢复"]})]}):(0,x.jsx)("p",{className:"text-[10px] text-amber-300/80 mt-0.5",children:"能量已满,可立即出发"})]}),(0,x.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-4 rounded-2xl border border-dashed border-amber-400/20 bg-black/30 p-6 relative overflow-hidden",children:[(0,x.jsx)("div",{className:"absolute -top-10 -right-10 h-32 w-32 rounded-full bg-amber-500/10 blur-2xl"}),(0,x.jsx)("div",{className:"relative",children:(0,x.jsx)("div",{className:"h-20 w-20 rounded-full bg-gradient-to-br from-amber-500/30 to-rose-500/20 flex items-center justify-center mx-auto",style:{boxShadow:"0 0 30px rgba(251,191,36,0.3)"},children:(0,x.jsx)(tc,{className:"h-9 w-9 text-amber-300"})})}),(0,x.jsxs)("div",{className:"text-center space-y-1",children:[(0,x.jsx)("p",{className:"text-sm font-medium text-amber-100",children:"深入以太遗迹"}),(0,x.jsx)("p",{className:"text-[11px] text-muted-foreground/80 max-w-[220px]",children:"派出探险队进入程序化生成的遗迹路径,沿途遭遇战斗、宝藏、抉择与解谜,击败终点 BOSS 获取丰厚奖励。"})]}),(0,x.jsxs)(e8,{onClick:()=>{let e=l();e.ok?(e3("expeditionStart"),d({title:"探险队出发",description:"深入遗迹,谨慎前行。"}),h(null)):d({title:"无法出发",description:e.reason,variant:"destructive"})},disabled:t<1,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,x.jsx)(tc,{className:"h-4 w-4 mr-1.5"}),"出发(消耗 ",1," 能量)"]}),t<1&&(0,x.jsx)("p",{className:"text-[10px] text-rose-300/80",children:"能量不足,请等待恢复"})]}),r.length>0&&(0,x.jsxs)("div",{className:"rounded-xl border border-white/5 bg-black/20 p-2 max-h-32 overflow-y-auto echo-scroll",children:[(0,x.jsx)("div",{className:"text-[10px] text-muted-foreground/60 mb-1 px-1",children:"最近探险记录"}),r.slice(0,4).map((e,t)=>(0,x.jsxs)("div",{className:"text-[10px] text-muted-foreground/70 px-1 py-0.5 border-b border-white/5 last:border-0",children:[(0,x.jsx)("span",{className:"text-amber-300/60",children:""})," ",e.result,e.rewards&&(0,x.jsx)("span",{className:"text-emerald-300/70 ml-1",children:e.rewards})]},t))]})]});let b=e.nodes[e.currentNode],v=ro[b.type],y=v.icon,w=e.hp/e.maxHp*100,j=(e.currentNode+ +!!b.cleared)/e.nodes.length*100;return(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex flex-col gap-2.5 h-full",children:[(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center justify-between gap-2",children:[(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,x.jsx)(tc,{className:"h-3.5 w-3.5 text-amber-400"}),(0,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-xs font-semibold",children:"遗迹探险"}),(0,x.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:["第 ",e.currentNode+1,"/",e.nodes.length," 节点"]})]}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:"探险力"}),(0,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-xs font-mono font-semibold text-amber-300",children:e.power})]})]}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264",children:[(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center justify-between mb-0.5",children:[(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1",children:[(0,x.jsx)(rs,{className:"h-3 w-3 text-rose-400"}),(0,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:"探险队生命"})]}),(0,x.jsxs)("span",{className:`jsx-df1c681cdb543264 text-[10px] font-mono ${w<30?"text-rose-400":"text-foreground"}`,children:[e.hp," / ",e.maxHp]})]}),(0,x.jsx)(eY,{value:w,className:"h-1.5 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-rose-500 [&>div]:to-emerald-400"})]}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 rounded-xl border border-white/10 bg-black/30 p-2.5",children:[(0,x.jsx)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1 overflow-x-auto echo-scroll pb-1",children:e.nodes.map((t,a)=>{let s=ro[t.type],r=s.icon,n=a===e.currentNode,l=t.cleared,o=a<e.currentNode;return(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center shrink-0",children:[(0,x.jsxs)("div",{style:{background:l||o?"rgba(255,255,255,0.04)":s.bg,border:n?`1.5px solid ${s.color}`:"1px solid rgba(255,255,255,0.08)",boxShadow:n?`0 0 12px ${s.color}66`:"none"},title:`${s.label} \xb7 ${t.title}`,className:`jsx-df1c681cdb543264 relative h-9 w-9 rounded-lg flex items-center justify-center transition-all duration-300 ${n?"scale-125":""}`,children:[(0,x.jsx)(r,{style:{color:l||o?"#666":s.color},className:`jsx-df1c681cdb543264 h-4 w-4 ${l||o?"opacity-30":""}`}),l&&(0,x.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,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-[8px] text-white",children:"✓"})})]}),a<e.nodes.length-1&&(0,x.jsx)(rn,{className:`h-3 w-3 mx-0.5 ${o||n&&l?"text-amber-400/60":"text-white/15"}`})]},t.id)})}),(0,x.jsx)("div",{className:"jsx-df1c681cdb543264 mt-1.5",children:(0,x.jsx)(eY,{value:j,className:"h-1 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-amber-500 [&>div]:to-rose-400"})})]}),(0,x.jsxs)("div",{style:{borderColor:`${v.color}44`,background:`linear-gradient(135deg, ${v.color}11, rgba(0,0,0,0.4))`,boxShadow:`0 0 20px ${v.color}22`},className:"jsx-df1c681cdb543264 rounded-xl border p-3 relative overflow-hidden",children:[(0,x.jsx)("div",{style:{background:`${v.color}22`},className:"jsx-df1c681cdb543264 absolute -top-8 -right-8 h-24 w-24 rounded-full blur-2xl"}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 relative",children:[(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-2 mb-1.5",children:[(0,x.jsx)("div",{style:{background:v.bg,border:`1px solid ${v.color}44`},className:"jsx-df1c681cdb543264 h-8 w-8 rounded-lg flex items-center justify-center",children:(0,x.jsx)(y,{style:{color:v.color},className:"jsx-df1c681cdb543264 h-4 w-4"})}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264",children:[(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,x.jsx)("span",{style:{background:v.bg,color:v.color},className:"jsx-df1c681cdb543264 text-[10px] font-mono px-1.5 py-0.5 rounded",children:v.label}),"combat"===b.type&&(0,x.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:["胜率 ",Math.round(100*er(e.power,b.difficulty)),"%"]}),b.difficulty>0&&(0,x.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground/60",children:["难度 ",b.difficulty]})]}),(0,x.jsx)("h4",{style:{color:v.color},className:"jsx-df1c681cdb543264 text-sm font-semibold mt-0.5",children:b.title})]})]}),(0,x.jsx)("p",{className:"jsx-df1c681cdb543264 text-[11px] text-muted-foreground/90 leading-relaxed",children:b.desc}),u&&(0,x.jsx)("div",{className:"jsx-df1c681cdb543264 mt-2 px-2 py-1.5 rounded-lg bg-black/40 border border-white/10",children:(0,x.jsx)("p",{className:"jsx-df1c681cdb543264 text-[11px] text-foreground/90",children:u})})]})]}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[b.cleared?e.currentNode<e.nodes.length-1?(0,x.jsxs)(e8,{onClick:()=>{i(),h(null)},className:"flex-1 h-8",variant:"outline",children:[(0,x.jsx)(rn,{className:"h-3.5 w-3.5 mr-1"}),"前进"]}):(0,x.jsx)("div",{className:"jsx-df1c681cdb543264 flex-1 text-center text-xs text-emerald-300 py-1.5",children:"探险已完成 ✓"}):(0,x.jsxs)(e8,{onClick:()=>{let e=o();e&&(h(e.log),e.ended?"victory"===e.endReason?e3("expeditionVictory"):e3("expeditionDefeat"):e3("expeditionNode"),d({title:e.ended?"victory"===e.endReason?"✦ 探险胜利!":"探险失败":"节点结算",description:e.log,variant:"defeat"===e.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,x.jsx)(e7,{className:"h-3.5 w-3.5 mr-1"}),"探索节点"]}),(0,x.jsx)(e8,{onClick:()=>{c(),d({title:"探险队撤退",description:"保留已获奖励,安全返回。"}),h(null)},variant:"ghost",size:"sm",className:"h-8 px-2 text-muted-foreground hover:text-rose-300",children:(0,x.jsx)(rl,{className:"h-3.5 w-3.5"})})]}),(0,x.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-2 text-[10px] px-1",children:[(0,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-muted-foreground/60",children:"本次已获:"}),e.rewards.crystals>0&&(0,x.jsxs)("span",{className:"jsx-df1c681cdb543264 text-emerald-300",children:[$(e.rewards.crystals),"晶体"]}),e.rewards.insights>0&&(0,x.jsxs)("span",{className:"jsx-df1c681cdb543264 text-amber-300",children:[e.rewards.insights,"洞见"]}),e.rewards.contact>0&&(0,x.jsxs)("span",{className:"jsx-df1c681cdb543264 text-fuchsia-300",children:[e.rewards.contact.toFixed(1),"接触"]}),0===e.rewards.crystals&&0===e.rewards.insights&&(0,x.jsx)("span",{className:"jsx-df1c681cdb543264 text-muted-foreground/40",children:"暂无"})]}),(0,x.jsx)(eZ.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 rc=(0,ew.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"}]]);function rd(){let e=ey(e=>e.achievements),t=Object.values(e).filter(Boolean).length,a=D(e);return(0,x.jsxs)("div",{className:"jsx-7e1dc0c087b6bd3d flex flex-col gap-2.5 h-full",children:[(0,x.jsxs)("div",{className:"jsx-7e1dc0c087b6bd3d flex items-center justify-between",children:[(0,x.jsxs)("h3",{className:"jsx-7e1dc0c087b6bd3d text-sm font-semibold flex items-center gap-1.5",children:[(0,x.jsx)(rc,{className:"h-4 w-4 text-amber-400"}),"成就"]}),(0,x.jsxs)("span",{className:"jsx-7e1dc0c087b6bd3d text-[10px] text-muted-foreground font-mono",children:[t," / ",A.length]})]}),(0,x.jsxs)("div",{className:"jsx-7e1dc0c087b6bd3d rounded-lg border border-amber-400/20 bg-amber-950/20 px-2.5 py-1.5 flex items-center gap-3 text-[10px]",children:[(0,x.jsx)("span",{className:"jsx-7e1dc0c087b6bd3d text-amber-300/80",children:"永久加成"}),a.crystalsPerSecPct>0&&(0,x.jsxs)("span",{className:"jsx-7e1dc0c087b6bd3d text-emerald-300",children:["产能 +",a.crystalsPerSecPct,"%"]}),a.insightPct>0&&(0,x.jsxs)("span",{className:"jsx-7e1dc0c087b6bd3d text-fuchsia-300",children:["洞见 +",a.insightPct,"%"]}),0===a.crystalsPerSecPct&&0===a.insightPct&&(0,x.jsx)("span",{className:"jsx-7e1dc0c087b6bd3d text-muted-foreground/60",children:"暂无(达成成就解锁)"})]}),(0,x.jsx)("div",{className:"jsx-7e1dc0c087b6bd3d flex-1 grid grid-cols-1 sm:grid-cols-2 gap-1.5 content-start overflow-y-auto echo-scroll pr-1 max-h-[300px]",children:A.map(t=>{let a=!!e[t.id];return(0,x.jsxs)("div",{style:a?{boxShadow:`inset 0 0 16px ${t.color}11`}:void 0,className:`jsx-7e1dc0c087b6bd3d relative rounded-lg border px-2.5 py-2 transition-all duration-300 overflow-hidden ${a?"border-white/15 bg-black/30":"border-white/5 bg-black/15 opacity-60"}`,children:[a&&(0,x.jsx)("div",{style:{background:t.color},className:"jsx-7e1dc0c087b6bd3d absolute -top-6 -right-6 h-16 w-16 rounded-full blur-2xl opacity-40"}),(0,x.jsxs)("div",{className:"jsx-7e1dc0c087b6bd3d relative flex items-start gap-2",children:[(0,x.jsx)("div",{style:{background:a?`${t.color}22`:"rgba(255,255,255,0.04)",border:`1px solid ${a?t.color+"55":"rgba(255,255,255,0.08)"}`,color:a?t.color:"#666",boxShadow:a?`0 0 10px ${t.color}33`:"none"},className:"jsx-7e1dc0c087b6bd3d shrink-0 h-8 w-8 rounded-lg flex items-center justify-center text-base",children:a?t.icon:(0,x.jsx)(tu,{className:"h-3.5 w-3.5"})}),(0,x.jsxs)("div",{className:"jsx-7e1dc0c087b6bd3d min-w-0 flex-1",children:[(0,x.jsx)("div",{style:{color:a?t.color:"rgba(255,255,255,0.5)"},className:"jsx-7e1dc0c087b6bd3d text-[11px] font-semibold truncate",children:t.name}),(0,x.jsx)("div",{className:"jsx-7e1dc0c087b6bd3d text-[10px] text-muted-foreground/80 leading-tight mt-0.5",children:t.desc}),a&&(0,x.jsxs)("div",{style:{color:t.color+"cc"},className:"jsx-7e1dc0c087b6bd3d text-[9px] mt-1 font-mono",children:["✦ ",t.rewardText]})]})]})]},t.id)})}),(0,x.jsx)(eZ.default,{id:"7e1dc0c087b6bd3d",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}"})]})}function ru(){let e=ey(e=>e._achievementQueue),t=ey(e=>e.consumeAchievementQueue),{toast:a}=(0,eQ.useToast)();return(0,p.useEffect)(()=>{if(0!==e.length)for(let e of t())e3("achievement"),a({title:`🏆 成就解锁:${e.name}`,description:`${e.desc} 奖励:${e.rewardText}`})},[e,t,a]),null}function rh(){let e=ey(e=>e.constellation??[]),t=(0,p.useRef)(null),a=(0,p.useRef)(null),[s,r]=(0,p.useState)({w:360,h:360}),[n,l]=(0,p.useState)(null),o=(0,p.useMemo)(()=>new Set(e),[e]);(0,p.useEffect)(()=>{let e=a.current;if(!e)return;let t=new ResizeObserver(()=>{let t=e.getBoundingClientRect();r({w:Math.max(280,t.width),h:Math.max(280,Math.min(420,t.width))})});return t.observe(e),()=>t.disconnect()},[]);let i=(0,p.useMemo)(()=>{let e=s.w/2;return{cx:e,cy:s.h/2,radius:.32*Math.min(s.w,s.h)}},[s]),c=(0,p.useMemo)(()=>{var e,t,a;return(e=i.cx,t=i.cy,a=i.radius,["mining","decoding","expedition","contact","economy","cosmic"].map((s,r)=>{let n=Math.PI/3*r-Math.PI/2;return{category:s,cx:e+a*Math.cos(n),cy:t+a*Math.sin(n),meta:F[s]}})).map(e=>{let t=function(e,t,a,s=1){return L.filter(t=>t.category===e).sort((e,t)=>e.order-t.order).map((e,r)=>({perk:e,x:t+(0===r?0:1===r?-18*s:18*s),y:a+(0===r?-22*s:14*s)}))}(e.category,e.cx,e.cy,1);return{...e,stars:t}})},[i]);(0,p.useEffect)(()=>{let a=t.current;if(!a)return;let r=a.getContext("2d");if(!r)return;let n=window.devicePixelRatio||1;a.width=s.w*n,a.height=s.h*n,a.style.width=`${s.w}px`,a.style.height=`${s.h}px`,r.setTransform(n,0,0,n,0,0);let l=0,d=performance.now(),u=t=>{let a=(t-d)/1e3;r.clearRect(0,0,s.w,s.h);let n=r.createRadialGradient(i.cx,i.cy,0,i.cx,i.cy,1.6*i.radius);n.addColorStop(0,"rgba(40,30,80,0.18)"),n.addColorStop(1,"rgba(5,4,16,0)"),r.fillStyle=n,r.fillRect(0,0,s.w,s.h),r.save(),r.translate(i.cx,i.cy);let h=6+1.5*Math.sin(1.5*a),f=r.createRadialGradient(0,0,0,0,0,3*h);for(let t of(f.addColorStop(0,"rgba(232,121,249,0.9)"),f.addColorStop(.4,"rgba(232,121,249,0.3)"),f.addColorStop(1,"rgba(232,121,249,0)"),r.fillStyle=f,r.beginPath(),r.arc(0,0,3*h,0,2*Math.PI),r.fill(),r.fillStyle="#fce7ff",r.beginPath(),r.arc(0,0,.6*h,0,2*Math.PI),r.fill(),r.restore(),c))W(e,t.category)>0&&(r.save(),r.strokeStyle=t.meta.glow,r.lineWidth=1,r.setLineDash([2,4]),r.globalAlpha=.4+.1*Math.sin(2*a+t.cx),r.beginPath(),r.moveTo(i.cx,i.cy),r.lineTo(t.cx,t.cy),r.stroke(),r.restore());for(let t of c){let s=W(e,t.category);r.save(),r.font="10px ui-monospace, monospace",r.textAlign="center",r.fillStyle=s>0?t.meta.hex:"rgba(148,163,184,0.5)",r.globalAlpha=.85,r.fillText(t.meta.name,t.cx,t.cy+38),r.restore();let n=t.stars.filter(e=>o.has(e.perk.id));for(let e of(n.length>=2&&(r.save(),r.strokeStyle=t.meta.glow,r.lineWidth=1.5,r.globalAlpha=.6,r.beginPath(),n.forEach((e,t)=>{0===t?r.moveTo(e.x,e.y):r.lineTo(e.x,e.y)}),r.stroke(),r.restore()),t.stars)){let s=o.has(e.perk.id);r.save(),r.translate(e.x,e.y);let n=s?.85+.15*Math.sin(3*a+.1*e.x):.3,l=s?10:5,i=r.createRadialGradient(0,0,0,0,0,l);if(i.addColorStop(0,s?t.meta.glow:"rgba(100,116,139,0.2)"),i.addColorStop(1,"rgba(0,0,0,0)"),r.fillStyle=i,r.globalAlpha=n,r.beginPath(),r.arc(0,0,l,0,2*Math.PI),r.fill(),r.globalAlpha=s?1:.4,r.fillStyle=s?t.meta.hex:"#475569",r.beginPath(),r.arc(0,0,s?3.5:2,0,2*Math.PI),r.fill(),s){r.strokeStyle=t.meta.hex,r.globalAlpha=.7*n,r.lineWidth=.8;let s=7+1.5*Math.sin(4*a+.1*e.y);r.beginPath(),r.moveTo(-s,0),r.lineTo(s,0),r.moveTo(0,-s),r.lineTo(0,s),r.stroke()}r.restore()}}l=requestAnimationFrame(u)};return l=requestAnimationFrame(u),()=>cancelAnimationFrame(l)},[c,i,s,e,o]);let d=q(e);return(0,x.jsxs)("div",{ref:a,className:"flex flex-col gap-2 min-h-0 h-full",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between text-[11px] px-1",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,x.jsx)("span",{className:"text-fuchsia-300",children:"✦"}),(0,x.jsx)("span",{className:"text-muted-foreground",children:"星图天赋"}),(0,x.jsxs)("span",{className:"font-mono text-foreground",children:[d.unlocked,"/",d.total]})]}),(0,x.jsx)("span",{className:"text-muted-foreground/60 text-[10px]",children:"每次飞升可解锁 1 个"})]}),(0,x.jsxs)("div",{className:"relative rounded-xl bg-black/30 border border-white/5 overflow-hidden flex-shrink-0",children:[(0,x.jsx)("canvas",{ref:t,onMouseMove:e=>{let a=t.current;if(!a)return;let s=a.getBoundingClientRect(),r=e.clientX-s.left,n=e.clientY-s.top,i=null,d=14;for(let e of c)for(let t of e.stars){let e=Math.hypot(t.x-r,t.y-n);e<d&&(d=e,i={perk:t.perk,x:t.x,y:t.y,unlocked:o.has(t.perk.id)})}l(i)},onMouseLeave:()=>l(null),className:"block cursor-pointer"}),n&&(0,x.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(n.x+12,s.w-200),top:Math.max(0,n.y-40)},children:[(0,x.jsxs)("div",{className:"font-bold mb-0.5",style:{color:F[n.perk.category].hex},children:[n.unlocked?"★ ":"☆ ",n.perk.name]}),(0,x.jsx)("div",{className:"text-muted-foreground",children:n.perk.desc}),(0,x.jsxs)("div",{className:"text-muted-foreground/60 mt-0.5",children:[F[n.perk.category].name," · 序",n.perk.order]})]})]}),(0,x.jsx)("div",{className:"grid grid-cols-3 gap-1 text-[10px]",children:Object.keys(F).map(t=>{let a=F[t],s=W(e,t),r=L.filter(e=>e.category===t).length;return(0,x.jsxs)("div",{className:"rounded-md bg-black/25 border border-white/5 px-1.5 py-1 flex items-center gap-1",style:s>0?{borderColor:`${a.hex}40`}:void 0,children:[(0,x.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full flex-shrink-0",style:{background:a.hex,boxShadow:s>0?`0 0 4px ${a.hex}`:"none"}}),(0,x.jsx)("span",{className:"text-muted-foreground truncate",children:a.name}),(0,x.jsxs)("span",{className:"ml-auto font-mono",style:{color:s>0?a.hex:"rgba(148,163,184,0.5)"},children:[s,"/",r]})]},t)})}),(0,x.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1 echo-scrollbar",children:0===e.length?(0,x.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,x.jsx)("div",{className:"mb-1 text-fuchsia-300/80",children:"✦"}),"尚未解锁任何天赋。",(0,x.jsx)("br",{}),"累积接触进度至 100%,发起「飞升」即可在 3 个随机天赋中选 1。"]}):(0,x.jsx)("div",{className:"flex flex-col gap-1",children:e.map(e=>{let t=B(e);if(!t)return null;let a=F[t.category];return(0,x.jsxs)("div",{className:"rounded-md bg-black/25 border px-2 py-1.5 flex items-center gap-2 text-[11px]",style:{borderColor:`${a.hex}30`},children:[(0,x.jsx)("span",{className:"inline-block h-2 w-2 rounded-full flex-shrink-0",style:{background:a.hex,boxShadow:`0 0 6px ${a.hex}`}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-foreground truncate",children:t.name}),(0,x.jsx)("div",{className:"text-muted-foreground/70 text-[10px] truncate",children:t.desc})]}),(0,x.jsx)("span",{className:"text-[9px] text-muted-foreground/50 font-mono",children:a.name})]},e)})})})]})}let rf=(0,ew.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"}]]);function rm({open:e,onOpenChange:t}){let a=ey(e=>e.pendingPerkChoices),s=ey(e=>e.constellation??[]),r=ey(e=>e.chooseConstellationPerk),n=ey(e=>e.rerollPerkChoices),[l,o]=(0,p.useState)(null);if((0,p.useEffect)(()=>{e||o(null)},[e]),(0,p.useEffect)(()=>{a&&a.length>0&&!e&&t(!0),(!a||0===a.length)&&e&&t(!1)},[a,e,t]),!a||0===a.length)return null;let i=q(s);return(0,x.jsx)(sT,{open:e,onOpenChange:t,children:(0,x.jsxs)(s$,{className:"max-w-md border-fuchsia-400/30 bg-gradient-to-br from-[#0a0820]/95 to-[#1a0f30]/95 backdrop-blur-md",children:[(0,x.jsxs)(sA,{children:[(0,x.jsxs)(sz,{className:"flex items-center gap-2 text-fuchsia-200",children:[(0,x.jsx)(e7,{className:"h-4 w-4"}),"星图觉醒"]}),(0,x.jsxs)(sO,{className:"text-muted-foreground text-xs",children:["飞升带来的回响在星图上凝聚。从 3 道星辉中选择 1 道,永久获得其加成。",(0,x.jsx)("br",{}),(0,x.jsxs)("span",{className:"text-fuchsia-300/80",children:["当前已觉醒 ",i.unlocked,"/",i.total]})]})]}),(0,x.jsx)("div",{className:"grid grid-cols-1 gap-2 mt-1",children:a.map(e=>{let a=B(e);if(!a)return null;let s=F[a.category],n=l===e;return(0,x.jsxs)("button",{onClick:()=>{o(e),r(e)&&(e3("constellation"),setTimeout(()=>t(!1),500))},disabled:!!l,className:`group relative w-full text-left rounded-lg border px-3 py-2.5 transition-all overflow-hidden ${n?"border-fuchsia-400/80 bg-fuchsia-500/10 scale-[1.02]":l?"border-white/5 opacity-40":"border-white/10 hover:border-white/30 hover:bg-white/5"}`,style:{boxShadow:n?`0 0 20px ${s.glow}`:void 0},children:[(0,x.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-1",style:{background:s.hex,boxShadow:`0 0 8px ${s.hex}`}}),(0,x.jsxs)("div",{className:"pl-2 flex items-start gap-3",children:[(0,x.jsx)("div",{className:"flex-shrink-0 mt-0.5 h-8 w-8 rounded-full flex items-center justify-center text-sm font-bold",style:{background:`${s.hex}20`,color:s.hex,border:`1px solid ${s.hex}40`},children:s.name.charAt(0)}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,x.jsx)("span",{className:"text-sm font-bold text-foreground",children:a.name}),(0,x.jsx)("span",{className:"text-[9px] px-1 py-0.5 rounded font-mono",style:{background:`${s.hex}20`,color:s.hex},children:s.name})]}),(0,x.jsx)("div",{className:"text-[11px] text-muted-foreground",children:a.desc})]})]}),n&&(0,x.jsx)("div",{className:"absolute inset-0 pointer-events-none",children:[...Array(8)].map((e,t)=>(0,x.jsx)("span",{className:"absolute h-1 w-1 rounded-full animate-ping",style:{background:s.hex,left:`${20+8*t}%`,top:`${30+t%3*20}%`,animationDelay:`${50*t}ms`,animationDuration:"800ms"}},t))})]},e)})}),(0,x.jsxs)("div",{className:"flex items-center justify-between mt-3 pt-2 border-t border-white/5",children:[(0,x.jsxs)(e8,{variant:"ghost",size:"sm",onClick:()=>{n(),e3("uiClick")},disabled:!!l,className:"text-muted-foreground hover:text-foreground h-7 text-[11px]",children:[(0,x.jsx)(rf,{className:"h-3 w-3 mr-1"}),"重新抽取"]}),(0,x.jsx)("span",{className:"text-[10px] text-muted-foreground/60",children:"✦ 选择后永久保留,跨周目生效"})]})]})})}let rx=(0,ew.default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),rp=(0,ew.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"}]]);function rg({open:e,onOpenChange:t}){let a=ey(e=>e.chronicle??[]),s=ey(e=>e.ascensions??0),r=ey(e=>e.bossKills??0),n=ey(e=>e.starTidesEncountered??[]),l=[...a].reverse();return(0,p.useEffect)(()=>{e&&e3("chronicleOpen")},[e]),(0,x.jsx)(sT,{open:e,onOpenChange:t,children:(0,x.jsxs)(s$,{className:"bg-gradient-to-br from-violet-950/80 via-black/90 to-fuchsia-950/60 border-fuchsia-400/30 max-w-3xl max-h-[88vh] overflow-hidden flex flex-col p-0 gap-0",children:[(0,x.jsx)("div",{className:"h-1 bg-gradient-to-r from-emerald-500 via-fuchsia-500 to-amber-500 opacity-70"}),(0,x.jsxs)(sA,{className:"px-6 pt-5 pb-3 space-y-1",children:[(0,x.jsxs)(sz,{className:"flex items-center gap-2 text-fuchsia-100 text-xl",children:[(0,x.jsx)(td,{className:"h-5 w-5 text-fuchsia-300"}),"回响编年史",(0,x.jsx)("span",{className:"text-[11px] font-normal text-fuchsia-300/60 ml-2",children:"Chronicle of Echoes"})]}),(0,x.jsx)(sO,{className:"text-fuchsia-200/60 text-xs",children:"每一次飞升都在深空留下回响。这里铭刻着跨越维度的全部纪元。"}),(0,x.jsxs)("div",{className:"grid grid-cols-3 gap-2 pt-2",children:[(0,x.jsx)(rb,{icon:(0,x.jsx)(e7,{className:"h-3 w-3"}),label:"飞升次数",value:s,color:"#e879f9"}),(0,x.jsx)(rb,{icon:(0,x.jsx)(rc,{className:"h-3 w-3"}),label:"BOSS 击破",value:r,color:"#fbbf24"}),(0,x.jsx)(rb,{icon:(0,x.jsx)(ek,{className:"h-3 w-3"}),label:"星潮亲历",value:n.length,color:"#34d399"})]})]}),(0,x.jsx)("div",{className:"flex-1 overflow-y-auto px-6 pb-6 echo-scroll",children:0===l.length?(0,x.jsx)(rv,{ascensions:s}):(0,x.jsxs)("div",{className:"relative",children:[(0,x.jsx)("div",{className:"absolute left-[27px] top-2 bottom-2 w-px bg-gradient-to-b from-fuchsia-400/40 via-violet-400/30 to-transparent"}),(0,x.jsx)("div",{className:"space-y-4",children:l.map((e,t)=>(0,x.jsx)(ry,{entry:e,isLatest:0===t,index:t},`${e.ascensionNumber}-${e.timestamp}`))})]})})]})})}function rb({icon:e,label:t,value:a,color:s}){return(0,x.jsxs)("div",{className:"rounded-md border px-3 py-2 flex items-center gap-2",style:{borderColor:`${s}33`,background:`${s}0d`},children:[(0,x.jsx)("div",{style:{color:s},children:e}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-[10px] text-muted-foreground truncate",children:t}),(0,x.jsx)("div",{className:"text-sm font-mono font-bold",style:{color:s},children:a})]})]})}function rv({ascensions:e}){let t=e>0;return(0,x.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[(0,x.jsxs)("div",{className:"relative mb-4",children:[(0,x.jsx)("div",{className:"absolute inset-0 blur-xl bg-fuchsia-500/20 rounded-full animate-pulse"}),(0,x.jsx)(td,{className:"relative h-12 w-12 text-fuchsia-400/50"})]}),t?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"text-fuchsia-200/70 text-sm",children:["已飞升 ",e," 次,但编年史尚无记录"]}),(0,x.jsx)("div",{className:"text-fuchsia-300/40 text-[11px] mt-2 max-w-xs",children:"编年史于 v0.4 启用。下一次飞升将自动铭刻新纪元,开启永恒叙事时间轴。"})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"text-fuchsia-200/70 text-sm",children:"尚未飞升,等待第一次跨越维度"}),(0,x.jsx)("div",{className:"text-fuchsia-300/40 text-[11px] mt-2 max-w-xs",children:"当接触进度满溢时,发起飞升将开启新周目,并在编年史中铭刻一段永恒回响。"})]})]})}function ry({entry:e,isLatest:t,index:a}){let s,r,n,l,o,i=["#34d399","#fb7185","#fbbf24","#e879f9","#fcd34d"][(e.ascensionNumber-1)%5];return(0,x.jsxs)("div",{className:"relative pl-16 animate-in fade-in slide-in-from-bottom-2 duration-500",style:{animationDelay:`${80*a}ms`},children:[(0,x.jsxs)("div",{className:"absolute left-[19px] top-3 z-10",children:[(0,x.jsx)("div",{className:"w-4 h-4 rounded-full border-2 flex items-center justify-center",style:{borderColor:i,background:`${i}22`,boxShadow:`0 0 12px ${i}88, 0 0 24px ${i}44`},children:(0,x.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{background:i}})}),t&&(0,x.jsx)("div",{className:"absolute inset-0 rounded-full animate-ping",style:{background:`${i}33`}})]}),(0,x.jsxs)("div",{className:"rounded-lg border bg-black/40 backdrop-blur-sm overflow-hidden transition-all hover:scale-[1.005] hover:border-fuchsia-400/40",style:{borderColor:`${i}33`,boxShadow:t?`0 0 0 1px ${i}22, 0 4px 24px ${i}22`:"0 2px 8px rgba(0,0,0,0.4)"},children:[(0,x.jsx)("div",{className:"px-4 py-3 flex items-center justify-between border-b",style:{background:`linear-gradient(135deg, ${i}11, transparent)`,borderColor:`${i}22`},children:(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,x.jsxs)("span",{className:"text-[10px] font-mono font-bold px-1.5 py-0.5 rounded",style:{color:i,background:`${i}22`},children:["#",String(e.ascensionNumber).padStart(2,"0")]}),(0,x.jsx)("h4",{className:"text-sm font-bold tracking-wide truncate",style:{color:i,textShadow:`0 0 12px ${i}55`},children:e.epochName})]}),(0,x.jsxs)("div",{className:"flex items-center gap-2 mt-1 text-[10px] text-muted-foreground/80",children:[(0,x.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,x.jsx)(rx,{className:"h-2.5 w-2.5"}),(r=String((s=new Date(e.timestamp)).getMonth()+1).padStart(2,"0"),n=String(s.getDate()).padStart(2,"0"),l=String(s.getHours()).padStart(2,"0"),o=String(s.getMinutes()).padStart(2,"0"),`${r}-${n} ${l}:${o}`)]}),(0,x.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,x.jsx)("span",{children:function(e){if(e<60)return`${e}秒`;let t=Math.floor(e/60),a=e%60;if(t<60)return a>0?`${t}${a}秒`:`${t}分钟`;let s=Math.floor(t/60);return`${s}小时${t%60}分`}(e.durationSec)}),t&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,x.jsx)("span",{className:"text-fuchsia-300 font-bold",children:"最新"})]})]})]})}),(0,x.jsx)("div",{className:"px-4 py-3 text-[12px] leading-relaxed text-fuchsia-100/75 font-serif",children:Y({ascensionNumber:e.ascensionNumber,epochName:e.epochName,durationSec:e.durationSec,techsThisRun:e.summary.techsUnlocked,expThisRun:e.summary.expeditionsCompleted,bossKillsThisRun:e.summary.bossKills,decodedThisRun:e.summary.crystalsDecodedThisRun,newTides:e.tidesThisRun||[],perksThisAscension:e.perksThisAscension||[],blueprintsAfter:e.summary.blueprintsAfter,milestones:e.milestones||[]})}),(0,x.jsxs)("div",{className:"px-4 pb-3 flex flex-wrap gap-1.5",children:[(0,x.jsx)(rw,{icon:(0,x.jsx)(rp,{className:"h-2.5 w-2.5"}),label:"解码",value:e.summary.crystalsDecodedThisRun,color:"#fb7185"}),(0,x.jsx)(rw,{icon:(0,x.jsx)(e7,{className:"h-2.5 w-2.5"}),label:"技术",value:e.summary.techsUnlocked,color:"#34d399"}),(0,x.jsx)(rw,{icon:(0,x.jsx)(s7,{className:"h-2.5 w-2.5"}),label:"探险",value:e.summary.expeditionsCompleted,color:"#fbbf24"}),e.summary.bossKills>0&&(0,x.jsx)(rw,{icon:(0,x.jsx)(rc,{className:"h-2.5 w-2.5"}),label:"BOSS",value:e.summary.bossKills,color:"#e879f9"}),(0,x.jsx)(rw,{icon:(0,x.jsx)(ek,{className:"h-2.5 w-2.5"}),label:"星潮",value:e.tidesThisRun.length,color:"#94a3b8"}),(0,x.jsx)(rw,{icon:(0,x.jsx)(sI,{className:"h-2.5 w-2.5"}),label:"星图",value:e.summary.constellationsTotal,color:"#fcd34d"})]}),e.tidesThisRun.length>0&&(0,x.jsx)("div",{className:"px-4 pb-2 flex flex-wrap gap-1",children:e.tidesThisRun.map(e=>{let t,a=(t=z[e.startsWith("tide_")?e.slice(5):e])?{name:t.name,color:t.color}:{name:e,color:"#94a3b8"};return(0,x.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded border",style:{color:a.color,borderColor:`${a.color}44`,background:`${a.color}11`},children:["✦ ",a.name]},e)})}),e.perksThisAscension.length>0&&(0,x.jsx)("div",{className:"px-4 pb-2 flex flex-wrap gap-1",children:e.perksThisAscension.map(e=>{let t=B(e),a=t?.category||"cosmic",s=F[a]?.hex||"#94a3b8",r=F[a]?.name||a,n=V[e]||e;return(0,x.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded border inline-flex items-center gap-1",style:{color:s,borderColor:`${s}55`,background:`${s}11`},title:`${r} \xb7 ${t?.desc||""}`,children:[(0,x.jsx)(rr,{className:"h-2 w-2"}),n]},e)})}),e.milestones.length>0&&(0,x.jsx)("div",{className:"px-4 py-2 border-t flex flex-wrap gap-1.5",style:{borderColor:`${i}22`,background:`${i}08`},children:e.milestones.map((e,t)=>(0,x.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-fuchsia-500/15 text-fuchsia-200 border border-fuchsia-400/30 inline-flex items-center gap-1",children:[(0,x.jsx)(e7,{className:"h-2 w-2"}),e]},t))})]})]})}function rw({icon:e,label:t,value:a,color:s}){return(0,x.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded inline-flex items-center gap-1 font-mono",style:{color:s,background:`${s}11`,border:`1px solid ${s}22`},children:[e,(0,x.jsx)("span",{className:"opacity-70",children:t}),(0,x.jsx)("span",{className:"font-bold",children:a})]})}let rj=(0,ew.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"}]]),rN=(0,ew.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"}]]),rk=(0,ew.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"}]]),rS=(0,ew.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"}]]),rM=["routine","anomaly","singular"];function r_(){ey(e=>e.insights);let e=ey(e=>e.grantBeaconReward),{toast:t}=(0,eQ.useToast)(),[a,s]=(0,p.useState)(null),[r,n]=(0,p.useState)(null),[l,o]=(0,p.useState)([]),[i,c]=(0,p.useState)("00:00:00"),[d,u]=(0,p.useState)(Date.now());(0,p.useEffect)(()=>{s(ei()),n(eh()),o(eu());let e=setInterval(()=>{u(Date.now()),n(eh()),s(e=>e??ei())},1e3);return()=>clearInterval(e)},[]),(0,p.useEffect)(()=>{let e,t,a,s;c((t=String(Math.floor((e=Math.max(0,Math.floor(function(e=new Date){return Math.max(0,Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+1,0,0,0)-e.getTime())}(new Date(d))/1e3)))/3600)).padStart(2,"0"),a=String(Math.floor(e%3600/60)).padStart(2,"0"),s=String(e%60).padStart(2,"0"),`${t}:${a}:${s}`))},[d]);let h=(0,p.useCallback)(()=>{if(!a||!r||null===r.completedAt||r.claimed)return;let s=function(e,t){var a,s,r;let n,l,o,i,c;if(t.claimed||null===t.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:eu()};let d=(a=t.progress,s=t.durationSec,n=Math.min(1,a/e.goal),l=en[e.difficulty].mult,o=n>=1&&s>0?Math.max(0,500-.5*s):0,Math.round(1e3*n*l+o)),u=(r={timestamp:Date.now(),dateKey:e.dateKey,challenge:e.type,difficulty:e.difficulty,progress:t.progress/e.goal,score:d,durationSec:t.durationSec},(i=eu()).push(r),i.sort((e,t)=>t.score-e.score),c=i.slice(0,20),"u">typeof localStorage&&localStorage.setItem(ec,JSON.stringify(c)),c);return ef({...t,claimed:!0}),{rewardInsight:e.rewardInsight,rewardContact:e.rewardContact,score:d,leaderboard:u}}(a,r);o(s.leaderboard),n(eh()),e(s.rewardInsight,s.rewardContact),e3("achievement"),t({title:"✦ 信标奖励已领取",description:`+${s.rewardInsight} 洞见 \xb7 +${s.rewardContact.toFixed(1)} 接触 \xb7 得分 ${s.score}`})},[a,r,t,e]);if(!a||!r)return(0,x.jsx)("div",{className:"flex items-center justify-center h-full text-xs text-muted-foreground/60",children:"正在校准深空信标…"});let f=en[a.difficulty],m=el[a.type],g=Math.min(100,r.progress/a.goal*100),b=null!==r.completedAt,v=r.claimed,y=b&&!v;return(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex flex-col gap-2.5 h-full overflow-y-auto echo-scroll pr-0.5",children:[(0,x.jsx)(eZ.default,{id:"d680841b243a9849",dynamic:[f.glow,f.glow,f.glow,f.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 ${f.glow},inset 0 0 12px ${f.glow}}50%{box-shadow:0 0 32px ${f.glow},inset 0 0 20px ${f.glow}}}`}),(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center justify-between",children:[(0,x.jsxs)("h3",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-sm font-semibold flex items-center gap-1.5",children:[(0,x.jsx)(rj,{className:"h-4 w-4 text-fuchsia-400"}),"深空信标"]}),(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center gap-1 text-[10px] text-muted-foreground/70",children:[(0,x.jsx)(rx,{className:"h-3 w-3"}),"次日重置",(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" font-mono text-fuchsia-300/90",children:i})]})]}),(0,x.jsxs)("div",{style:{borderColor:`${f.color}55`,background:`linear-gradient(135deg, ${f.color}1f, rgba(0,0,0,0.45))`,animation:b?"none":"beacon-glow 3s ease-in-out infinite"},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[!b&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{style:{border:`1.5px solid ${f.color}`,animation:"beacon-pulse-ring 2.5s ease-out infinite"},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" absolute top-4 right-4 h-10 w-10 rounded-full pointer-events-none"}),(0,x.jsx)("div",{style:{border:`1.5px solid ${f.color}`,animation:"beacon-pulse-ring 2.5s ease-out infinite 1.25s"},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" absolute top-4 right-4 h-10 w-10 rounded-full pointer-events-none"})]}),(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" relative",children:[(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,x.jsxs)("span",{style:{background:`${f.color}22`,color:f.color,border:`1px solid ${f.color}55`},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]]),children:f.icon}),f.label]}),(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[m.icon," ",m.label]}),b&&(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.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,x.jsx)(e7,{className:"h-2.5 w-2.5"})," 已完成"]})]}),(0,x.jsx)("h4",{style:{color:f.color,textShadow:`0 0 10px ${f.glow}`},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-sm font-semibold mb-1",children:a.title}),(0,x.jsx)("p",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-[11px] text-muted-foreground/80 leading-relaxed mb-2.5",children:a.desc}),(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" mb-2",children:[(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center justify-between mb-1",children:[(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,x.jsxs)("span",{style:{color:f.color},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(r.progress,a.goal)," / ",a.goal," ",m.unit]})]}),(0,x.jsx)(eY,{value:g,className:"h-2 bg-black/40",style:{"--progress-color":f.color}})]}),(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center justify-between gap-2",children:[(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center gap-2 text-[10px]",children:[(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-muted-foreground/60",children:"奖励:"}),a.rewardInsight>0&&(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-amber-300 font-mono",children:["+",$(a.rewardInsight),"洞见"]}),(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-fuchsia-300 font-mono",children:["+",a.rewardContact.toFixed(1),"接触"]})]}),(0,x.jsx)(e8,{onClick:h,disabled:!y,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:y?`linear-gradient(90deg, ${f.color}, ${f.color}cc)`:void 0},children:v?"已领取":y?"领取奖励":b?"已领取":"进行中…"})]}),b&&r.durationSec>0&&(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(r.durationSec/60),"分",r.durationSec%60,"秒"]})]})]}),(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" rounded-xl border border-white/10 bg-black/30 p-2.5",children:[(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,x.jsx)(rc,{className:"h-3.5 w-3.5 text-amber-400"}),(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-xs font-semibold",children:"深空排行榜"}),(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-[10px] text-muted-foreground/50",children:["本地 · Top ",l.length||0]})]}),0===l.length?(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/40",children:[(0,x.jsx)(rc,{className:"h-6 w-6 mx-auto mb-1 opacity-30"}),"尚无记录。完成今日信标即可登榜。"]}):(0,x.jsx)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" space-y-0.5 max-h-[180px] overflow-y-auto echo-scroll",children:l.map((e,t)=>{let a=0===t?{icon:rk,color:"#fbbf24",label:"1st"}:1===t?{icon:rS,color:"#cbd5e1",label:"2nd"}:2===t?{icon:rN,color:"#f97316",label:"3rd"}:null,s=en[e.difficulty],r=el[e.challenge],n=e.dateKey===eo();return(0,x.jsxs)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" "+`flex items-center gap-2 px-2 py-1 rounded-lg text-[11px] ${n?"bg-fuchsia-500/10 border border-fuchsia-500/20":"hover:bg-white/5"}`,children:[(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" w-6 flex items-center justify-center",children:a?(0,x.jsx)(a.icon,{className:"h-3.5 w-3.5",style:{color:a.color}}):(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-muted-foreground/50 font-mono",children:t+1})}),(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center gap-1 flex-1 min-w-0",children:[(0,x.jsx)("span",{style:{color:s.color},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" font-mono",children:s.icon}),(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-muted-foreground/80 truncate",children:r.label}),e.progress>=1&&(0,x.jsx)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-emerald-400/70",children:"✓"})]}),(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" text-muted-foreground/50 font-mono text-[10px] w-16 text-right",children:[Math.floor(e.durationSec/60),"m",e.durationSec%60,"s"]}),(0,x.jsx)("span",{style:{color:s.color},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" font-mono font-semibold w-12 text-right",children:$(e.score)})]},`${e.timestamp}-${t}`)})})]}),(0,x.jsx)("div",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center justify-center gap-3 text-[9px] text-muted-foreground/50",children:rM.map(e=>{let t=en[e];return(0,x.jsxs)("span",{className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]])+" flex items-center gap-1",children:[(0,x.jsx)("span",{style:{color:t.color},className:eZ.default.dynamic([["d680841b243a9849",[f.glow,f.glow,f.glow,f.glow]]]),children:t.icon}),t.label," ×",t.mult]},e)})})]})}let rC=(0,ew.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);function rE(){let[e,t]=(0,p.useState)(!1),[a,s]=(0,p.useState)(0),[r,n]=(0,p.useState)(null),[l,o]=(0,p.useState)(!1),i=(0,p.useRef)(null);(0,p.useEffect)(()=>{if(!function(){try{return"1"===localStorage.getItem(s8)}catch{return!0}}()){let e=setTimeout(()=>t(!0),600);return()=>clearTimeout(e)}},[]),(0,p.useEffect)(()=>{let e=()=>{s(0),o(!1),t(!0)};return window.addEventListener("echo-nexus-tutorial-restart",e),()=>window.removeEventListener("echo-nexus-tutorial-restart",e)},[]),ey(e=>e.crystals),ey(e=>e.pulsePower),ey(e=>e.tech),ey(e=>e.activePuzzle),ey(e=>!!e.activeExpedition&&!e.activeExpedition.finished);let c=(0,p.useRef)(null);(0,p.useEffect)(()=>{if(!e)return;let t=s6[a];if(!t?.expectAction)return;let s=0,r=()=>{let e=ey.getState(),a=!1;"pulse"===t.expectAction?(null===c.current&&(c.current=e.crystals),a=e.crystals>=(c.current??0)+Math.max(.5,.5*e.pulsePower)):"decode-start"===t.expectAction?a=!!e.activePuzzle:"tech-buy"===t.expectAction?a=Object.values(e.tech).some(e=>e>0):"expedition-start"===t.expectAction&&(a=!!e.activeExpedition&&!e.activeExpedition.finished),o(e=>e!==a?a:e),s=requestAnimationFrame(r)};return s=requestAnimationFrame(r),()=>cancelAnimationFrame(s)},[e,a]);let d=(0,p.useCallback)(()=>{let e=s6[a];if(!e?.target)return void n(null);let t=document.querySelector(`[data-tut="${e.target}"]`);if(!t)return void n(null);let s=t.getBoundingClientRect();n({left:s.left,top:s.top,width:s.width,height:s.height})},[a]);(0,p.useEffect)(()=>{if(!e)return;let t=()=>{d(),i.current=requestAnimationFrame(t)};return i.current=requestAnimationFrame(t),()=>{i.current&&cancelAnimationFrame(i.current)}},[e,a,d]);let u=(0,p.useCallback)(()=>{t(!1);try{localStorage.setItem(s8,"1")}catch{}},[]),h=(0,p.useCallback)(()=>{a>=s6.length-1?u():(s(e=>e+1),o(!1))},[a,u]),f=(0,p.useCallback)(()=>{a<=0||(s(e=>e-1),o(!1))},[a]);if(!e)return null;let m=s6[a],g=a>=s6.length-1,b=m.placement??"auto",v={};return v=r?"right"===b?{left:r.left+r.width+16,top:r.top+r.height/2,transform:"translateY(-50%)"}:"left"===b?{left:Math.max(16,r.left-360-16),top:r.top+r.height/2,transform:"translateY(-50%)",maxWidth:340}:"top"===b?{left:Math.max(16,Math.min(r.left,window.innerWidth-360-16)),top:Math.max(16,r.top-220),maxWidth:340}:{left:Math.max(16,Math.min(window.innerWidth/2-170,window.innerWidth-360-16)),top:Math.min(window.innerHeight-260,(r?.bottom??window.innerHeight/2)+16),maxWidth:340}:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",maxWidth:440},(0,x.jsxs)("div",{className:"fixed inset-0 z-[79]",children:[(()=>{if(!r)return(0,x.jsx)("div",{className:"fixed inset-0 bg-black/70 z-[80] pointer-events-auto"});let{left:e,top:t,width:a,height:s}=r,n=e-6,l=t-6,o=a+12,i=s+12;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:0,right:0,height:Math.max(0,l)}}),(0,x.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:l+i,right:0,bottom:0}}),(0,x.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:l,width:Math.max(0,n),height:i}}),(0,x.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:n+o,top:l,right:0,height:i}}),(0,x.jsx)("div",{className:"fixed z-[81] pointer-events-none rounded-lg",style:{left:n,top:l,width:o,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,x.jsx)("div",{className:"fixed z-[82] w-[340px] sm:w-[360px] max-w-[calc(100vw-32px)]",style:v,children:(0,x.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,x.jsx)("div",{className:"h-1 w-full bg-gradient-to-r from-emerald-400 via-fuchsia-500 to-rose-400"}),(0,x.jsx)("button",{onClick:u,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,x.jsx)(e9.X,{className:"h-3.5 w-3.5"})}),(0,x.jsxs)("div",{className:"p-4 pt-3.5",children:[(0,x.jsx)("div",{className:"flex items-center gap-1.5 mb-2.5",children:s6.map((e,t)=>(0,x.jsx)("div",{className:`h-1 rounded-full transition-all ${t===a?"w-6 bg-fuchsia-400":t<a?"w-3 bg-fuchsia-400/50":"w-3 bg-white/15"}`},e.id))}),(0,x.jsxs)("h3",{className:"text-sm font-bold text-fuchsia-100 mb-1.5 flex items-center gap-1.5 pr-6",children:[(0,x.jsx)(e7,{className:"h-3.5 w-3.5 text-fuchsia-300 shrink-0"}),m.title]}),(0,x.jsx)("p",{className:"text-[12.5px] text-muted-foreground leading-relaxed whitespace-pre-line",children:m.body}),m.expectAction&&!l&&(0,x.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,x.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-400 animate-pulse"}),"完成动作后自动进入下一步,或点跳过"]}),m.expectAction&&l&&(0,x.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,x.jsxs)("div",{className:"flex items-center gap-2 mt-4",children:[(0,x.jsxs)(e8,{size:"sm",variant:"ghost",onClick:f,disabled:0===a,className:"h-7 px-2 text-[11px] text-muted-foreground hover:text-foreground",children:[(0,x.jsx)(rC,{className:"h-3.5 w-3.5"}),"上一步"]}),(0,x.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,x.jsx)(e8,{size:"sm",variant:"ghost",onClick:u,className:"h-7 px-2 text-[11px] text-muted-foreground hover:text-foreground",children:"跳过"}),(0,x.jsxs)(e8,{size:"sm",onClick:h,className:"h-7 px-3 text-[11px] bg-fuchsia-500 hover:bg-fuchsia-600 text-white border-fuchsia-400/50",children:[g?"完成":"下一步",(0,x.jsx)(rn,{className:"h-3.5 w-3.5 ml-0.5"})]})]})]}),(0,x.jsxs)("div",{className:"text-[10px] text-muted-foreground/60 text-center mt-2",children:[a+1," / ",s6.length]})]})]})})]})}let rT=(0,ew.default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]),rR=(0,ew.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);function rP(){let[e,t]=(0,p.useState)(null);(0,p.useEffect)(()=>{window.__offlineEffect={at:Date.now()};let e=()=>{let e=em;window.__offlineCheck={at:Date.now(),hasReport:!!e,gain:e?.gain},e&&e.gain>.1?(t(e),setTimeout(()=>e3("decodeSuccess"),300)):e&&ep()},a=setTimeout(e,1500),s=()=>e();return window.addEventListener("echo-nexus-offline-report",s),()=>{window.__offlineCleanup={at:Date.now()},clearTimeout(a),window.removeEventListener("echo-nexus-offline-report",s)}},[]);let a=()=>{ep(),t(null)};if(!e)return null;let s=e.gain<e.rate*e.elapsedSec*e.eff-.01;return(0,x.jsx)(sT,{open:!!e,onOpenChange:e=>!e&&a(),children:(0,x.jsxs)(s$,{className:"bg-gradient-to-br from-[#0f0a2e]/95 to-[#050410]/95 border-emerald-400/30 max-w-[400px]",children:[(0,x.jsxs)(sA,{children:[(0,x.jsx)("div",{className:"absolute top-0 left-0 right-0 h-1 bg-gradient-to-r from-emerald-400 via-cyan-400 to-blue-400 rounded-t-xl"}),(0,x.jsxs)(sz,{className:"flex items-center gap-2 text-emerald-100",children:[(0,x.jsx)(e7,{className:"h-4 w-4 text-emerald-300"}),"欢迎回来,无人机"]}),(0,x.jsx)(sO,{className:"text-muted-foreground",children:"在你离开的这段时间里,采矿机群持续运转…"})]}),(0,x.jsxs)("div",{className:"space-y-3 py-1",children:[(0,x.jsxs)("div",{className:"relative rounded-xl border border-emerald-400/30 bg-emerald-500/5 p-4 overflow-hidden",children:[(0,x.jsx)("div",{className:"pointer-events-none absolute -top-8 -right-8 h-24 w-24 rounded-full bg-emerald-500/20 blur-2xl"}),(0,x.jsxs)("div",{className:"relative flex items-center gap-3",children:[(0,x.jsx)("div",{className:"h-12 w-12 rounded-xl bg-emerald-500/15 border border-emerald-400/40 flex items-center justify-center shrink-0",children:(0,x.jsx)(ej,{className:"h-6 w-6 text-emerald-300"})}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-[11px] text-muted-foreground",children:"离线采集获得"}),(0,x.jsxs)("div",{className:"text-2xl font-bold font-mono text-emerald-200 tabular-nums leading-tight",children:["+",$(e.gain)]}),(0,x.jsx)("div",{className:"text-[10px] text-muted-foreground/80",children:"记忆晶体"})]})]})]}),(0,x.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[(0,x.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/30 px-3 py-2",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground mb-1",children:[(0,x.jsx)(rx,{className:"h-3 w-3"}),"离线时长"]}),(0,x.jsx)("div",{className:"font-mono font-semibold text-foreground",children:function(e){if(e<60)return`${Math.floor(e)}秒`;let t=Math.floor(e/60);if(t<60)return`${t}分钟`;let a=Math.floor(t/60),s=t%60;if(a<24)return s>0?`${a}小时${s}分`:`${a}小时`;let r=Math.floor(a/24),n=a%24;return n>0?`${r}${n}小时`:`${r}天`}(e.rawElapsedSec)}),e.capped&&(0,x.jsx)("div",{className:"text-[9px] text-amber-400/80 mt-0.5",children:"已达 8h 上限"})]}),(0,x.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/30 px-3 py-2",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground mb-1",children:[(0,x.jsx)(rT,{className:"h-3 w-3"}),"采集速率"]}),(0,x.jsxs)("div",{className:"font-mono font-semibold text-foreground",children:[$(e.rate),"/s"]}),(0,x.jsxs)("div",{className:"text-[9px] text-muted-foreground/70 mt-0.5",children:["效率 ",Math.round(100*e.eff),"%"]})]})]}),s&&(0,x.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-amber-400/30 bg-amber-500/5 px-3 py-2 text-[11px] text-amber-200",children:[(0,x.jsx)(rR,{className:"h-3.5 w-3.5 shrink-0 mt-0.5"}),(0,x.jsx)("span",{children:"仓库已满,部分离线产出被截断。升级仓库容量或解码晶体可避免浪费。"})]}),(0,x.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/20 px-3 py-2",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between text-[11px]",children:[(0,x.jsx)("span",{className:"text-muted-foreground",children:"当前晶体"}),(0,x.jsxs)("span",{className:"font-mono text-foreground tabular-nums",children:[$(e.crystalsAfter)," / ",$(e.crystalCap)]})]}),(0,x.jsx)("div",{className:"mt-1.5 h-1.5 rounded-full bg-white/10 overflow-hidden",children:(0,x.jsx)("div",{className:"h-full bg-gradient-to-r from-emerald-500 to-cyan-400 transition-all",style:{width:`${Math.min(100,e.crystalsAfter/e.crystalCap*100)}%`}})})]})]}),(0,x.jsx)("div",{className:"flex justify-end gap-2 mt-1",children:(0,x.jsxs)(e8,{onClick:a,className:"bg-emerald-500 hover:bg-emerald-600 text-white border-emerald-400/50",children:[(0,x.jsx)(ej,{className:"h-3.5 w-3.5 mr-1"}),"领取收益"]})})]})})}function r$(){let e=ey(e=>e._tideEvents),t=ey(e=>e.consumeTideEvents),{toast:a}=(0,eQ.useToast)();return(0,p.useEffect)(()=>{if(0!==e.length)for(let e of t()){if(e.started){let t=z[e.started];e3("tideStart"),a({title:`${t.icon} 星潮降临:${t.name}`,description:t.desc})}if(e.ended){let t=z[e.ended];e.silenceCompensation&&e.silenceCompensation>0?(e3("techBuy"),a({title:`${t.icon} 寂静期消散`,description:`虚空回赠 ${e.silenceCompensation} 洞见。`})):(e3("tideEnd"),a({title:`${t.icon} ${t.name}结束`,description:"星潮退去,物理法则恢复。"}))}}},[e,t,a]),null}function rA(){let e=ey(e=>e.activeTide),[,t]=(0,p.useState)(0);if((0,p.useEffect)(()=>{if(!e)return;let a=setInterval(()=>t(e=>e+1),500);return()=>clearInterval(a)},[e]),!e)return null;let a=z[e.type],s=Math.max(0,e.endsAt-Date.now()),r=Math.ceil(s/1e3),n=1-s/75e3;return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded-full text-[10px] font-medium relative overflow-hidden",style:{background:`${a.color}1a`,border:`1px solid ${a.color}55`,color:a.color,boxShadow:`0 0 10px ${a.glow}`},title:a.desc,children:[(0,x.jsx)("div",{className:"absolute inset-0 opacity-20",style:{background:`linear-gradient(90deg, ${a.color}40 ${100*n}%, transparent ${100*n}%)`}}),(0,x.jsx)("span",{className:"relative text-xs leading-none",children:a.icon}),(0,x.jsx)("span",{className:"relative leading-none",children:a.name}),(0,x.jsxs)("span",{className:"relative font-mono leading-none opacity-80",children:[r,"s"]})]})}function rD(){let e=ey(e=>e.activeTide);if(!e)return null;let t=z[e.type];return(0,x.jsxs)("div",{className:"jsx-10d58630b8785c8d fixed inset-0 pointer-events-none z-0 transition-opacity duration-1000",children:[(0,x.jsx)("div",{style:{background:`linear-gradient(180deg, ${t.color}22, transparent)`},className:"jsx-10d58630b8785c8d absolute top-0 left-0 right-0 h-24 opacity-40"}),(0,x.jsx)("div",{style:{background:`linear-gradient(0deg, ${t.color}22, transparent)`},className:"jsx-10d58630b8785c8d absolute bottom-0 left-0 right-0 h-24 opacity-40"}),(0,x.jsx)("div",{style:{boxShadow:`inset 0 0 120px ${t.glow}`,animation:"tide-breathe 3s ease-in-out infinite"},className:"jsx-10d58630b8785c8d absolute inset-0"}),(0,x.jsx)(eZ.default,{id:"10d58630b8785c8d",children:"@keyframes tide-breathe{0%,to{opacity:.5}50%{opacity:.9}}"})]})}var rz=e.i(75830),rO="rovingFocusGroup.onEntryFocus",rI={bubbles:!1,cancelable:!0},rF="RovingFocusGroup",[rL,rB,rH]=(0,rz.createCollection)(rF),[rK,rW]=(0,tg.createContextScope)(rF,[rH]),[rq,rV]=rK(rF),rU=p.forwardRef((e,t)=>(0,x.jsx)(rL.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,x.jsx)(rL.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,x.jsx)(rX,{...e,ref:t})})}));rU.displayName=rF;var rX=p.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:a,orientation:s,loop:r=!1,dir:n,currentTabStopId:l,defaultCurrentTabStopId:o,onCurrentTabStopIdChange:i,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...u}=e,h=p.useRef(null),f=(0,eM.useComposedRefs)(t,h),m=ty(n),[g,b]=(0,t7.useControllableState)({prop:l,defaultProp:o??null,onChange:i,caller:rF}),[v,y]=p.useState(!1),w=(0,tb.useCallbackRef)(c),j=rB(a),N=p.useRef(!1),[k,S]=p.useState(0);return p.useEffect(()=>{let e=h.current;if(e)return e.addEventListener(rO,w),()=>e.removeEventListener(rO,w)},[w]),(0,x.jsx)(rq,{scope:a,orientation:s,dir:m,loop:r,currentTabStopId:g,onItemFocus:p.useCallback(e=>b(e),[b]),onItemShiftTab:p.useCallback(()=>y(!0),[]),onFocusableItemAdd:p.useCallback(()=>S(e=>e+1),[]),onFocusableItemRemove:p.useCallback(()=>S(e=>e-1),[]),children:(0,x.jsx)(tx.Primitive.div,{tabIndex:v||0===k?-1:0,"data-orientation":s,...u,ref:f,style:{outline:"none",...e.style},onMouseDown:(0,tj.composeEventHandlers)(e.onMouseDown,()=>{N.current=!0}),onFocus:(0,tj.composeEventHandlers)(e.onFocus,e=>{let t=!N.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rO,rI);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=j().filter(e=>e.focusable);rZ([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),d)}}N.current=!1}),onBlur:(0,tj.composeEventHandlers)(e.onBlur,()=>y(!1))})})}),rY="RovingFocusGroupItem",rG=p.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:a,focusable:s=!0,active:r=!1,tabStopId:n,children:l,...o}=e,i=t9(),c=n||i,d=rV(rY,a),u=d.currentTabStopId===c,h=rB(a),{onFocusableItemAdd:f,onFocusableItemRemove:m,currentTabStopId:g}=d;return p.useEffect(()=>{if(s)return f(),()=>m()},[s,f,m]),(0,x.jsx)(rL.ItemSlot,{scope:a,id:c,focusable:s,active:r,children:(0,x.jsx)(tx.Primitive.span,{tabIndex:u?0:-1,"data-orientation":d.orientation,...o,ref:t,onMouseDown:(0,tj.composeEventHandlers)(e.onMouseDown,e=>{s?d.onItemFocus(c):e.preventDefault()}),onFocus:(0,tj.composeEventHandlers)(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:(0,tj.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,a){var s;let r=(s=e.key,"rtl"!==a?s:"ArrowLeft"===s?"ArrowRight":"ArrowRight"===s?"ArrowLeft":s);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(r))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)))return rJ[r]}(e,d.orientation,d.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let r=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)r.reverse();else if("prev"===t||"next"===t){var a,s;"prev"===t&&r.reverse();let n=r.indexOf(e.currentTarget);r=d.loop?(a=r,s=n+1,a.map((e,t)=>a[(s+t)%a.length])):r.slice(n+1)}setTimeout(()=>rZ(r))}}),children:"function"==typeof l?l({isCurrentTabStop:u,hasTabStop:null!=g}):l})})});rG.displayName=rY;var rJ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rZ(e,t=!1){let a=document.activeElement;for(let s of e)if(s===a||(s.focus({preventScroll:t}),document.activeElement!==a))return}var rQ="Tabs",[r0,r1]=(0,tg.createContextScope)(rQ,[rW]),r2=rW(),[r5,r3]=r0(rQ),r4=p.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,onValueChange:r,defaultValue:n,orientation:l="horizontal",dir:o,activationMode:i="automatic",...c}=e,d=ty(o),[u,h]=(0,t7.useControllableState)({prop:s,onChange:r,defaultProp:n??"",caller:rQ});return(0,x.jsx)(r5,{scope:a,baseId:t9(),value:u,onValueChange:h,orientation:l,dir:d,activationMode:i,children:(0,x.jsx)(tx.Primitive.div,{dir:d,"data-orientation":l,...c,ref:t})})});r4.displayName=rQ;var r6="TabsList",r8=p.forwardRef((e,t)=>{let{__scopeTabs:a,loop:s=!0,...r}=e,n=r3(r6,a),l=r2(a);return(0,x.jsx)(rU,{asChild:!0,...l,orientation:n.orientation,dir:n.dir,loop:s,children:(0,x.jsx)(tx.Primitive.div,{role:"tablist","aria-orientation":n.orientation,...r,ref:t})})});r8.displayName=r6;var r9="TabsTrigger",r7=p.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,disabled:r=!1,...n}=e,l=r3(r9,a),o=r2(a),i=na(l.baseId,s),c=ns(l.baseId,s),d=s===l.value;return(0,x.jsx)(rG,{asChild:!0,...o,focusable:!r,active:d,children:(0,x.jsx)(tx.Primitive.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":c,"data-state":d?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:i,...n,ref:t,onMouseDown:(0,tj.composeEventHandlers)(e.onMouseDown,e=>{r||0!==e.button||!1!==e.ctrlKey?e.preventDefault():l.onValueChange(s)}),onKeyDown:(0,tj.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&l.onValueChange(s)}),onFocus:(0,tj.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==l.activationMode;d||r||!e||l.onValueChange(s)})})})});r7.displayName=r9;var ne="TabsContent",nt=p.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,forceMount:r,children:n,...l}=e,o=r3(ne,a),i=na(o.baseId,s),c=ns(o.baseId,s),d=s===o.value,u=p.useRef(d);return p.useEffect(()=>{let e=requestAnimationFrame(()=>u.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,x.jsx)(tp.Presence,{present:r||d,children:({present:a})=>(0,x.jsx)(tx.Primitive.div,{"data-state":d?"active":"inactive","data-orientation":o.orientation,role:"tabpanel","aria-labelledby":i,hidden:!a,id:c,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:u.current?"0s":void 0},children:a&&n})})});function na(e,t){return`${e}-trigger-${t}`}function ns(e,t){return`${e}-content-${t}`}function nr({className:e,...t}){return(0,x.jsx)(r4,{"data-slot":"tabs",className:(0,eX.cn)("flex flex-col gap-2",e),...t})}function nn({className:e,...t}){return(0,x.jsx)(r8,{"data-slot":"tabs-list",className:(0,eX.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...t})}function nl({className:e,...t}){return(0,x.jsx)(r7,{"data-slot":"tabs-trigger",className:(0,eX.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",e),...t})}function no({className:e,...t}){return(0,x.jsx)(nt,{"data-slot":"tabs-content",className:(0,eX.cn)("flex-1 outline-none",e),...t})}nt.displayName=ne;let ni=(0,ew.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"}]]),nc=(0,ew.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"}]]);function nd(){let e,t,a,s,r,n,l;e=ey(e=>e.tick),t=ey(e=>e.autoDecodeTick),a=ey(e=>e.tickTide),s=ey(e=>e.checkAchievements),r=ey(e=>e.init),n=(0,p.useRef)(!1),(0,p.useEffect)(()=>{window.__loopMounted={at:Date.now(),hydrated:ey.persist.hasHydrated()};let l=()=>{window.__doInitCalled={at:Date.now(),inited:n.current},n.current||(r(),n.current=!0)},o=null,i=null;ey.persist.hasHydrated()?l():(o=ey.persist.onFinishHydration(l),i=setTimeout(l,500));let c=0,d=setInterval(()=>{let r=Date.now();e(r),t(),a(r),++c%4==0&&s()},250);return()=>{clearInterval(d),o&&o(),i&&clearTimeout(i)}},[e,t,a,s,r]),(0,p.useEffect)(()=>{let t=()=>{"visible"===document.visibilityState&&(e(Date.now()),a(Date.now()),s())};return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)},[e,a,s]),l=ey(e=>e.soundOn),(0,p.useEffect)(()=>{e5().setEnabled(l)},[l]);let[o,i]=(0,p.useState)(!1),[c,d]=(0,p.useState)(!1),[u,h]=(0,p.useState)(!1),[f,m]=(0,p.useState)(!1),[b,v]=(0,p.useState)(!1),y=ey(e=>e.contact),w=ey(e=>e.totalDecoded),j=ey(e=>e.crystalsPerSec),N=ey(e=>e.ascensions),k=ey(e=>e.tech),S=ey(e=>e.fragments),M=ey(e=>e.achievements),_=ey(e=>e.constellation??[]),C=ey(e=>e.pendingPerkChoices),T=ey(e=>e.crystals),R=ey(e=>e.crystalCap),P=ey(e=>e.activeTide),D=ey(e=>e.energy),O=ey(e=>!!e.activeExpedition&&!e.activeExpedition.finished),I=ey(e=>e.chronicle?.length??0),[F,L]=(0,p.useState)(!1);if((0,p.useEffect)(()=>{let e=!1,t=()=>{try{let t=ei(),a=eh();e||L(null!==a.completedAt&&!a.claimed&&a.dateKey===t.dateKey)}catch{e||L(!1)}};t();let a=setInterval(t,2e3);return()=>{e=!0,clearInterval(a)}},[]),(0,p.useEffect)(()=>{v(!0)},[]),!b)return(0,x.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#050410] text-muted-foreground",children:(0,x.jsx)("div",{className:"animate-pulse",children:"唤醒回响中…"})});let B=Object.values(k).filter(e=>e>0).length,H=Object.values(S).filter(Boolean).length,K=Object.values(M).filter(Boolean).length,W=y>=100,q=C&&C.length>0,V=T>=.98*R,U="点击中央晶体发起脉冲,累积记忆晶体";if(0===w&&T>=5?U="右侧「待解码晶体」点击一颗晶体,开始解码":w>0&&0===B?U="用洞见解锁技术树,提升产能":w>0&&H<E.length&&(U=`继续解码,拼凑记忆图谱(${H}/${E.length}`),D>=1&&w>=3&&(U="「探险」标签可深入遗迹,获取丰厚奖励"),N>=1&&_.length>0&&(U=`星图天赋已觉醒 ${_.length}/18,继续飞升获取更多`),V&&(U="⚠ 仓库已满,产能浪费中!请解码晶体或升级仓库"),q&&(U="✦ 星图觉醒!点击顶部「星图」按钮选择一道天赋"),P){let e=z[P.type];U=`${e.icon} 星潮「${e.name}」进行中 \xb7 ${e.desc}`}return W&&(U="✦ 接触进度已满,可发起飞升进入新周目"),(0,x.jsxs)("div",{className:"relative min-h-screen flex flex-col bg-[#050410] text-foreground overflow-x-hidden",children:[(0,x.jsx)(g,{className:"fixed inset-0 w-full h-full -z-10"}),(0,x.jsx)(rD,{}),(0,x.jsxs)("header",{className:"sticky top-0 z-30 px-3 sm:px-5 pt-3 pb-2",children:[(0,x.jsxs)("div",{className:"flex items-center gap-3 mb-2.5",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,x.jsxs)("div",{className:"relative h-9 w-9",children:[(0,x.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,x.jsx)("div",{className:"absolute inset-1 rounded-full bg-[#050410] flex items-center justify-center",children:(0,x.jsx)(e7,{className:"h-4 w-4 text-fuchsia-300"})})]}),(0,x.jsxs)("div",{className:"leading-tight",children:[(0,x.jsx)("h1",{className:"text-base sm:text-lg font-bold text-gradient",children:"回响星核"}),(0,x.jsx)("p",{className:"text-[9px] sm:text-[10px] text-muted-foreground/70 -mt-0.5 tracking-wider",children:"ECHO NEXUS · v0.5.2"})]})]}),(0,x.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[(0,x.jsx)(rA,{}),(0,x.jsxs)(e8,{size:"icon",variant:"ghost",onClick:()=>m(!0),className:"h-8 w-8 relative group","aria-label":"编年史",title:"回响编年史",children:[(0,x.jsx)(td,{className:"h-4 w-4 group-hover:text-fuchsia-300 transition-colors"}),I>0&&(0,x.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:I})]}),q&&(0,x.jsxs)(e8,{size:"sm",variant:"outline",onClick:()=>h(!0),className:"border-fuchsia-400/60 text-fuchsia-200 hover:bg-fuchsia-500/15 h-8 px-2.5 animate-pulse",children:[(0,x.jsx)(sI,{className:"h-3.5 w-3.5 mr-1"}),"觉醒"]}),W&&(0,x.jsxs)(e8,{size:"sm",variant:"outline",onClick:()=>i(!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,x.jsx)(eS,{className:"h-3.5 w-3.5 mr-1"}),"飞升"]}),(0,x.jsx)(e8,{size:"icon",variant:"ghost",onClick:()=>d(!0),className:"h-8 w-8","aria-label":"设置",children:(0,x.jsx)(ni,{className:"h-4 w-4"})})]})]}),(0,x.jsx)(eG,{onPrestige:()=>i(!0)})]}),(0,x.jsx)("main",{className:"flex-1 px-3 sm:px-5 pb-3 min-h-0",children:(0,x.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-[1fr_minmax(360px,420px)] gap-3 h-full",children:[(0,x.jsxs)("section",{className:"glass rounded-2xl p-4 sm:p-6 flex flex-col items-center justify-center min-h-[420px] relative overflow-hidden",children:[(0,x.jsx)("div",{className:"pointer-events-none absolute -top-20 -left-20 h-60 w-60 rounded-full bg-emerald-500/10 blur-3xl"}),(0,x.jsx)("div",{className:"pointer-events-none absolute -bottom-20 -right-20 h-60 w-60 rounded-full bg-fuchsia-500/10 blur-3xl"}),(0,x.jsx)("div",{"data-tut":"crystal-orb",className:"contents",children:(0,x.jsx)(e4,{})})]}),(0,x.jsxs)("section",{className:"flex flex-col gap-3 min-h-0",children:[(0,x.jsx)("div",{"data-tut":"decode-panel",className:"glass rounded-2xl p-4 flex-1 min-h-[360px] max-h-[560px]",children:(0,x.jsx)(tr,{})}),(0,x.jsx)("div",{className:"glass rounded-2xl p-3 min-h-[320px] max-h-[440px]",children:(0,x.jsxs)(nr,{defaultValue:O?"expedition":q?"constellation":"tech",className:"h-full flex flex-col",children:[(0,x.jsxs)(nn,{className:"grid grid-cols-7 h-9 bg-black/30 gap-0.5 p-1",children:[(0,x.jsxs)(nl,{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,x.jsx)(tc,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"探险"}),D>=1&&!O&&(0,x.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,x.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,x.jsxs)(nl,{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,x.jsx)(rp,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"技术"})]}),(0,x.jsxs)(nl,{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,x.jsx)(sI,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"星图"}),q&&(0,x.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,x.jsxs)(nl,{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,x.jsx)(td,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"图谱"})]}),(0,x.jsxs)(nl,{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,x.jsx)(rc,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"成就"}),K<A.length&&(0,x.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,x.jsxs)(nl,{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,x.jsx)(rj,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"信标"}),F&&(0,x.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,x.jsxs)(nl,{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,x.jsx)(nc,{className:"h-3.5 w-3.5"}),(0,x.jsx)("span",{className:"leading-none",children:"统计"})]})]}),(0,x.jsx)(no,{value:"expedition",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,x.jsx)(ri,{})}),(0,x.jsx)(no,{value:"tech",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,x.jsx)(tm,{})}),(0,x.jsx)(no,{value:"constellation",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,x.jsx)(rh,{})}),(0,x.jsx)(no,{value:"codex",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,x.jsx)(t4,{})}),(0,x.jsx)(no,{value:"ach",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,x.jsx)(rd,{})}),(0,x.jsx)(no,{value:"beacon",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,x.jsx)(r_,{})}),(0,x.jsx)(no,{value:"stats",className:"flex-1 mt-2 min-h-0",children:(0,x.jsx)(nu,{})})]})})]})]})}),(0,x.jsx)("footer",{className:"sticky bottom-0 z-20 mt-auto px-3 sm:px-5 pb-2 pt-1",children:(0,x.jsxs)("div",{className:`glass rounded-xl px-3 py-2 flex items-center gap-2 text-xs ${V?"border-amber-400/40 animate-pulse":""} ${P?"border-white/20":""}`,style:P?{boxShadow:`inset 0 0 16px ${z[P.type].glow}`}:void 0,children:[(0,x.jsx)("span",{className:V?"text-amber-400":P?"":"text-fuchsia-300",style:P?{color:z[P.type].color}:void 0,children:"▶"}),(0,x.jsx)("span",{className:`flex-1 truncate ${V?"text-amber-200":"text-muted-foreground"}`,children:U}),(0,x.jsx)("span",{className:"hidden sm:inline text-muted-foreground/60",children:"|"}),(0,x.jsxs)("span",{className:"hidden sm:inline text-muted-foreground/70",children:["产能 ",$(j),"/s"]}),(0,x.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,x.jsx)(s2,{className:"h-3.5 w-3.5"})})]})}),(0,x.jsx)(sF,{open:o,onOpenChange:i}),(0,x.jsx)(rg,{open:f,onOpenChange:m}),(0,x.jsx)(rm,{open:u,onOpenChange:h}),(0,x.jsx)(s9,{open:c,onOpenChange:d}),(0,x.jsx)(ru,{}),(0,x.jsx)(r$,{}),(0,x.jsx)(rE,{}),(0,x.jsx)(rP,{})]})}function nu(){let e=ey(),t=Object.values(e.achievements).filter(Boolean).length,[a,s]=(0,p.useState)(null);(0,p.useEffect)(()=>{try{let e=eu();s(e.length>0?e[0].score:null)}catch{s(null)}},[]);let r=[{label:"累计解码晶体",value:`${e.totalDecoded} 颗`},{label:"飞升周目",value:`${e.ascensions}`},{label:"持有蓝图",value:`${e.blueprints.length} / 6`},{label:"已学技术",value:`${Object.values(e.tech).filter(e=>e>0).length} / ${_.length}`},{label:"已获碎片",value:`${Object.values(e.fragments).filter(Boolean).length} / ${E.length}`},{label:"已解锁成就",value:`${t} / ${A.length}`},{label:"星图天赋",value:`${e.constellation?.length??0} / ${L.length}`},{label:"接触进度",value:`${e.contact.toFixed(1)}%`},{label:"晶体产能",value:`${e.crystalsPerSec.toFixed(2)} /s`},{label:"仓库上限",value:`${$(e.crystalCap)}`},{label:"洞见倍率",value:`\xd7${e.insightMult.toFixed(2)}`},{label:"累计探险",value:`${e.totalExpeditions} 次`},{label:"BOSS 击破",value:`${e.bossKills??0} 次`},{label:"星潮亲历",value:`${(e.starTidesEncountered??[]).length} / 6`},{label:"编年史条目",value:`${(e.chronicle??[]).length} 纪元`},{label:"探险能量",value:`${Math.floor(e.energy)} / ${e.energyMax}`},{label:"信标最高分",value:null!==a?$(a):"—"}];return(0,x.jsx)("div",{className:"grid grid-cols-2 gap-1.5 text-xs",children:r.map(e=>(0,x.jsxs)("div",{className:"flex items-center justify-between rounded-md bg-black/25 border border-white/5 px-2 py-1.5",children:[(0,x.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,x.jsx)("span",{className:"font-mono text-foreground",children:e.value})]},e.label))})}e.s(["default",()=>nd],52683)}]);