:root{--bg: #0a0a0f;--bg-card: #12121a;--bg-elevated: #1a1a26;--accent: #ff2d55;--accent-glow: rgba(255, 45, 85, .4);--cyan: #00e5ff;--gold: #ffd700;--text: #f0f0f5;--text-muted: #8888a0;--success: #22c55e;--danger: #ef4444;--border: #2a2a3a;--iron-fist: #ff4444;--ghost-step: #44ff88;--mind-cage: #8844ff;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:var(--bg);background-image:radial-gradient(ellipse at 50% 0%,rgba(255,45,85,.08) 0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(0,229,255,.05) 0%,transparent 50%);overflow-x:hidden;-webkit-tap-highlight-color:transparent}#root{min-height:100vh;max-width:480px;margin:0 auto}button{font-family:inherit;cursor:pointer;border:none;outline:none}.app{padding:16px 16px 32px;min-height:100vh}.logo{font-size:28px;font-weight:900;letter-spacing:4px;text-align:center;margin-bottom:4px;background:linear-gradient(135deg,var(--accent),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.subtitle{text-align:center;color:var(--text-muted);font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-bottom:24px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:16px;margin-bottom:12px}.btn{display:block;width:100%;padding:14px 20px;border-radius:12px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:transform .1s,box-shadow .2s}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),#cc1144);color:#fff;box-shadow:0 4px 20px var(--accent-glow)}.btn-secondary{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}.btn-cyan{background:linear-gradient(135deg,#0088aa,var(--cyan));color:#000}.btn:disabled{opacity:.4;cursor:not-allowed}.hp-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin-top:4px}.hp-fill{height:100%;border-radius:4px;transition:width .5s ease}.hp-fill.player{background:linear-gradient(90deg,var(--cyan),#0088cc)}.hp-fill.enemy{background:linear-gradient(90deg,var(--accent),#aa1133)}.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.zone-btn{padding:16px 8px;border-radius:12px;background:var(--bg-elevated);border:2px solid var(--border);color:var(--text);font-size:13px;font-weight:600;transition:all .15s}.zone-btn.selected{border-color:var(--accent);background:#ff2d5526;box-shadow:0 0 12px var(--accent-glow)}.zone-btn.block.selected{border-color:var(--cyan);background:#00e5ff1a;box-shadow:0 0 12px #00e5ff4d}.timer{font-size:32px;font-weight:900;text-align:center;font-variant-numeric:tabular-nums}.timer.urgent{color:var(--accent);animation:pulse .5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.faction-iron{color:var(--iron-fist)}.faction-ghost{color:var(--ghost-step)}.faction-mind{color:var(--mind-cage)}.round-log{font-size:12px;color:var(--text-muted);max-height:80px;overflow-y:auto}.round-log .crit{color:var(--gold)}.round-log .dodge{color:var(--cyan)}.round-log .pierce{color:var(--accent)}.stat-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0}.stat-label{color:var(--text-muted)}.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hub-btn{padding:20px 12px;border-radius:14px;background:var(--bg-card);border:1px solid var(--border);color:var(--text);text-align:center}.hub-btn .icon{font-size:28px;margin-bottom:6px}.hub-btn .label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.fighter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.fighter-card{background:var(--bg-card);border:2px solid var(--border);border-radius:12px;padding:6px 4px 8px;text-align:center;color:var(--text)}.fighter-card.selected{box-shadow:0 0 14px #00e5ff40}.fighter-card-name{font-size:7px;font-weight:800;letter-spacing:.3px;margin-top:4px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fighter-card-style{font-size:6px;color:var(--text-muted);margin-top:1px}.fighter-card-tier{font-size:6px;font-weight:700;margin-top:2px;text-transform:uppercase}.fighter-preview{border-color:var(--border)}.fighter-portrait.selected{outline:none}.select-grid{display:grid;grid-template-columns:1fr;gap:8px}.select-option{padding:12px 16px;border-radius:10px;border:2px solid var(--border);background:var(--bg-elevated);text-align:left}.select-option.selected{border-color:var(--accent)}.select-option .title{font-weight:700;font-size:14px}.select-option .desc{font-size:12px;color:var(--text-muted);margin-top:2px}.wallet-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.balance{font-size:18px;font-weight:800;color:var(--gold)}.battle-layout{display:flex;flex-direction:column;gap:0;margin:-8px -4px 0}.battle-arena{position:relative;min-height:220px;border-radius:16px;overflow:hidden;border:1px solid var(--border);margin-bottom:12px}.battle-arena-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(255,45,85,.12) 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 50% 50%,rgba(0,229,255,.06) 0%,transparent 70%),linear-gradient(180deg,#0d0d14,#12121c 45%,#1a1520)}.battle-arena-ring{position:absolute;left:50%;bottom:18%;transform:translate(-50%);width:88%;height:42%;border:2px solid rgba(255,45,85,.35);border-radius:8px;box-shadow:inset 0 0 40px #ff2d5514,0 0 24px #ff2d551f;clip-path:polygon(8% 0%,92% 0%,100% 15%,100% 85%,92% 100%,8% 100%,0% 85%,0% 15%);pointer-events:none}.battle-arena-hud{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:10px 12px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.arena-round{color:var(--text-muted)}.arena-timer{font-size:22px;font-weight:900;font-variant-numeric:tabular-nums;color:var(--text)}.arena-timer.urgent{color:var(--accent);animation:pulse .5s infinite}.arena-phase{color:var(--cyan);font-size:10px}.battle-arena-versus{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;padding:0 8px 16px;min-height:160px}.arena-fighter{flex:1;display:flex;flex-direction:column;align-items:center;max-width:42%;transition:transform .15s ease}.arena-fighter--player{align-items:flex-start;padding-left:4px}.arena-fighter--enemy{align-items:flex-end;padding-right:4px}.arena-fighter--hit{animation:arena-hit .45s ease}@keyframes arena-hit{0%,to{transform:translate(0);filter:brightness(1)}25%{transform:translate(4px);filter:brightness(1.4)}50%{transform:translate(-3px)}}.arena-fighter--enemy.arena-fighter--hit{animation-name:arena-hit-enemy}@keyframes arena-hit-enemy{0%,to{transform:translate(0);filter:brightness(1)}25%{transform:translate(-4px);filter:brightness(1.4)}50%{transform:translate(3px)}}.arena-fighter-hp{width:100%;margin-bottom:6px}.arena-fighter--enemy .arena-fighter-hp{text-align:right}.arena-fighter-name{font-size:10px;font-weight:800;letter-spacing:.3px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.arena-hp-bar{height:6px;margin-top:0}.arena-hp-text{font-size:9px;color:var(--text-muted);margin-top:2px;font-variant-numeric:tabular-nums}.arena-fighter-sprite-wrap{position:relative;display:flex;flex-direction:column;align-items:center}.arena-sprite{border-radius:12px!important;box-shadow:0 8px 24px #00000080!important}.arena-fighter-shadow{width:70%;height:8px;margin-top:-4px;background:radial-gradient(ellipse,rgba(0,0,0,.55) 0%,transparent 70%);border-radius:50%}.arena-vs{position:absolute;left:50%;bottom:38%;transform:translate(-50%);font-size:14px;font-weight:900;letter-spacing:2px;color:var(--gold);text-shadow:0 0 12px rgba(255,215,0,.5);z-index:3;pointer-events:none}.battle-controls{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:14px}.battle-controls-label{font-weight:700;font-size:11px;margin-bottom:6px;letter-spacing:1px}.battle-controls-label.strike{color:var(--accent)}.battle-controls-label.block{color:var(--cyan)}.battle-round-log{margin-top:10px;margin-bottom:0;max-height:56px}.equipment-loadout{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto auto auto;grid-template-areas:". head ." "hands body core" ". feet ." ". injector .";gap:8px;position:relative;padding:8px 0}.equip-loadout-silhouette{display:none}.equip-slot{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:10px;border:1px dashed var(--border);background:var(--bg-elevated);color:var(--text)}.equip-slot--filled{border-style:solid;border-color:#00e5ff40}.equip-slot--selected{border-color:var(--cyan);box-shadow:0 0 12px #00e5ff33}.equip-slot-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.equip-slot-empty{border-radius:8px;border:1px dashed rgba(255,255,255,.12);background:#0003}.slot-item-picker{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.slot-item-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);max-width:88px}.slot-item-btn--active{border-color:var(--cyan);opacity:.7}.slot-item-name{font-size:7px;font-weight:700;text-align:center;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.gear-icon{image-rendering:pixelated;flex-shrink:0}.gear-card--locked{opacity:.85}.shop-class-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.shop-filter-chip{padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.shop-filter-chip.active{border-color:var(--cyan);color:var(--cyan);background:#00e5ff14}.xp-bar-wrap{margin-bottom:4px}.xp-bar{height:8px;border-radius:999px;background:var(--bg-elevated);overflow:hidden;border:1px solid var(--border)}.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));border-radius:999px;transition:width .3s ease}.stat-allocator{margin-top:0}.stat-alloc-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.stat-alloc-row:last-child{border-bottom:none}.stat-alloc-value{flex:1;text-align:right;font-weight:700;font-size:14px}.stat-alloc-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--cyan);background:#00e5ff1a;color:var(--cyan);font-weight:900;font-size:18px;line-height:1}.stat-alloc-btn:disabled{opacity:.35}
