*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0d0d14;--color-surface: #1a1a2a;--color-border: #3a3a5a;--color-text: #e8e8f0;--color-muted: #8888aa;--color-accent: #7a6fff;--color-danger: #ff5555;--color-success: #55cc77;--color-warn: #ffcc55;--color-hp: #55cc77;--color-block: #55aaff;--color-energy: #ffcc55;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,monospace,sans-serif;font-size:14px;line-height:1.5}body{background:var(--color-bg);color:var(--color-text);min-height:100vh;-webkit-text-size-adjust:100%;overscroll-behavior:none}#root{min-height:100vh;display:flex;flex-direction:column}.page{flex:1;padding:16px;max-width:900px;margin:0 auto;width:100%}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:8px}button{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:4px;padding:6px 14px;font-size:13px;min-height:36px;transition:background .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:hover{background:#2a2a3e}button:active{background:#3a3a52}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}button.primary:hover{background:#6a5fee}button.primary:active{background:#5a4fde}button.danger{border-color:var(--color-danger);color:var(--color-danger)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:12px}.tag{display:inline-block;padding:2px 7px;border-radius:3px;font-size:11px;background:#2a2a3e;border:1px solid var(--color-border)}.hp-bar{height:6px;background:#2a2a3e;border-radius:3px;overflow:hidden;width:100%}.hp-bar-fill{height:100%;background:var(--color-hp);transition:width .3s}.hp-bar-fill.low{background:var(--color-danger)}.card{border:1px solid var(--color-border);border-radius:6px;padding:8px;width:96px;min-height:120px;background:var(--color-surface);cursor:pointer;display:flex;flex-direction:column;gap:4px;-webkit-user-select:none;user-select:none;transition:transform .1s,border-color .1s;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.card:hover{transform:translateY(-4px);border-color:var(--color-accent)}.card:active{transform:translateY(-2px);border-color:var(--color-accent);opacity:.85}.card.unaffordable{opacity:.5;cursor:not-allowed}.card.unaffordable:hover{transform:none;border-color:var(--color-border)}.card.unaffordable:active{transform:none;opacity:.5}.card .card-cost{font-size:18px;font-weight:700;color:var(--color-energy);line-height:1}.card .card-name{font-size:12px;font-weight:700;line-height:1.3}.card .card-type{font-size:10px;color:var(--color-muted)}.card .card-desc{font-size:10px;color:var(--color-muted);margin-top:auto;line-height:1.4}.card.attack{border-color:#5a2222}.card.attack:not(.unaffordable):hover{border-color:#c55}.card.skill{border-color:#1a3050}.card.skill:not(.unaffordable):hover{border-color:#58c}.card.power{border-color:#2a1a50}.card.power:not(.unaffordable):hover{border-color:#86c}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px var(--color-accent)}50%{box-shadow:0 0 12px var(--color-accent),0 0 20px #7a6fff66}}button.primary.pulse{animation:pulse-glow 1.4s ease-in-out infinite}.hand-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.hand-scroll>.card{scroll-snap-align:start}.hand-scroll::-webkit-scrollbar{height:4px}.hand-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.battle-log{background:#0a0a12;border:1px solid var(--color-border);border-radius:4px;padding:8px;font-family:monospace;font-size:11px;height:140px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;-webkit-overflow-scrolling:touch}.log-entry{color:var(--color-muted)}.log-entry.damage{color:var(--color-danger)}.log-entry.heal{color:var(--color-hp)}.log-entry.phase{color:var(--color-accent);font-weight:700}.log-entry.warn{color:var(--color-warn)}hr{border:none;border-top:1px solid var(--color-border)}h1{font-size:22px;font-weight:700}h2{font-size:16px;font-weight:700}h3{font-size:13px;font-weight:700;color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em}@media(max-width:480px){.page{padding:12px}.card{width:88px;min-height:112px;padding:7px}button{min-height:40px;font-size:14px}.card:hover{transform:none;border-color:var(--color-border)}}
