:root{--bg: #0f1220;--panel: rgba(30, 34, 51, .92);--border: #333a52;--text: #f2f5ff;--dim: #a8b0c8;--accent: #4c9aff;--gold: #ffd60a;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html{height:100%;height:-webkit-fill-available;background:var(--bg)}body{margin:0;height:100%;height:-webkit-fill-available;min-height:100vh;background:var(--bg);color:var(--text);font-family:Open Sans,PingFang SC,Microsoft YaHei,system-ui,sans-serif;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0;background:var(--bg)}#game-root{position:absolute;inset:0}.hud-layer{position:absolute;inset:0;pointer-events:none;z-index:10}.hud-layer .btn,.hud-layer .map-cell,.hud-layer .hud-overlay,.hud-layer .map-overlay{pointer-events:auto}.map-overlay{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#080a14d1;backdrop-filter:blur(6px)}.map-overlay.hidden{display:none}.map3d-panel{width:100%;height:100%;max-width:none;display:flex;flex-direction:column;background:var(--panel);border:none;border-radius:0;overflow:hidden}.map3d-header{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 16px;border-bottom:1px solid var(--border);background:#ffffff05}.map3d-title{margin:0;flex:1;text-align:center;font-size:15px;letter-spacing:.16em;text-transform:uppercase}.map3d-spacer{width:64px}.map-home-btn{position:absolute;left:14px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;pointer-events:auto;white-space:nowrap}.map3d-scroll{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin}.map-scroll{flex:1;overflow-y:auto;overflow-x:hidden;overflow-x:clip;position:relative;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:48px;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;cursor:grab}.map-scroll.dragging{cursor:grabbing}.map-scroll::-webkit-scrollbar{display:none;width:0;height:0}.map-track{position:relative;width:100%;overflow:hidden}.map-node-abs{position:absolute;transform:translate(-50%,-50%)}.chapter-band{position:absolute;left:0;right:0;border-radius:22px;pointer-events:none}.chapter-motif{position:absolute;width:54px;height:48px;transform:translate(-50%,-50%);pointer-events:none;opacity:.32}.chapter-motif svg{width:100%;height:100%;overflow:visible}.map-node.current{animation:nodePulse 1.6s ease-in-out infinite;z-index:3}@keyframes nodePulse{0%,to{box-shadow:0 0 0 3px #ffd60a4d,0 0 16px #ffd60a59}50%{box-shadow:0 0 0 5px #ffd60a73,0 0 30px #ffd60a99}}.map-chunk{position:relative;flex:0 0 auto;width:100%;border:1px solid var(--border);border-radius:16px;overflow:hidden;background-size:cover;background-position:center;box-shadow:inset 0 0 60px #00000073}.map-chunk-label{position:absolute;top:10px;left:14px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#ffffffa6}.map-path{position:absolute;inset:0;width:100%;height:100%}.map-node{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;border:2px solid var(--border);background:#0f1220e6;color:var(--text);font-family:var(--font-num, ui-monospace, monospace);font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s}.map-node:hover:not(.locked){transform:translate(-50%,-50%) scale(1.08)}.map-node.unlocked{border-color:var(--accent);box-shadow:0 0 0 3px #4c9aff47}.map-node.locked{opacity:.5;cursor:not-allowed}.map-node.cleared{border-color:var(--gold);background:#2b2610;color:var(--gold);opacity:1}.map-node-num{font-size:15px;line-height:1}.map-node-stars,.map-node-lock{position:absolute;bottom:-15px;font-size:10px;line-height:1;white-space:nowrap}.map-node-stars{color:var(--gold);letter-spacing:1px}.map-node.boss-node{width:124px;height:124px;border-radius:24px;border:0;background:transparent;box-shadow:none;overflow:visible;z-index:2;opacity:1}.map-node.boss-node.cleared{box-shadow:none}.boss-fig-wrap{position:relative;width:112px;height:106px;display:flex;align-items:center;justify-content:center}.boss-decor{position:absolute;left:50%;top:50%;width:200px;height:200px;transform:translate(-50%,-50%);pointer-events:none}.bf-decor-svg{width:100%;height:100%;overflow:visible}@keyframes bfdFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes bfdSway{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes bfdDash{to{stroke-dashoffset:-40}}@keyframes bfdPulse{0%,to{transform:scale(.96);opacity:.22}50%{transform:scale(1.05);opacity:.5}}.bfd-float{animation:bfdFloat 3s ease-in-out infinite}.bfd-sway{animation:bfdSway 3.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.bfd-dash{animation:bfdDash 3s linear infinite}.bfd-pulse{animation:bfdPulse 3.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.map-boss-label{position:absolute;bottom:-6px;right:-6px;background:var(--panel);border:1px solid var(--gold);border-radius:9px;padding:0 6px;font-family:var(--font-num, ui-monospace, monospace);font-size:11px;color:var(--gold)}.boss-fig{width:100%;height:100%;overflow:visible;animation:bossBob 2.4s ease-in-out infinite;filter:drop-shadow(0 3px 4px rgba(0,0,0,.4))}.bf-leg{transform-origin:top center;animation:legSway .9s ease-in-out infinite alternate}.bf-wing{transform-origin:center;animation:wingFlap .4s ease-in-out infinite alternate}.bf-ant{transform-origin:bottom center;animation:antSway 1.4s ease-in-out infinite alternate}.map-boss-badge{position:absolute;bottom:-4px;right:-6px;background:var(--panel);border:1px solid var(--gold);border-radius:8px;padding:0 5px;font-family:var(--font-num, ui-monospace, monospace);font-size:10px;color:var(--gold)}@keyframes bossBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes legSway{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes wingFlap{0%{transform:scaleY(1)}to{transform:scaleY(.55)}}@keyframes antSway{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}canvas{display:block;touch-action:none}#game-root canvas{width:100%;height:100%}.hud-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:center;gap:clamp(8px,3vw,28px);padding:14px 12px;pointer-events:none}.hud-stat{display:flex;flex-direction:column;align-items:center;min-width:64px}.hud-label{font-size:10px;letter-spacing:.14em;color:var(--dim)}.hud-value{font-size:clamp(16px,4.5vw,24px);font-weight:700;font-variant-numeric:tabular-nums}.hud-goals{position:absolute;inset:86px 0 auto;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:0 12px;pointer-events:none}.hud-boss{position:absolute;top:104px;left:0;right:0;display:flex;justify-content:center;pointer-events:none}.boss-hud{width:min(420px,86vw);background:transparent;border:none;border-radius:0;padding:0 12px;text-shadow:0 1px 3px rgba(0,0,0,.85)}.boss-bar-label{display:block;text-align:center;font-family:var(--font-num, ui-monospace, monospace);font-size:11px;letter-spacing:.14em;color:var(--dim);margin-bottom:4px}.boss-bar{height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden}.boss-bar-fill{height:100%;background:linear-gradient(90deg,#ff5a5f,#ff8c42);transition:width .25s ease}.boss-weak{display:flex;gap:14px;justify-content:flex-start;padding-left:14px;margin-top:6px}.weak-chip{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--dim)}.weak-chip i{width:10px;height:10px;border-radius:3px;display:inline-block}.weak-chip .weak-icon{width:28px;height:28px;display:block}.goal-chip{display:flex;align-items:center;gap:9px;background:none;border:none;border-radius:999px;padding:9px 18px;font-size:22.8px}.goal-chip b{font-variant-numeric:tabular-nums}.goal-icon{width:39.6px;height:39.6px;display:block}.goal-chip.goal-blocker{border:none}.goal-chip.goal-blocker .goal-icon{width:43.2px;height:43.2px}.goal-count{font-variant-numeric:tabular-nums}.goal-chip.pop{animation:goalPop .34s ease}@keyframes goalPop{0%{transform:scale(1)}45%{transform:scale(1.35);box-shadow:0 0 0 4px #ffd60a59}to{transform:scale(1)}}.collect-ghost{position:fixed;left:0;top:0;width:51px;height:51px;z-index:40;pointer-events:none;transform:translate(-50%,-50%);will-change:transform,left,top,opacity;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}.ultimate-wrap{position:absolute;right:16px;bottom:78px;display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--border);border-radius:14px;background:#1e2233eb;pointer-events:auto}.ultimate-wrap.hidden{display:none}.ultimate-slots{display:flex;gap:6px;pointer-events:none}.ultimate-slot{width:42px;height:42px;border-radius:9px;border:1px dashed rgba(168,176,200,.5);background:#ffffff0a;display:flex;align-items:center;justify-content:center;transition:border-color .2s,background .2s}.ultimate-slot img{width:34px;height:34px;display:block}.ultimate-slot.filled{border-style:solid;border-color:var(--ult-color, #4c9aff);background:#4c9aff24}.ultimate-slot.pop{animation:goalPop .34s ease}.ultimate-use{font-family:inherit;font-size:14px;font-weight:600;letter-spacing:.06em;padding:12px 16px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--dim);cursor:pointer;transition:color .15s,border-color .15s,background .15s,box-shadow .2s}.ultimate-use:disabled{opacity:.4;cursor:not-allowed}.ultimate-use.ready{color:#fff;border-color:var(--ult-color, #4c9aff);background:#4c9aff2e;box-shadow:0 0 16px var(--ult-color, #4c9aff)}.ultimate-use.selected{color:var(--accent-2);border-color:var(--accent-2);animation:ultShake .45s ease-in-out infinite}.ultimate-wrap.ready-glow{border-color:var(--ult-color, #4c9aff);animation:ultReadyGlow 1.2s ease-in-out infinite}@keyframes ultReadyGlow{0%,to{box-shadow:0 0 8px var(--ult-color, #4c9aff)}50%{box-shadow:0 0 28px var(--ult-color, #4c9aff),0 0 10px var(--ult-color, #4c9aff) inset}}.bosscoin-tray{position:absolute;right:16px;bottom:158px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:14px;background:#1e2233eb;pointer-events:auto}.bosscoin-tray.hidden{display:none}.bosscoin-tray.ready-glow{border-color:#e7b84b;animation:coinReadyGlow 1.4s ease-in-out infinite}@keyframes coinReadyGlow{0%,to{box-shadow:0 0 8px #e7b84bb3}50%{box-shadow:0 0 26px #e7b84b,0 0 10px #e7b84b66 inset}}.bosscoin-label{font-size:12px;font-weight:600;color:#ffd866;letter-spacing:.05em;align-self:center}.bosscoin-coins{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:220px}.bosscoin-coin{width:56px;min-height:52px;padding:3px;border-radius:50%;border:2px solid #8a6a16;background:radial-gradient(circle at 35% 30%,#fff3c4,#e7b84b 60%,#8a6a16);cursor:pointer;transition:transform .12s,box-shadow .2s}.bosscoin-coin:hover:not(:disabled){transform:translateY(-2px) scale(1.05);box-shadow:0 0 14px #e7b84be6}.bosscoin-coin:disabled{opacity:.4;cursor:not-allowed}.bosscoin-coin img{width:48px;height:48px;border-radius:50%;display:block;object-fit:contain}.item-bar{position:absolute;left:16px;bottom:78px;display:flex;gap:8px;padding:8px;border:1px solid var(--border);border-radius:14px;background:#1e2233eb;pointer-events:auto}.item-bar.hidden{display:none}.item-btn{position:relative;width:48px;height:48px;padding:6px;border-radius:10px;border:1px solid var(--border);background:#ffffff0d;cursor:pointer;transition:transform .12s,box-shadow .2s,border-color .15s}.item-btn:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent-2)}.item-btn:disabled{opacity:.4;cursor:not-allowed}.item-btn.selected{border-color:var(--accent-2);box-shadow:0 0 14px var(--accent-2);animation:ultShake .5s ease-in-out infinite}.item-btn img{width:100%;height:100%;object-fit:contain;display:block}.item-count{position:absolute;right:-4px;bottom:-4px;min-width:16px;padding:0 4px;border-radius:8px;background:#1b2030;border:1px solid var(--border);font-size:11px;font-weight:700;color:#ffd866;text-align:center}.hud-wallet{position:absolute;top:14px;left:14px;z-index:30;display:flex;gap:12px;padding:6px 12px;border:1px solid var(--border);border-radius:12px;background:#1e2233e6;font-family:ui-monospace,Consolas,monospace;font-size:14px;pointer-events:none}.hud-wallet.hidden{display:none}.wallet-item{display:inline-flex;align-items:center;gap:5px}.wallet-item b{color:#ffd866}.wallet-gem b{color:#4cc2ff}.wallet-coin b{color:#ffd866}.panel-root{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#060810b8;pointer-events:auto}.panel-root.hidden{display:none}.sheet{width:min(520px,92vw);max-height:86vh;overflow-y:auto;padding:20px;border:1px solid var(--border);border-radius:16px;background:#1a1f2e;color:#fff;font-family:inherit}.sheet h2{margin:0 0 4px;font-size:20px;letter-spacing:.06em}.sheet-sub{margin:0 0 14px;color:var(--dim);font-size:13px}.loadout-list,.shop-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.loadout-row,.shop-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#ffffff0a}.loadout-row img,.shop-row img{width:34px;height:34px;object-fit:contain}.lo-name{flex:1;font-weight:600}.lo-owned{font-size:12px;color:var(--dim)}.lo-minus,.lo-plus{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:#ffffff0f;color:#fff;font-size:16px;cursor:pointer}.lo-minus:disabled,.lo-plus:disabled{opacity:.35;cursor:not-allowed}.lo-val{min-width:20px;text-align:center;font-family:ui-monospace,Consolas,monospace}.shop-info{flex:1;display:flex;flex-direction:column}.shop-info i{font-style:normal;font-size:12px;color:var(--dim)}.shop-price{font-family:ui-monospace,Consolas,monospace;color:#ffd866;margin-right:8px}.sheet-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:8px}.sheet-actions>span{margin-right:auto;color:var(--dim);font-size:13px}.coin-toss{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;pointer-events:none}.coin-toss.hidden{display:none}.coin3d{position:relative;width:72px;height:72px;transform-style:preserve-3d}.coin-face{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;border:3px solid #8a6a16;background:radial-gradient(circle at 35% 30%,#fff3c4,#e7b84b 60%,#8a6a16);display:flex;align-items:center;justify-content:center;overflow:hidden}.coin-face img{width:70%;height:70%;object-fit:contain}.coin-back{transform:rotateX(180deg);color:#4a3a12;font-size:30px}.coin-success{filter:drop-shadow(0 0 14px #ffd866)}.coin-fail{filter:grayscale(.7) brightness(.8)}.coin-ring{position:absolute;left:50%;top:50%;width:90px;height:90px;border-radius:50%;border:4px solid #ffd866;box-shadow:0 0 24px #ffb302;pointer-events:none}.coin-particle{position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%}body.aim-mode #game-root canvas{cursor:crosshair}@keyframes ultShake{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-2px) rotate(-3deg)}75%{transform:translate(2px) rotate(3deg)}}.celebration{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden;background:radial-gradient(circle at center,#0a0c1859,#060810d1);transition:opacity .3s ease}.celebration.win{background:radial-gradient(circle at center,#3c300a73,#060810d9)}.celebration.fade{opacity:0}.celebration-text{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%) scale(1);font-family:var(--font-num, system-ui, sans-serif);font-size:clamp(34px,11vw,96px);font-weight:900;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;animation:celebrationText .55s cubic-bezier(.2,1.5,.4,1) both}.celebration.win .celebration-text{color:#ffd60a;text-shadow:0 0 26px rgba(255,214,10,.6),0 4px 0 rgba(0,0,0,.5)}.celebration.lose .celebration-text{color:#ff5a5f;text-shadow:0 0 26px rgba(255,90,95,.55),0 4px 0 rgba(0,0,0,.5)}.celebration-particle{position:absolute;border-radius:50%;transform:translate(-50%,-50%);will-change:transform,opacity}@keyframes celebrationText{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.goal-dot{width:12px;height:12px;border-radius:3px;display:inline-block}.hud-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#080a14b8;backdrop-filter:blur(4px);z-index:20}.hud-overlay.hidden,.hud-loading.hidden{display:none}.settle-panel,.map-panel{background:var(--panel);border:2px solid var(--border);border-radius:18px;padding:26px 30px;text-align:center;min-width:280px;box-shadow:0 20px 50px #00000073}.settle-panel h2{margin:0 0 6px;letter-spacing:.12em}.settle-panel h2.win{color:var(--gold)}.settle-panel h2.lose{color:#ff6b6b}.settle-stars{font-size:28px;color:var(--gold);letter-spacing:4px}.settle-buttons{display:flex;gap:10px;justify-content:center;margin-top:18px}.btn{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:999px;padding:10px 20px;font-size:14px;cursor:pointer;transition:transform .15s,background .15s,border-color .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#06101f;font-weight:700}.map-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0}.map-cell{width:52px;height:52px;border-radius:12px;border:2px solid var(--border);background:#4c9aff1f;color:var(--text);font-size:15px;font-weight:700;cursor:pointer}.map-cell.locked{opacity:.35;cursor:not-allowed}.hud-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;letter-spacing:.1em;color:var(--dim);background:#080a1499;z-index:30}.hud-toolbar{position:absolute;top:14px;right:14px;display:flex;gap:8px;z-index:30}.hud-toolbar .hidden{display:none}html,body{overscroll-behavior:none}@media (max-width: 620px){.hud-top{top:calc(52px + env(safe-area-inset-top));padding:4px 8px;gap:8px}.hud-stat{font-size:11px;padding:3px 8px}.hud-stat .hud-value{font-size:26px}.hud-wallet{top:calc(56px + env(safe-area-inset-top));left:8px;font-size:12px;padding:4px 8px;gap:8px}body.in-level .hud-wallet{top:calc(27px + env(safe-area-inset-top))}body.map-open .hud-wallet,body.map-open .hud-toolbar{top:calc(56px + env(safe-area-inset-top))}.hud-toolbar{top:calc(8px + env(safe-area-inset-top));right:8px;left:auto;bottom:auto;transform:none;gap:6px}.hud-toolbar .btn{padding:8px 12px;font-size:12px;min-height:36px}.hud-boss{top:calc(134px + env(safe-area-inset-top))}.hud-layer.boss-level .hud-goals{top:calc(220px + env(safe-area-inset-top))}.boss-hud{width:min(92vw,520px)}.hud-goals{top:calc(132px + env(safe-area-inset-top));bottom:auto;padding:0 6px;gap:6px}.goal-chip{font-size:13.2px}.ultimate-wrap{left:50%;right:auto;transform:translate(-50%);bottom:calc(4px + env(safe-area-inset-bottom));padding:6px;gap:6px}.hud-layer.has-items .ultimate-wrap{bottom:calc(74px + env(safe-area-inset-bottom))}.ultimate-slot{width:34px;height:34px}.ultimate-slot img{width:26px;height:26px}.ultimate-use{padding:10px 12px;font-size:13px}.bosscoin-tray{right:8px;left:auto;bottom:calc(4px + env(safe-area-inset-bottom));padding:6px 8px;max-width:46vw}.bosscoin-coin{width:44px;height:44px}.bosscoin-coins{max-width:40vw;gap:6px}.item-bar{left:50%;transform:translate(-50%);bottom:calc(4px + env(safe-area-inset-bottom));padding:6px;gap:6px}.item-btn{width:44px;height:44px;padding:5px}.sheet{width:94vw;max-height:78vh;padding:14px}.map3d-panel{width:100%;height:100%}.map3d-header{min-height:calc(48px + env(safe-area-inset-top));padding:calc(4px + env(safe-area-inset-top)) 8px 4px}.map3d-title{font-size:13px;letter-spacing:.1em}.map-scroll{padding:0 4px}.map-node{width:40px;height:40px;font-size:13px}.map-node.boss-node{width:116px;height:116px;border-radius:22px}.boss-fig-wrap{width:104px;height:98px}.boss-decor{width:190px;height:190px}.chapter-motif{width:40px;height:36px;opacity:.26}}@media (max-width: 380px){.hud-toolbar .btn{padding:7px 9px;font-size:11px}.ultimate-slot{width:30px;height:30px}.map-node.boss-node{width:100px;height:100px}.boss-decor{width:165px;height:165px}}@media (max-height: 460px) and (orientation: landscape){.hud-goals{top:calc(64px + env(safe-area-inset-top));bottom:auto}.ultimate-wrap,.item-bar{bottom:calc(46px + env(safe-area-inset-bottom))}.bosscoin-tray{right:8px;top:calc(48px + env(safe-area-inset-top));bottom:auto}}:root{--px-glow: 0 0 0 1px rgba(255, 255, 255, .05) inset, 0 0 12px rgba(90, 160, 255, .14);--px-bevel: inset 0 3px 0 rgba(255, 255, 255, .25), inset 0 -3px 0 rgba(0, 0, 0, .38), inset 3px 0 0 rgba(255, 255, 255, .07), inset -3px 0 0 rgba(0, 0, 0, .22)}.btn,.hud-stat,.ultimate-wrap,.item-bar,.bosscoin-tray,.hud-wallet,.sheet,.panel-root .sheet,.loadout-row,.shop-row,.item-btn,.bosscoin-coin,.ultimate-slot{border-radius:3px}.btn,.hud-stat,.ultimate-wrap,.item-bar,.bosscoin-tray,.hud-wallet{box-shadow:var(--px-glow)}.hud-wallet,.hud-stat,.hud-toolbar .btn,.hud-boss{box-shadow:none}.btn:hover:not(:disabled){box-shadow:0 0 0 1px #78b4ff80 inset,0 0 16px #5aa0ff59}.btn.primary,.ultimate-use.ready{box-shadow:0 0 0 1px #ffffff2e inset,0 0 18px #5aa0ff80}.map-node{border-radius:4px;box-shadow:0 0 0 1px #ffffff0d inset,0 0 10px #00000080}.map-node.boss-node,.chapter-band{border-radius:6px}.hud-value,.map-node-num,.map-boss-label,.bosscoin-uses,.shop-price,.wallet-item b{text-shadow:0 0 6px currentColor}.map3d-title{text-shadow:0 0 10px rgba(120,180,255,.5)}.boss-fig-holder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.boss-fig-holder svg{width:100%;height:100%;overflow:visible;image-rendering:pixelated}.hud-stat{padding:8px 16px;gap:6px}.hud-top{gap:clamp(10px,3vw,34px)}.chapter-motif.pixel-motif svg{image-rendering:pixelated;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}.chapter-motif.pixel-motif.bfd-sway{animation:bfdSway 3.6s ease-in-out infinite}.chapter-motif.pixel-motif.bfd-float{animation:bfdFloat 3s ease-in-out infinite}body.combo-flash:before{content:"";position:fixed;inset:0;z-index:190;pointer-events:none;background:radial-gradient(circle at 50% 45%,#ffe896d9,#ffb43c59 40%,#ffb43c00 75%);animation:comboFlash .28s ease-out forwards}@keyframes comboFlash{0%{opacity:0}25%{opacity:1}to{opacity:0}}.hud-stat .hud-value{color:var(--gold);text-shadow:0 0 8px rgba(255,214,10,.55),0 0 2px rgba(120,80,0,.8)}.hud-stat.bump .hud-value{animation:statBump .28s ease-out}@keyframes statBump{0%{transform:scale(1);color:inherit}35%{transform:scale(1.28);color:#ffe9a8}to{transform:scale(1);color:inherit}}.home-overlay{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 24px) 24px calc(env(safe-area-inset-bottom,0px) + 10px);background:radial-gradient(circle at 50% 32%,#2c345cb8,#090b16f2 72%);pointer-events:auto}.home-card{width:min(420px,92vw);display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.home-icon{width:108px;height:108px;border-radius:26px;box-shadow:0 12px 34px #0000008c,0 0 0 1px #ffffff0f}.home-title{margin:4px 0 0;font-size:40px;letter-spacing:.14em;color:var(--text);font-family:var(--font-num, ui-monospace, monospace)}.home-tagline{margin:-8px 0 0;color:#fff9;font-size:14px;letter-spacing:.1em}.home-play{margin-top:8px;min-width:210px;font-size:20px;padding:14px 28px}.home-install{position:relative;margin-top:12px;width:100%;display:flex;flex-direction:column;gap:6px;padding:14px 40px 14px 16px;border:1px solid var(--border);border-radius:12px;background:#1e2233d9;text-align:left}.home-install b{color:var(--gold);font-size:14px}.home-install p{margin:0;font-size:13px;line-height:1.45;color:#ffffffc7}.home-install-steps{color:var(--gold)!important;font-size:12.5px!important}.home-install-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.home-install-close{position:absolute;top:6px;right:6px;width:28px;height:28px;border:0;background:transparent;color:#fff9;font-size:20px;line-height:1;cursor:pointer}.btn,.btn.primary,.btn.ghost,.btn.home-play{--px-bevel: inset 0 3px 0 rgba(255, 255, 255, .25), inset 0 -3px 0 rgba(0, 0, 0, .38), inset 3px 0 0 rgba(255, 255, 255, .07), inset -3px 0 0 rgba(0, 0, 0, .22);border-radius:0;border:2px solid #0b0e18;padding:11px 20px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text);background:linear-gradient(180deg,#333d60,#1b2237);box-shadow:var(--px-bevel);filter:drop-shadow(0 4px 0 rgba(0,0,0,.5));clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));transition:transform .06s steps(2,end),filter .06s steps(2,end)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--px-bevel);filter:drop-shadow(0 5px 0 rgba(0,0,0,.5))}.btn:active:not(:disabled){transform:translateY(3px);filter:drop-shadow(0 1px 0 rgba(0,0,0,.5))}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary,.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#6db6ff,#3f7fe0);color:#06101f}.btn.ghost{background:linear-gradient(180deg,#2d3653,#1a2036);color:var(--text)}.btn.home-play{min-width:210px;padding:14px 28px;font-size:20px;animation:none}.item-btn,.ultimate-use{border-radius:0;border:2px solid #0b0e18;box-shadow:var(--px-bevel);filter:drop-shadow(0 3px 0 rgba(0,0,0,.5));clip-path:polygon(0 3px,3px 3px,3px 0,calc(100% - 3px) 0,calc(100% - 3px) 3px,100% 3px,100% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 100%,3px 100%,3px calc(100% - 3px),0 calc(100% - 3px))}.ultimate-use{background:linear-gradient(180deg,#2d3653,#1a2036);color:var(--text)}.map-codex-btn{position:absolute;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:30}.codex-sheet{max-height:84vh;overflow-y:auto}.codex-section{margin:14px 0 8px;font-size:14px;letter-spacing:.08em;color:var(--gold);text-shadow:0 0 8px rgba(255,214,10,.4)}.codex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.codex-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:1px solid var(--border);border-radius:4px;background:#ffffff08;text-align:center}.codex-card img{width:46px;height:46px;image-rendering:pixelated}.codex-card b{font-size:13px}.codex-card span{font-size:11px;color:var(--dim);line-height:1.35}.codex-boss-fig svg{width:64px;height:62px;overflow:visible}.codex-empty{margin:4px 0;color:var(--dim);font-size:12px}.hud-toast{position:absolute;left:50%;top:calc(96px + env(safe-area-inset-top));transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--gold);border-radius:4px;background:#1e1a0af2;color:var(--gold);font-size:14px;z-index:90;pointer-events:none;animation:toastIn .25s ease-out;box-shadow:0 0 18px #ffd60a73}.hud-toast.out{opacity:0;transition:opacity .45s ease}.hud-toast img{width:34px;height:34px;border-radius:50%}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.bosscoin-coin span{display:block;margin-top:2px;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.1;color:var(--gold);opacity:.85}.bosscoin-coin{display:flex;flex-direction:column;align-items:center}.pixel-motif svg{filter:drop-shadow(2px 2px 0 rgba(10,12,20,.5))}.settle-reason{margin:2px 0 10px;font-size:13px;color:#ffb0a8;text-align:center}body.poison-locked .item-bar,body.poison-locked .ultimate-wrap,body.poison-locked .bosscoin-tray{filter:grayscale(.85) brightness(.7);pointer-events:none}.settle-fly-star{position:fixed;z-index:80;font-size:26px;line-height:1;color:#ffd60a;text-shadow:0 0 10px rgba(255,214,10,.85);pointer-events:none;transform:translate(-50%,-50%)}@keyframes boardShake{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-2px,1px) rotate(-.6deg)}50%{transform:translate(2px,-1px) rotate(.6deg)}75%{transform:translate(-1px,-1px) rotate(-.3deg)}}body.board-shake #game-root{animation:boardShake .18s linear infinite}body.settle-lock #game-root canvas{pointer-events:none}body.settle-lock .board-shake{animation:boardShake .18s linear infinite}#build-stamp{position:fixed;left:6px;bottom:4px;z-index:200;font-size:10px;color:#c8d2eb80;pointer-events:none}
