:root{--bg: #06090d;--panel: rgba(10, 16, 22, .86);--panel-solid: #0c131a;--panel-2: rgba(17, 25, 33, .92);--line: rgba(142, 190, 210, .16);--line-strong: rgba(142, 210, 230, .38);--text: #e6edf1;--muted: #8798a3;--dim: #5c6b76;--mineral: #f0b45a;--mineral-deep: #9a6424;--energy: #6fe3ff;--research: #b79bff;--danger: #ff7a5c;--good: #8ee6b0;--accent: #7fd8e8;--font: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", "Segoe UI", sans-serif;--mono: "Consolas", "SFMono-Regular", "Cascadia Mono", "Roboto Mono", monospace;--radius: 3px}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;touch-action:manipulation;user-select:none;overscroll-behavior:none}button{font-family:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}svg{width:100%;height:100%;display:block}#app{position:fixed;inset:0;overflow:hidden}.game-shell{position:absolute;inset:0;overflow:hidden;background:radial-gradient(120% 100% at 50% 0%,#101821,#06090d 70%)}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.scan-overlay{position:absolute;inset:0;pointer-events:none;z-index:4;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0px,rgba(255,255,255,.018) 1px,transparent 1px,transparent 3px);mix-blend-mode:overlay;opacity:.55}.topbar{position:absolute;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;gap:18px;padding:10px 16px 14px;background:linear-gradient(180deg,#04070aeb,#04070a8c 62%,#04070a00)}.brand{display:flex;align-items:center;gap:10px;min-width:214px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;color:var(--mineral);font-size:18px;border:1px solid rgba(240,180,90,.4);background:linear-gradient(135deg,#f0b45a29,#f0b45a05);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);box-shadow:0 0 18px #f0b45a29}.brand-title{font-size:17px;font-weight:700;letter-spacing:3px;line-height:1.15}.brand-sub{font-family:var(--mono);font-size:8.5px;letter-spacing:1.6px;color:var(--dim);margin-top:3px}.brand-sub i{color:var(--mineral);font-style:normal}.brand-sub span{color:var(--muted)}.resources{display:flex;align-items:stretch;gap:7px;flex:1;justify-content:center}.res{display:flex;align-items:center;gap:7px;min-width:122px;padding:6px 9px 6px 8px;border:1px solid var(--line);background:linear-gradient(180deg,#0f171fdb,#080d12db);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));position:relative}.res:after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:currentColor;opacity:.7}.res-mineral{color:var(--mineral)}.res-energy{color:var(--energy)}.res-research{color:var(--research)}.res-glyph{font-size:15px;line-height:1;opacity:.9}.res-body{display:flex;flex-direction:column;line-height:1.06}.res-value{color:var(--text);font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:.4px}.res-rate{font-family:var(--mono);font-size:9px;color:currentColor;opacity:.72;margin-top:2px}.res-label{font-size:9px;color:var(--dim);margin-left:auto;align-self:flex-start;letter-spacing:1px}.res-mineral .res-label{color:#f0b45a9e}.res-energy .res-label{color:#6fe3ff9e}.res-research .res-label{color:#b79bff9e}.top-actions{display:flex;align-items:center;gap:6px}.icon-btn{height:38px;min-width:38px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);background:#0b1117d1;color:var(--muted);transition:border-color .18s,color .18s,background .18s,transform .12s;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px))}.icon-btn svg{width:17px;height:17px}.icon-btn:hover{border-color:var(--line-strong);color:var(--text);background:#14202ae6}.icon-btn:active{transform:translateY(1px)}.btn-label{font-size:11px;letter-spacing:1px}.shard-glyph{color:var(--research);font-size:14px;text-shadow:0 0 8px rgba(183,155,255,.6)}.shard-count{font-family:var(--mono);font-size:12px;color:var(--text)}.stage-label{position:absolute;top:76px;left:18px;z-index:20;display:flex;flex-direction:column;gap:3px;pointer-events:none}.stage-kicker{font-family:var(--mono);font-size:8.5px;letter-spacing:2.2px;color:var(--accent);opacity:.7}.stage-name{font-size:20px;font-weight:700;letter-spacing:4px;text-shadow:0 2px 16px rgba(0,0,0,.8)}.stage-track{display:flex;align-items:center;gap:12px;margin-top:5px}.stage-dot{display:flex;align-items:center;gap:4px;opacity:.35}.stage-dot i{width:5px;height:5px;border-radius:50%;background:var(--dim);display:block}.stage-dot em{font-family:var(--mono);font-style:normal;font-size:8px;color:var(--dim)}.stage-dot.done{opacity:.8}.stage-dot.done i{background:var(--accent);box-shadow:0 0 6px #7fd8e899}.stage-dot.active{opacity:1}.stage-dot.active i{background:var(--mineral);box-shadow:0 0 10px #f0b45ad9;animation:dotPulse 2.2s ease-in-out infinite}.stage-dot.active em{color:var(--mineral)}.buff-row{position:absolute;top:136px;left:18px;z-index:21;display:flex;flex-direction:column;gap:5px;pointer-events:none}.buff{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;padding:3px 8px;border:1px solid;background:#060a0ec7;width:max-content}.buff svg{width:13px;height:13px}.buff em{font-family:var(--mono);font-style:normal;font-size:9px;opacity:.8}.buff.flare{color:#ffca6a;border-color:#ffaa5066}.buff.frenzy{color:#ff9c70;border-color:#ff785a66}.buff.debuff{color:#ff7a8c;border-color:#ff5a7859}.scene-hint{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);z-index:18;display:flex;align-items:center;gap:10px;padding:10px 18px;border:1px solid rgba(240,180,90,.42);background:#080c10b8;color:#ffe0ac;font-size:13px;letter-spacing:1.5px;pointer-events:none;backdrop-filter:blur(4px);transition:opacity .6s,transform .6s;animation:hintFloat 3.2s ease-in-out infinite}.scene-hint.hide{opacity:0;transform:translate(-50%,-40%)}.preview-mode .scene-hint{display:none}.hint-pulse{width:8px;height:8px;border-radius:50%;background:var(--mineral);box-shadow:0 0 #f0b45a80;animation:hintPulse 1.8s infinite}.upgrade-panel{position:absolute;left:16px;top:142px;bottom:104px;width:306px;z-index:25;display:flex;flex-direction:column;background:linear-gradient(180deg,#0b1117eb,#070b0fe6);border:1px solid var(--line);box-shadow:0 18px 50px #0006,inset 0 1px #ffffff08;backdrop-filter:blur(10px);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%);overflow:hidden;transition:height .25s,top .25s,bottom .25s}.upgrade-panel:before{content:"";position:absolute;top:0;left:0;width:52px;height:2px;background:var(--mineral);box-shadow:0 0 12px #f0b45a80}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 14px 11px;border-bottom:1px solid var(--line);flex:0 0 auto}.panel-head h2{margin:0;font-size:15px;letter-spacing:2px;font-weight:700}.panel-sub{font-family:var(--mono);font-size:8px;letter-spacing:1.2px;color:var(--dim);display:block;margin-top:4px}.panel-sub b{color:var(--mineral)}.collapse-btn{width:26px;height:26px;border:1px solid var(--line);background:transparent;color:var(--muted);display:grid;place-items:center;transition:transform .25s}.collapse-btn svg{width:14px;height:14px;transform:rotate(180deg)}.upgrade-panel.collapsed{bottom:auto;height:56px}.upgrade-panel.collapsed .collapse-btn svg{transform:rotate(0)}.upgrade-panel.collapsed .upgrade-list,.upgrade-panel.collapsed .autobuy-row{display:none}.upgrade-list{overflow-y:auto;padding:9px 10px 4px;flex:1;scrollbar-width:thin;scrollbar-color:rgba(120,170,190,.25) transparent}.upgrade-list::-webkit-scrollbar{width:5px}.upgrade-list::-webkit-scrollbar-thumb{background:#78aabe40}.upgrade-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;margin-bottom:6px;border:1px solid rgba(142,190,210,.1);background:linear-gradient(100deg,#141d26b3,#0b111780);position:relative;transition:border-color .2s,background .2s,opacity .2s}.upgrade-card:hover{border-color:#8ebed242;background:linear-gradient(100deg,#1a2630cc,#0b111799)}.upgrade-card.affordable{border-color:#f0b45a4d}.upgrade-card.affordable:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--mineral);box-shadow:0 0 8px #f0b45a99}.upgrade-card.owned{opacity:.78;border-color:#6fe3ff38}.upgrade-card.locked{opacity:.36;filter:saturate(.4)}.upgrade-card.maxed{opacity:.6}.upgrade-card.flash{animation:cardFlash .55s ease}.upgrade-icon{width:34px;height:34px;display:grid;place-items:center;color:var(--mineral);border:1px solid rgba(240,180,90,.22);background:#f0b45a0f}.upgrade-icon svg{width:19px;height:19px}.upgrade-card.owned .upgrade-icon{color:var(--energy);border-color:#6fe3ff40;background:#6fe3ff0d}.upgrade-meta{min-width:0;display:flex;flex-direction:column;gap:1px}.upgrade-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.upgrade-name{font-size:12.5px;font-weight:600;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upgrade-level{font-family:var(--mono);font-size:9px;color:var(--mineral);white-space:nowrap}.upgrade-card.owned .upgrade-level{color:var(--energy)}.upgrade-latin{font-family:var(--mono);font-size:7px;letter-spacing:1.2px;color:var(--dim)}.upgrade-effect{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upgrade-lock{font-size:9px;color:#ff9c84;min-height:0}.upgrade-lock:empty{display:none}.buy-btn{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:70px;padding:5px 7px;border:1px solid rgba(240,180,90,.4);background:linear-gradient(180deg,#f0b45a2e,#f0b45a0d);color:#ffe0a8;transition:background .16s,transform .1s,border-color .16s}.buy-btn:hover:not(:disabled){background:linear-gradient(180deg,#f0b45a52,#f0b45a1a);border-color:#f0b45ab3}.buy-btn:active:not(:disabled){transform:translateY(1px)}.buy-btn:disabled{border-color:#8ebed21a;background:#ffffff06;color:var(--dim)}.buy-cost{font-family:var(--mono);font-size:9.5px;line-height:1.35;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px}.cost-chip{white-space:nowrap}.cost-chip.minerals{color:var(--mineral)}.cost-chip.energy{color:var(--energy)}.cost-chip.research{color:var(--research)}.cost-chip i{font-style:normal;opacity:.6;font-size:8px}.cost-owned{color:var(--energy);font-family:var(--mono);font-size:9px}.buy-label{font-size:10px;letter-spacing:1px}.autobuy-row{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;border-top:1px solid var(--line);background:#05090d99}.autobuy-copy{display:flex;flex-direction:column;gap:2px;font-size:11px}.autobuy-copy small{font-size:8px;color:var(--dim)}.toggle{width:38px;height:20px;border:1px solid var(--line);border-radius:999px;background:#ffffff0a;padding:2px;transition:background .2s,border-color .2s}.toggle span{display:block;width:14px;height:14px;border-radius:50%;background:var(--dim);transition:transform .2s,background .2s}.toggle.on{border-color:#6fe3ff80;background:#6fe3ff1f}.toggle.on span{transform:translate(17px);background:var(--energy);box-shadow:0 0 8px #6fe3ffb3}.toggle:disabled{opacity:.3}.portrait-panel{position:absolute;right:16px;top:96px;width:312px;z-index:24}.portrait-frame{position:relative;height:382px;border:1px solid rgba(111,227,255,.24);background:#081016;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%);box-shadow:0 18px 50px #00000073,inset 0 0 40px #3ca0be0f;cursor:pointer}.portrait-frame canvas{width:100%;height:100%;display:block}.portrait-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,15,.1) 0%,transparent 45%,rgba(4,10,15,.62) 100%);pointer-events:none}.holo-top{position:absolute;top:9px;left:11px;right:11px;display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:7.5px;letter-spacing:1.6px;color:#7fd8e899;z-index:2}.holo-top span:last-child{margin-left:auto;color:#7fd8e859;letter-spacing:0}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--energy);box-shadow:0 0 8px var(--energy);animation:liveBlink 2s infinite}.holo-corners{position:absolute;inset:8px;z-index:2;pointer-events:none;border:1px solid rgba(111,227,255,.08);clip-path:polygon(0 0,22px 0,22px 1px,1px 1px,1px 22px,0 22px,0 0,100% 0,100% 22px,calc(100% - 1px) 22px,calc(100% - 1px) 1px,calc(100% - 22px) 1px,calc(100% - 22px) 0,100% 0,100% 100%,100% calc(100% - 22px),calc(100% - 1px) calc(100% - 22px),calc(100% - 1px) calc(100% - 1px),calc(100% - 22px) calc(100% - 1px),calc(100% - 22px) 100%,0 100%,0 calc(100% - 22px),1px calc(100% - 22px),1px calc(100% - 1px),22px calc(100% - 1px),22px 100%,0 100%)}.portrait-id{position:absolute;left:15px;bottom:14px;z-index:3;display:flex;flex-direction:column;gap:1px}.portrait-name{font-size:17px;font-weight:700;letter-spacing:2px;text-shadow:0 2px 12px #000}.portrait-role{font-family:var(--mono);font-size:8px;letter-spacing:1.2px;color:var(--energy);opacity:.8}.expr-chip{position:absolute;right:12px;top:30px;z-index:3;font-size:9px;letter-spacing:1px;padding:2px 7px;color:var(--char-color, var(--energy));border:1px solid color-mix(in srgb,var(--char-color, var(--energy)) 40%,transparent);background:#050a0eb3}.dialogue-box{margin-top:8px;min-height:96px;padding:9px 12px 11px;border:1px solid var(--line);background:linear-gradient(180deg,#0c131af0,#070b0ff0);position:relative;cursor:pointer;transition:border-color .2s}.dialogue-box.speaking{border-color:#6fe3ff47}.dialogue-box.speaking:after{content:"";position:absolute;right:8px;bottom:8px;width:5px;height:5px;background:var(--energy);border-radius:50%;animation:liveBlink 1s infinite}.voice-line{display:flex;align-items:center;gap:2px;margin-bottom:5px}.voice-line span{width:2px;height:6px;background:var(--energy);opacity:.5;animation:voice 1.2s infinite}.voice-line span:nth-child(2){animation-delay:.2s;height:9px}.voice-line span:nth-child(3){animation-delay:.4s;height:5px}.voice-line em{margin-left:5px;font-family:var(--mono);font-size:7.5px;letter-spacing:1.1px;color:var(--dim);font-style:normal}.dialogue-box p{margin:0;font-size:12.5px;line-height:1.68;color:#d7e3e8;min-height:42px;letter-spacing:.4px}.char-tabs{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-top:5px}.char-tab{display:flex;align-items:center;justify-content:center;gap:4px;height:25px;padding:0 3px;border:1px solid var(--line);background:#090e13db;font-size:9px;color:var(--muted);transition:border-color .18s,color .18s,opacity .18s}.char-tab .char-dot{width:4px;height:4px;border-radius:50%;background:var(--char-color);box-shadow:0 0 5px var(--char-color)}.char-tab.active{border-color:color-mix(in srgb,var(--char-color) 55%,transparent);color:var(--text);background:#141e26e6}.char-tab.locked{opacity:.3}.char-tab span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.objective-bar{position:absolute;left:340px;right:348px;bottom:16px;z-index:26;min-height:70px;display:grid;grid-template-columns:minmax(0,1fr) 176px;align-items:center;gap:16px;padding:10px 12px 10px 17px;border:1px solid var(--line);background:linear-gradient(100deg,#0a1016f0,#080c11e6);backdrop-filter:blur(10px);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));box-shadow:0 16px 44px #0006}.obj-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.obj-kicker{font-family:var(--mono);font-size:8px;letter-spacing:1.8px;color:var(--dim)}.obj-kicker i{color:var(--accent);font-style:normal;opacity:.7}.obj-title{font-size:14px;font-weight:700;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obj-detail{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obj-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:#ffffff0d;overflow:hidden}.obj-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--mineral-deep),var(--mineral));box-shadow:0 0 10px #f0b45a99;transition:width .3s ease}.warp-btn{height:48px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid rgba(142,190,210,.2);background:#ffffff08;color:var(--dim);transition:border-color .2s,color .2s,background .2s,box-shadow .2s;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}.warp-btn .warp-icon{width:22px;height:22px}.warp-copy{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.warp-copy b{font-size:13px;letter-spacing:3px}.warp-copy small{font-family:var(--mono);font-size:8px;letter-spacing:.5px}.warp-btn:disabled{opacity:.58;cursor:not-allowed}.warp-btn.locked{border-color:#f0b45a4d;color:var(--muted)}.warp-btn.ready{border-color:#b79bff99;color:#efe3ff;background:linear-gradient(180deg,#b79bff3d,#5a3ca01f);box-shadow:0 0 24px #9664ff4d,inset 0 0 20px #b79bff14;animation:readyWarp 2.4s ease-in-out infinite}.warp-btn.ready:hover{background:linear-gradient(180deg,#b79bff5c,#5a3ca033)}.toast-stack{position:absolute;top:74px;left:50%;transform:translate(-50%);z-index:70;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;width:min(420px,86vw)}.toast{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:11.5px;color:#dbe6ea;border:1px solid var(--line);border-left:2px solid var(--accent);background:#080d12f0;backdrop-filter:blur(6px);box-shadow:0 8px 24px #0006;animation:toastIn .28s ease both;max-width:100%}.toast-icon{width:14px;height:14px;color:var(--accent);flex:0 0 auto}.toast-good{border-left-color:var(--good)}.toast-good .toast-icon{color:var(--good)}.toast-stage{border-left-color:var(--research)}.toast-stage .toast-icon{color:var(--research)}.toast-codex{border-left-color:var(--energy)}.toast-codex .toast-icon{color:var(--energy)}.toast-warn{border-left-color:var(--danger)}.toast-warn .toast-icon{color:var(--danger)}.toast.out{animation:toastOut .35s ease both}.stage-banner{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);z-index:65;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:4px;opacity:0;color:var(--text);text-shadow:0 3px 24px rgba(0,0,0,.9)}.stage-banner span{font-family:var(--mono);font-size:10px;letter-spacing:6px;color:var(--accent)}.stage-banner b{font-size:46px;letter-spacing:12px;font-weight:700}.stage-banner em{font-family:var(--mono);font-size:9px;letter-spacing:5px;color:var(--muted);font-style:normal}.stage-banner.show{animation:stageBanner 2.6s ease both}.screen-flash{position:absolute;inset:0;z-index:88;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.85),rgba(190,210,255,.15) 60%,transparent 75%);opacity:0}.screen-flash.burst{animation:screenFlash .9s ease-out}.event-layer{position:absolute;inset:0;z-index:38;pointer-events:none}.event-layer button{pointer-events:auto}.event-banner{position:absolute;top:78px;left:50%;transform:translate(-50%);width:min(470px,calc(100vw - 40px));display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid rgba(255,180,90,.4);background:#0a0e12f0;box-shadow:0 12px 40px #00000073,inset 0 0 30px #ff963c0d;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));pointer-events:auto}.event-title{display:flex;align-items:center;gap:7px;flex:1;min-width:0}.event-title svg{width:20px;height:20px;color:#ffca6a;flex:0 0 auto}.event-title b{font-size:14px;letter-spacing:2px}.event-title span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-timer{display:flex;align-items:baseline;gap:3px;color:#ffca6a}.event-timer b{font-family:var(--mono);font-size:19px}.event-timer small{font-family:var(--mono);font-size:7px;letter-spacing:1px;opacity:.6}.event-timer.wide{margin:8px 0 4px;color:var(--danger)}.event-timer.wide b{font-size:26px}.event-timer.wide small{font-size:9px}.event-sub{font-family:var(--mono);font-size:9px;color:var(--muted);white-space:nowrap}.event-sub b{color:var(--mineral)}.event-close{border:1px solid var(--line);background:#ffffff0a;color:var(--muted);font-size:10px;padding:5px 9px}.flare-banner{border-color:#ffaa508c}.meteor-field{position:absolute;inset:0}.meteor-target{position:absolute;width:62px;height:62px;transform:translate(-50%,-50%);border:none;background:transparent;display:grid;place-items:center;animation:meteorFall .8s cubic-bezier(.2,.7,.3,1) both,meteorFloat 2.2s ease-in-out .8s infinite}.meteor-target span{width:34px;height:34px;color:#ffd27a;filter:drop-shadow(0 0 10px rgba(255,180,70,.8))}.meteor-target i{position:absolute;width:46px;height:46px;border:1px solid rgba(255,190,90,.4);border-radius:50%;animation:targetPulse 1.2s infinite}.meteor-target em{position:absolute;bottom:-2px;font-family:var(--mono);font-style:normal;font-size:9px;color:#ffd27a;white-space:nowrap}.meteor-target:hover span{transform:scale(1.12)}.meteor-target.hit{animation:meteorHit .35s ease both;pointer-events:none}.meteor-target.hit span,.meteor-target.hit i,.meteor-target.hit em{opacity:0}.event-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(530px,calc(100vw - 32px));padding:20px 22px;border:1px solid rgba(183,155,255,.42);background:linear-gradient(180deg,#0e141efa,#080c12fa);box-shadow:0 24px 80px #0009,inset 0 0 40px #785adc12;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));pointer-events:auto}.event-dialog>:not(.event-portrait){position:relative;z-index:1}.event-portrait{position:absolute;right:-18px;bottom:-8px;height:190px;width:auto;max-width:42%;object-fit:contain;object-position:bottom right;opacity:.27;pointer-events:none;z-index:0;-webkit-mask-image:linear-gradient(to left,#000 38%,transparent 100%);mask-image:linear-gradient(to left,#000 38%,transparent 100%);filter:saturate(.9) drop-shadow(0 0 18px rgba(150,120,255,.35))}.event-dialog .modal-kicker{color:var(--research)}.event-dialog h2{margin:3px 0 2px;font-size:24px;letter-spacing:4px}.event-dialog p{font-size:12px;line-height:1.7;color:var(--muted);margin:5px 0 12px}.event-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.event-choices .btn{min-height:54px}.event-choices .btn b{font-size:12px;letter-spacing:2px}.event-choices .btn small{display:block;font-size:8px;color:var(--dim);margin-top:3px;line-height:1.35}.supply .event-choices{grid-template-columns:1fr 1fr}.supply-offer{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);background:#ffffff06;margin:8px 0 12px;font-size:11px}.supply-offer b{color:var(--mineral);font-family:var(--mono)}.supply-offer .arrow{color:var(--dim)}.btn{border:1px solid var(--line);background:#ffffff09;color:var(--text);padding:10px 14px;font-size:11px;letter-spacing:1px;transition:border-color .18s,background .18s,transform .1s}.btn:hover{border-color:var(--line-strong);background:#ffffff12}.btn:active{transform:translateY(1px)}.btn.primary{border-color:#f0b45a8c;color:#1b1306;background:linear-gradient(180deg,#f2c37c,#d99a45);font-weight:700}.btn.primary:hover{background:linear-gradient(180deg,#ffd797,#e7a84e)}.btn.ghost{color:var(--muted)}.btn.small{padding:7px 11px;font-size:10px}.btn.danger{border-color:#ff5a5a73;color:#ff9c8e;background:#ff5a4614}.btn.choice{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding:10px 12px}.btn.choice:hover{border-color:#b79bff8c}.btn.choice.danger:hover{border-color:#ff5a5a8c}.modal-backdrop{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:#020508b8;backdrop-filter:blur(5px);opacity:0;pointer-events:none;visibility:hidden;transition:opacity .2s,visibility .2s}.modal-backdrop.open{opacity:1;pointer-events:auto;visibility:visible}.modal{width:min(980px,95vw);max-height:88vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#0d141bfc,#070b10fc);border:1px solid rgba(142,190,210,.24);box-shadow:0 30px 100px #000000b3,inset 0 1px #ffffff0a;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));transform:translateY(14px) scale(.985);transition:transform .22s ease}.modal-backdrop.open .modal{transform:none}.modal-head{display:flex;align-items:center;gap:18px;padding:17px 22px;border-bottom:1px solid var(--line);flex:0 0 auto}.modal-head>div:first-child{flex:1}.modal-kicker{font-family:var(--mono);font-size:8px;letter-spacing:2px;color:var(--accent);opacity:.75}.modal-head h2{margin:3px 0 0;font-size:22px;letter-spacing:4px;font-weight:700}.modal-res{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.modal-res span{font-size:8px;color:var(--dim);letter-spacing:1px}.modal-res b{font-family:var(--mono);font-size:19px;color:var(--accent)}.modal-res b i{font-style:normal;font-size:10px;color:var(--dim)}.shard-res b{color:var(--research)}.modal-close{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);background:#ffffff08;color:var(--muted)}.modal-close svg{width:15px;height:15px}.modal-close:hover{color:var(--text);border-color:var(--line-strong)}.modal-body{padding:18px 22px 20px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(120,170,190,.3) transparent}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-thumb{background:#78aabe4d}.modal-note{margin:14px 0 0;font-size:9.5px;line-height:1.65;color:var(--dim)}.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tech-col{border:1px solid var(--line);background:#ffffff05;padding:10px;position:relative}.tech-col:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--line-color);opacity:.7}.tech-col header{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:9px}.tech-col header span{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--line-color)}.tech-col header small{font-family:var(--mono);font-size:7px;letter-spacing:1px;color:var(--dim)}.tech-nodes{display:flex;flex-direction:column;gap:7px}.tech-node{display:grid;grid-template-columns:28px 1fr auto;gap:7px;align-items:center;text-align:left;padding:8px;border:1px solid var(--line);background:#ffffff06;transition:border-color .18s,background .18s}.tech-node:hover:not(:disabled){border-color:var(--line-color);background:#ffffff0d}.tech-icon{width:28px;height:28px;display:grid;place-items:center;color:var(--line-color);border:1px solid color-mix(in srgb,var(--line-color) 32%,transparent)}.tech-icon svg{width:16px;height:16px}.tech-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.tech-copy b{font-size:11.5px}.tech-copy small{font-size:8.5px;color:var(--dim);line-height:1.4}.tech-cost{font-family:var(--mono);font-size:8px;color:var(--dim);white-space:nowrap}.tech-node.owned{border-color:color-mix(in srgb,var(--line-color) 45%,transparent);background:color-mix(in srgb,var(--line-color) 8%,transparent)}.tech-node.owned .tech-cost{color:var(--line-color)}.tech-node.available{border-color:color-mix(in srgb,var(--line-color) 55%,transparent);animation:techReady 2.4s ease-in-out infinite}.tech-node.available .tech-cost{color:var(--line-color)}.tech-node.locked,.tech-node.poor{opacity:.45}.resonance{margin-top:14px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);background:#ffffff05}.resonance .res-icon{width:24px;height:24px;display:grid;place-items:center;color:var(--dim);font-size:18px}.resonance div{flex:1;display:flex;flex-direction:column;gap:2px}.resonance b{font-size:12px;letter-spacing:1px}.resonance small{font-size:9px;color:var(--dim)}.resonance em{font-family:var(--mono);font-style:normal;font-size:9px;color:var(--dim)}.resonance.active{border-color:#b79bff73;background:#8c64ff12;box-shadow:inset 0 0 30px #8c64ff0f}.resonance.active .res-icon,.resonance.active em{color:var(--research)}.codex-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}.codex-tab{padding:8px 13px;border:1px solid transparent;border-bottom:none;background:transparent;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.codex-tab small{font-family:var(--mono);font-size:8px;color:var(--dim)}.codex-tab.active{color:var(--text);border-color:var(--line);background:#ffffff0a}.codex-main{display:grid;grid-template-columns:1fr 300px;gap:16px}.codex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-content:start}.codex-card{min-height:92px;padding:10px;border:1px solid var(--line);background:#ffffff06;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;transition:border-color .18s,background .18s}.codex-card:hover{border-color:var(--line-strong);background:#ffffff0d}.codex-glyph{width:24px;height:24px;display:grid;place-items:center;color:var(--accent);font-family:var(--mono);font-size:16px;border:1px solid rgba(127,216,232,.25);margin-bottom:3px}.codex-glyph svg{width:14px;height:14px}.codex-card b{font-size:11.5px}.codex-card small{font-size:8.5px;color:var(--dim);line-height:1.4}.codex-card.locked{opacity:.48;background:#ffffff03}.codex-card.locked .codex-glyph{color:var(--dim);border-color:#788c9633}.codex-card.selected{border-color:#f0b45a80;background:#f0b45a0f}.codex-detail{border:1px solid var(--line);background:#ffffff06;padding:16px;min-height:250px;display:flex;flex-direction:column;gap:7px}.codex-detail-cat{font-family:var(--mono);font-size:8px;letter-spacing:2px;color:var(--accent)}.codex-detail h3{margin:0;font-size:18px;letter-spacing:1.5px}.codex-line{margin:4px 0 0;font-size:13px;color:#ffe0b0;line-height:1.6}.codex-story{margin:0;font-size:11px;color:var(--muted);line-height:1.75}.codex-speaker{margin-top:auto;font-size:10px;color:var(--dim);text-align:right}.codex-detail.locked{opacity:.7}.perm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.perm-col{border:1px solid var(--line);background:#ffffff05;padding:10px;position:relative}.perm-col:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--line-color);opacity:.7}.perm-col header{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding-bottom:8px;margin-bottom:9px;border-bottom:1px solid var(--line)}.perm-col header span{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--line-color)}.perm-col header small{font-family:var(--mono);font-size:7px;letter-spacing:1px;color:var(--dim)}.perm-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.perm-copy b{font-size:11.5px;letter-spacing:.5px}.perm-copy small{font-family:var(--mono);font-size:7px;letter-spacing:1px;color:var(--dim)}.perm-copy p{margin:3px 0 0;font-size:9.5px;line-height:1.5;color:var(--muted)}.perm-node.ultimate{border-style:dashed}.perm-node.locked{opacity:.4}.perm-node{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px;min-height:0;border:1px solid var(--line);background:#ffffff06;text-align:left;transition:border-color .18s,background .18s}.perm-node:hover:not(:disabled){border-color:#b79bff80}.perm-icon{width:28px;height:28px;display:grid;place-items:center;color:var(--research);border:1px solid rgba(183,155,255,.3);margin-bottom:5px}.perm-icon svg{width:19px;height:19px}.perm-node b{font-size:14px;letter-spacing:1px}.perm-node small{font-family:var(--mono);font-size:7.5px;letter-spacing:1.2px;color:var(--dim)}.perm-node p{margin:6px 0 0;font-size:10px;line-height:1.6;color:var(--muted)}.perm-node em{margin-top:auto;font-family:var(--mono);font-style:normal;font-size:10px;color:var(--research)}.perm-node.available{border-color:#b79bff59;box-shadow:inset 0 0 26px #8c64ff0d}.perm-node.owned{border-color:#6fe3ff47;background:#6fe3ff0a}.perm-node.owned em{color:var(--energy)}.perm-node.poor{opacity:.5}.perm-summary{display:flex;gap:26px;flex-wrap:wrap;margin-top:14px;font-size:10px;color:var(--muted)}.perm-summary b{color:var(--text);font-family:var(--mono)}.warp-hero{display:grid;grid-template-columns:92px 1fr 1fr 1fr;gap:14px;align-items:center;padding:16px;border:1px solid rgba(183,155,255,.28);background:#8c64ff0d}.warp-ring{width:72px;height:72px;color:var(--research);display:grid;place-items:center}.warp-ring svg{width:60px;height:60px;animation:orbitSpin 14s linear infinite}.warp-hero>div:not(.warp-ring){display:flex;flex-direction:column;gap:2px}.warp-hero span{font-size:8px;color:var(--dim);letter-spacing:1px}.warp-hero b{font-family:var(--mono);font-size:16px}.warp-hero b.accent{color:var(--research);font-size:24px}.warp-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.warp-col{border:1px solid var(--line);padding:11px 14px;display:flex;flex-direction:column;gap:4px}.warp-col h3{margin:0 0 3px;font-size:11px;letter-spacing:2px}.warp-col span{font-size:10px;color:var(--muted)}.warp-col.lost h3{color:var(--danger)}.warp-col.kept h3{color:var(--good)}.next-system{margin-top:14px;padding:12px 14px;border:1px solid var(--line);background:#ffffff05}.next-system b{display:block;font-size:17px;letter-spacing:2px;margin:3px 0 2px}.next-system b i{font-family:var(--mono);font-size:8px;color:var(--dim);font-style:normal;letter-spacing:1.5px;margin-left:6px}.next-system p{margin:0;font-size:10px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.result-body{text-align:center}.result-hero{display:flex;align-items:center;justify-content:center;gap:18px;padding:10px 0 18px}.result-star{font-size:42px;color:var(--research);text-shadow:0 0 34px rgba(183,155,255,.8);animation:starPulse 3s ease-in-out infinite}.result-hero div{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.result-hero span{font-size:9px;color:var(--dim);letter-spacing:2px}.result-hero b{font-size:26px;letter-spacing:4px}.result-hero b i{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--dim);font-style:normal;margin-left:6px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:left}.result-stats div{border:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:#ffffff05}.result-stats span{font-size:8px;color:var(--dim)}.result-stats b{font-family:var(--mono);font-size:15px}.result-start{margin-top:12px;border:1px solid rgba(111,227,255,.22);background:#6fe3ff0a;padding:10px 14px;text-align:left}.result-start h3{margin:0 0 4px;font-size:10px;letter-spacing:2px;color:var(--energy)}.result-start span{display:inline-block;font-size:10px;color:var(--muted);margin-right:12px}.result-body .modal-actions{justify-content:center}.offline-lead{font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 12px}.offline-gains{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.offline-gains div{border:1px solid var(--line);padding:14px;text-align:center;display:flex;flex-direction:column;gap:4px;background:#ffffff05}.offline-gains span{font-size:9px;color:var(--dim)}.offline-gains b{font-family:var(--mono);font-size:20px;color:var(--mineral)}.settings-body{display:flex;flex-direction:column;gap:2px;max-width:640px;margin:0 auto;width:100%}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 2px;border-bottom:1px solid var(--line)}.settings-row>div{display:flex;flex-direction:column;gap:2px}.settings-row b{font-size:12.5px}.settings-row small{font-size:9px;color:var(--dim)}.settings-row.danger b{color:#ff9c8e}.settings-meta{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font-family:var(--mono);font-size:8px;color:var(--dim)}.bgm-stages{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:14px 2px 4px}.bgm-stage{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);padding:9px 8px;background:#ffffff05;opacity:.5;transition:opacity .25s,border-color .25s,background .25s}.bgm-stage b{font-size:10px;font-weight:500;line-height:1.35}.bgm-stage small{font-size:8px;color:var(--dim);line-height:1.45}.bgm-stage.current{opacity:1;border-color:#f0b45a80;background:#f0b45a14}.bgm-stage.current b{color:var(--accent)}.bgm-phase{font-family:var(--mono);font-size:7.5px;letter-spacing:1px;color:var(--dim)}.bgm-note{margin:8px 2px 0;font-size:9px;color:var(--dim);line-height:1.5}.help-body{display:grid;grid-template-columns:1fr 1fr;gap:10px}.help-step{border:1px solid var(--line);padding:12px 14px;background:#ffffff05}.help-step b{font-size:11px;color:var(--accent);letter-spacing:1px}.help-step p{margin:5px 0 0;font-size:10px;color:var(--muted);line-height:1.65}.help-note{grid-column:1 / -1;font-size:9px;color:var(--dim);border-top:1px solid var(--line);padding-top:10px}@keyframes dotPulse{0%,to{box-shadow:0 0 6px #f0b45a80}50%{box-shadow:0 0 14px #f0b45a}}@keyframes hintPulse{0%{box-shadow:0 0 #f0b45a80}70%{box-shadow:0 0 0 12px #f0b45a00}to{box-shadow:0 0 #f0b45a00}}@keyframes hintFloat{0%,to{margin-top:0}50%{margin-top:-5px}}@keyframes cardFlash{0%{background:#f0b45a4d}to{background:#141d26b3}}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(-6px)}}@keyframes stageBanner{0%{opacity:0;transform:translate(-50%,-40%) scale(.96);letter-spacing:20px}16%{opacity:1}72%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-58%) scale(1.02)}}@keyframes screenFlash{0%{opacity:0}12%{opacity:1}to{opacity:0}}@keyframes readyWarp{0%,to{box-shadow:0 0 14px #9664ff38,inset 0 0 14px #b79bff0f}50%{box-shadow:0 0 32px #9664ff75,inset 0 0 24px #b79bff1f}}@keyframes liveBlink{0%,to{opacity:1}50%{opacity:.25}}@keyframes voice{0%,to{transform:scaleY(.5);opacity:.4}50%{transform:scaleY(1);opacity:.9}}@keyframes techReady{0%,to{box-shadow:inset 0 0 #fff0}50%{box-shadow:inset 0 0 18px #ffffff09}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes starPulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.1);opacity:1}}@keyframes meteorFall{0%{opacity:0;transform:translate(-50%,-160%) scale(.6) rotate(-20deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes meteorFloat{0%,to{margin-top:0}50%{margin-top:-6px}}@keyframes targetPulse{0%,to{transform:scale(.9);opacity:.5}50%{transform:scale(1.15);opacity:.15}}@keyframes meteorHit{to{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}@media(max-width:1240px){.upgrade-panel{width:276px}.portrait-panel{width:284px}.objective-bar{left:306px;right:316px}.stage-banner b{font-size:38px}}@media(max-width:1020px){.brand{min-width:170px}.res{min-width:104px}.res-label{display:none}.upgrade-panel,.portrait-panel{width:252px}.portrait-frame{height:318px}.objective-bar{left:282px;right:286px;grid-template-columns:minmax(0,1fr) 150px}.warp-btn{height:44px}.codex-main{grid-template-columns:1fr 260px}}@media(max-width:860px){.topbar{flex-wrap:wrap;gap:6px 10px;padding:7px 9px 18px}.brand{min-width:0;flex:0 1 auto}.brand-mark{width:28px;height:28px;font-size:15px}.brand-title{font-size:14px;letter-spacing:2px}.brand-sub{font-size:7px;letter-spacing:1px;margin-top:2px}.resources{order:3;width:100%;flex:0 0 100%;gap:5px}.res{min-width:0;flex:1;padding:5px 6px;gap:5px}.res-value{font-size:13px}.res-rate{font-size:8px}.res-glyph{font-size:12px}.res-label{display:block;font-size:7px;letter-spacing:0;align-self:center;margin-left:auto}.top-actions{margin-left:auto;gap:4px}.icon-btn{height:31px;min-width:31px;padding:0 6px}.icon-btn svg{width:15px;height:15px}.btn-label{display:none}.shard-count{font-size:10px}.stage-label{top:90px;left:11px}.stage-kicker{font-size:7px;letter-spacing:1.4px}.stage-name{font-size:15px;letter-spacing:2px}.stage-track{gap:7px;margin-top:2px}.buff-row{top:137px;left:11px}.buff{font-size:9px;padding:2px 6px}.portrait-panel{top:124px;right:9px;width:148px}.portrait-frame{height:174px}.holo-top{font-size:6px;top:6px;left:7px;right:7px}.portrait-name{font-size:12px;letter-spacing:1px}.portrait-role{font-size:6.5px;letter-spacing:.5px}.portrait-id{left:8px;bottom:8px}.expr-chip{top:22px;right:8px;font-size:7px;padding:1px 5px}.dialogue-box{min-height:76px;padding:6px 8px 8px;margin-top:5px}.voice-line{margin-bottom:3px}.voice-line em{font-size:6px}.dialogue-box p{font-size:10px;line-height:1.55;min-height:32px;letter-spacing:0}.char-tabs{gap:2px;margin-top:3px}.char-tab{height:21px;font-size:7.5px;gap:2px;padding:0 1px}.char-tab .char-dot{width:3px;height:3px}.char-tab span:last-child{display:none}.char-tab:after{content:attr(data-short)}.char-tab .char-dot{margin:0 auto}.upgrade-panel{inset:auto 8px 88px;width:auto;max-height:44vh}.upgrade-panel.collapsed{height:48px;top:auto;bottom:88px}.panel-head{padding:9px 11px}.panel-head h2{font-size:13px;letter-spacing:1px}.panel-sub{font-size:7px;margin-top:2px}.upgrade-list{padding:7px;display:grid;grid-template-columns:1fr 1fr;gap:5px;align-content:start}.upgrade-card{grid-template-columns:30px minmax(0,1fr);padding:6px;margin:0;gap:6px}.upgrade-icon{width:30px;height:30px}.upgrade-icon svg{width:16px;height:16px}.upgrade-name{font-size:11px}.upgrade-effect{font-size:8.5px;white-space:normal;line-height:1.3}.upgrade-latin{display:none}.buy-btn{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;min-width:0;padding:4px 7px}.buy-cost{flex-direction:row;gap:6px;font-size:8.5px}.buy-label{font-size:9px}.autobuy-row{padding:7px 10px}.autobuy-copy small{display:none}.objective-bar{left:8px;right:8px;bottom:8px;min-height:66px;grid-template-columns:minmax(0,1fr) 132px;gap:8px;padding:9px 9px 9px 12px}.obj-title{font-size:12px}.obj-detail{font-size:9px}.warp-btn{height:44px;gap:6px}.warp-btn .warp-icon{width:18px;height:18px}.warp-copy b{font-size:11px;letter-spacing:2px}.warp-copy small{font-size:7px}.toast-stack{top:188px;width:min(330px,92vw)}.toast{font-size:10px;padding:6px 10px}.stage-banner b{font-size:28px;letter-spacing:7px}.stage-banner span,.stage-banner em{font-size:7px;letter-spacing:3px}.event-banner{top:92px;width:calc(100vw - 18px);padding:8px 10px;gap:7px}.event-title b{font-size:12px;letter-spacing:1px}.event-title span{font-size:8px}.event-title svg{width:16px;height:16px}.event-timer b{font-size:16px}.event-sub{font-size:8px}.event-dialog{padding:16px}.event-portrait{height:138px;opacity:.22}.event-dialog h2{font-size:20px}.event-choices{grid-template-columns:1fr}.event-choices .btn{min-height:44px}.supply .event-choices{grid-template-columns:1fr 1fr}.meteor-target{width:54px;height:54px}.meteor-target span{width:30px;height:30px}.modal-backdrop{padding:9px}.modal{width:100%;max-height:94vh}.modal-head{padding:12px 14px;gap:10px}.modal-head h2{font-size:18px;letter-spacing:2px}.modal-res b{font-size:15px}.modal-body{padding:13px 14px 16px}.tech-grid{grid-template-columns:1fr;gap:9px}.codex-main{grid-template-columns:1fr}.codex-grid{grid-template-columns:repeat(2,1fr)}.codex-detail{min-height:0}.codex-tabs{gap:2px}.codex-tab{padding:6px 9px;font-size:11px}.perm-grid{grid-template-columns:repeat(2,1fr)}.perm-node{min-height:150px;padding:10px}.warp-hero{grid-template-columns:56px 1fr 1fr;gap:8px;padding:11px}.warp-ring{width:48px;height:48px}.warp-ring svg{width:40px;height:40px}.warp-hero>div:last-child{grid-column:2 / -1}.warp-hero b{font-size:13px}.warp-hero b.accent{font-size:19px}.warp-columns,.result-stats{grid-template-columns:1fr 1fr}.help-body{grid-template-columns:1fr}.bgm-stages{grid-template-columns:1fr 1fr}.settings-meta{flex-direction:column;gap:4px}}@media(max-width:480px){.brand-sub{display:none}.brand-title{font-size:13px}.resources{gap:4px}.res{padding:4px 5px}.res-value{font-size:12px}.res-rate{font-size:7px}.res-glyph{display:none}.portrait-panel{width:128px}.portrait-frame{height:150px}.dialogue-box p{font-size:9px}.stage-track,.obj-kicker i{display:none}.objective-bar{grid-template-columns:minmax(0,1fr) 112px}.warp-copy small{font-size:6.5px}.stage-banner b{font-size:22px}.codex-grid{grid-template-columns:1fr 1fr}.perm-grid,.warp-columns,.result-stats{grid-template-columns:1fr}.offline-gains{grid-template-columns:1fr 1fr 1fr}}@media(max-height:620px)and (min-width:861px){.portrait-panel{top:72px}.portrait-frame{height:260px}.dialogue-box{min-height:84px}.upgrade-panel{top:106px;bottom:92px}.stage-label{top:68px}.objective-bar{bottom:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.codex-art{width:100%;height:156px;object-fit:cover;object-position:center 42%;border:1px solid var(--line);filter:saturate(.9) contrast(1.04)}.codex-detail .codex-art+.codex-detail-cat{margin-top:2px}.sandstorm-banner{border-color:#f0b45a66}.sandstorm-banner .event-title{color:#ffd89a}.event-dialog.relic{border-color:#b79bff66}.relic-progress{font-family:var(--mono);font-size:11px;color:var(--muted);padding:9px 0 12px;letter-spacing:1px}.relic-progress b{color:var(--research);font-size:15px}@media(max-width:900px){.codex-art{height:118px}}
