:root{--card-h:200px;--card-w:calc(var(--card-h) * 11 / 16);--card-w-hand:var(--card-w);--card-h-hand:var(--card-h);--human-card-h:224px;--card-w-detail:330px;--card-h-detail:calc(var(--card-w-detail) * 16 / 11);--bg-0:#0a0d16;--bg-1:#131826;--bg-2:#1c2336;--edge:#2a3350;--edge-hi:#3f4c78;--ink:#e6ecff;--ink-dim:#9aa5c7;--ink-faint:#626b8a;--neon-cyan:#22e0ff;--neon-magenta:#ff3ac9;--neon-lime:#b6ff4c;--neon-amber:#ffb648;--credits:#b6ff4c;--signal:#22e0ff;--hardware:#ff3ac9;--influence:#c77dff;--grid:#a06cff;--generic:#c9d2ee;--frame-operative:linear-gradient(180deg, #22344e 0%, #0f1a2b 100%);--frame-asset:linear-gradient(180deg, #3a2a4e 0%, #180f2b 100%);--frame-resource:linear-gradient(180deg, #2a3d1f 0%, #10190b 100%);--frame-operation:linear-gradient(180deg, #4e223a 0%, #2b0f22 100%);--shadow-card:0 10px 25px #0009, 0 2px 6px #00000080;--shadow-hover:0 20px 45px #22e0ff40, 0 6px 20px #000000b3}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 20% 0%, #22e0ff12, transparent 40%), radial-gradient(circle at 80% 100%, #ff3ac90f, transparent 40%), var(--bg-0);min-height:100vh;color:var(--ink);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}.app-header{border-bottom:1px solid var(--edge);z-index:90;-webkit-backdrop-filter:blur(10px);background:linear-gradient(90deg,#0a0d16f2,#141828f2);justify-content:space-between;align-items:center;gap:24px;padding:8px 22px;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:2px;text-transform:uppercase;color:var(--neon-cyan);text-shadow:0 0 12px #22e0ff80;white-space:nowrap;margin:0;font-size:20px}.app-header .subtitle{color:var(--ink-faint);letter-spacing:1px;margin-left:8px;font-size:12px}.turn-hud{align-items:center;gap:20px;display:flex}.hud-block{flex-direction:column;align-items:flex-start;min-width:60px;display:flex}.hud-label{letter-spacing:2px;text-transform:uppercase;color:var(--ink-faint);font-size:9px}.hud-value{color:var(--ink);letter-spacing:.5px;font-size:14px;font-weight:700}.hud-value.player-p1{color:var(--neon-cyan);text-shadow:0 0 8px #22e0ff80}.hud-value.player-p2{color:var(--neon-magenta);text-shadow:0 0 8px #ff3ac980}.btn-open-admin,.btn-new-match{border:1px solid var(--edge-hi);color:var(--ink-dim);letter-spacing:2px;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:10px;font-weight:700;text-decoration:none;transition:all .15s}.btn-open-admin:hover{border-color:var(--neon-magenta);color:var(--neon-magenta);box-shadow:0 0 12px #ff3ac933}.btn-new-match:hover{border-color:var(--neon-lime);color:var(--neon-lime);box-shadow:0 0 12px #b6ff4c33}.match-menu-overlay{z-index:220;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.match-menu-overlay.hidden{display:none}.match-menu-backdrop{-webkit-backdrop-filter:blur(10px);background:#060a14e6;position:absolute;inset:0}.match-menu-panel{z-index:2;border:1px solid var(--neon-cyan);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));text-align:center;border-radius:16px;width:90vw;max-width:720px;padding:40px 48px;animation:.3s cubic-bezier(.34,1.56,.64,1) pop-in;position:relative}.match-menu-title{letter-spacing:8px;text-transform:uppercase;color:var(--neon-cyan);text-shadow:0 0 24px #22e0ffb3;margin-bottom:6px;font-size:34px;font-weight:900}.match-menu-subtitle{color:var(--ink-dim);letter-spacing:3px;text-transform:uppercase;margin-bottom:32px;font-size:12px}.match-menu-options{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.match-option{border:1px solid var(--edge-hi);color:var(--ink);cursor:pointer;background:#ffffff08;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:24px 20px;font-family:inherit;transition:all .18s;display:flex}.match-option:hover{border-color:var(--neon-cyan);background:#22e0ff14;transform:translateY(-2px);box-shadow:0 0 20px #22e0ff33}.option-icon{margin-bottom:4px;font-size:40px}.option-title{letter-spacing:2px;text-transform:uppercase;color:var(--neon-cyan);font-size:14px;font-weight:700}.option-desc{color:var(--ink-dim);letter-spacing:.5px;text-align:center;font-size:11px}.btn-end-turn{border:1px solid var(--neon-cyan);color:var(--neon-cyan);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:linear-gradient(#22e0ff26,#22e0ff0d);border-radius:6px;padding:10px 18px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s;box-shadow:0 0 12px #22e0ff33,inset 0 0 12px #22e0ff1a}.btn-end-turn:hover{background:linear-gradient(#22e0ff4d,#22e0ff26);transform:translateY(-1px);box-shadow:0 0 20px #22e0ff66,inset 0 0 20px #22e0ff33}.btn-end-turn:disabled{cursor:wait;opacity:.62;border-color:var(--edge-hi);color:var(--ink-dim);background:#0f1422eb;box-shadow:0 8px 24px #00000073}.btn-end-turn:active{transform:translateY(0)}.btn-end-turn.fab{z-index:80;letter-spacing:3px;border-radius:999px;padding:14px 24px;font-size:14px;position:fixed;bottom:28px;right:28px;box-shadow:0 8px 24px #0009,0 0 24px #22e0ff66,inset 0 0 16px #22e0ff26}.btn-end-turn.fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px #000000b3,0 0 36px #22e0ff99,inset 0 0 24px #22e0ff40}.btn-end-turn.fab:active{transform:translateY(0)}.btn-end-turn.fab.phase-attack{border-color:var(--neon-amber);color:var(--neon-amber);background:linear-gradient(#ffb64833,#ffb64814);box-shadow:0 8px 24px #0009,0 0 24px #ffb64866}.btn-end-turn.fab.phase-attack:hover{box-shadow:0 12px 30px #000000b3,0 0 36px #ffb64899}.btn-end-turn.fab.phase-maneuver{border-color:var(--neon-magenta);color:var(--neon-magenta);background:linear-gradient(#ff3ac933,#ff3ac914);box-shadow:0 8px 24px #0009,0 0 24px #ff3ac966}.btn-end-turn.fab.phase-maneuver:hover{box-shadow:0 12px 30px #000000b3,0 0 36px #ff3ac999}.btn-attack.cancel{border-color:var(--edge-hi);color:var(--ink-dim);box-shadow:none;background:#ffffff0a}.btn-attack.cancel:hover{border-color:var(--neon-magenta);color:var(--neon-magenta);background:#ff3ac914;box-shadow:0 0 12px #ff3ac940}.no-guards{color:var(--ink-faint);letter-spacing:2px;text-transform:uppercase;padding:20px;font-size:12px}.stack-panel{z-index:55;border:1px solid var(--neon-magenta);-webkit-backdrop-filter:blur(8px);background:#0a0d16e6;border-radius:10px;min-width:220px;max-width:320px;padding:12px 14px;position:fixed;bottom:110px;right:28px;box-shadow:0 8px 24px #0009,0 0 20px #ff3ac940}.stack-panel.hidden{display:none}.stack-title{letter-spacing:3px;text-transform:uppercase;color:var(--neon-magenta);text-shadow:0 0 6px #ff3ac999;margin-bottom:8px;font-size:10px}.stack-list{flex-direction:column;gap:6px;display:flex}.stack-chip{border:1px solid var(--edge-hi);color:var(--ink);letter-spacing:.5px;background:#ffffff08;border-radius:6px;padding:6px 10px;font-size:11px}.stack-chip.cancelled{color:var(--ink-faint);border-color:var(--edge);text-decoration:line-through}.response-overlay{z-index:160;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.response-overlay.hidden{display:none}.response-backdrop{-webkit-backdrop-filter:blur(6px);background:#060a14b3;position:absolute;inset:0}.response-panel{z-index:2;border:1px solid var(--neon-magenta);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border-radius:12px;min-width:340px;max-width:90vw;padding:24px 28px;animation:.2s cubic-bezier(.34,1.56,.64,1) pop-in;position:relative;box-shadow:0 0 40px #ff3ac94d}.response-title{letter-spacing:3px;text-transform:uppercase;color:var(--neon-magenta);text-shadow:0 0 12px #ff3ac980;text-align:center;margin-bottom:6px;font-size:16px;font-weight:700}.response-subtitle{color:var(--ink-dim);text-align:center;margin-bottom:16px;font-size:12px;line-height:1.5}.response-panel.trace-panel{border-color:var(--grid);box-shadow:0 0 40px color-mix(in srgb, var(--grid) 32%, transparent)}.response-panel.trace-panel .response-title{color:var(--grid);text-shadow:0 0 12px color-mix(in srgb, var(--grid) 50%, transparent)}.trace-cards{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;display:flex}.btn-trace-play{letter-spacing:.5px;cursor:pointer;color:#0a0d16;background:var(--grid);box-shadow:0 0 14px color-mix(in srgb, var(--grid) 55%, transparent);border:none;border-radius:8px;padding:9px 16px;font-weight:800}.btn-trace-play:hover{filter:brightness(1.12)}.response-stack-preview{flex-direction:column;gap:6px;max-height:200px;margin-bottom:18px;display:flex;overflow-y:auto}.response-actions{justify-content:center;gap:12px;display:flex}.btn-response-play,.btn-response-pass{letter-spacing:2px;text-transform:uppercase;cursor:pointer;border-radius:6px;padding:10px 22px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.btn-response-play{border:1px solid var(--neon-magenta);color:var(--neon-magenta);background:linear-gradient(#ff3ac933,#ff3ac914)}.btn-response-play:hover:not(:disabled){background:linear-gradient(#ff3ac959,#ff3ac92e);box-shadow:0 0 20px #ff3ac966}.btn-response-play:disabled{border-color:var(--edge-hi);color:var(--ink-faint);cursor:not-allowed;background:#ffffff08}.btn-response-pass{border:1px solid var(--edge-hi);color:var(--ink-dim);background:#ffffff0a}.btn-response-pass:hover{border-color:var(--neon-cyan);color:var(--neon-cyan)}.target-picker-overlay,.instant-hand-overlay{z-index:170;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.target-picker-overlay.hidden,.instant-hand-overlay.hidden{display:none}.target-picker-backdrop,.instant-hand-backdrop{-webkit-backdrop-filter:blur(6px);background:#060a14bf;position:absolute;inset:0}.target-picker-panel,.instant-hand-panel{z-index:2;border:1px solid var(--neon-cyan);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border-radius:12px;min-width:340px;max-width:92vw;padding:22px 26px;animation:.2s cubic-bezier(.34,1.56,.64,1) pop-in;position:relative;box-shadow:0 0 40px #22e0ff40}.target-picker-title,.instant-hand-title{letter-spacing:3px;text-transform:uppercase;color:var(--neon-cyan);text-align:center;margin-bottom:16px;font-size:14px;font-weight:700}.target-picker-list{flex-direction:column;gap:8px;max-height:300px;margin-bottom:16px;display:flex;overflow-y:auto}.target-option{border:1px solid var(--edge-hi);cursor:pointer;background:#ffffff08;border-radius:6px;padding:10px 14px;font-size:12px;transition:all .15s}.target-option:hover{border-color:var(--neon-magenta);background:#ff3ac914;transform:translateY(-1px)}.target-line{color:var(--ink)}.target-name{color:var(--neon-cyan);font-weight:700}.instant-hand-list{flex-wrap:wrap;justify-content:center;gap:12px;max-width:80vw;margin-bottom:16px;display:flex}.card.instant-choice{cursor:pointer;transition:transform .15s,filter .15s}.card.instant-choice:hover{filter:drop-shadow(0 0 16px #ff3ac966);transform:translateY(-6px)}.btn-target-cancel,.btn-instant-cancel{border:1px solid var(--edge-hi);color:var(--ink-dim);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:#ffffff0a;border-radius:6px;margin:0 auto;padding:8px 18px;font-family:inherit;font-size:11px;font-weight:700;display:block}.btn-target-cancel:hover,.btn-instant-cancel:hover{border-color:var(--neon-magenta);color:var(--neon-magenta)}.btn-play-instant{letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:1px solid var(--neon-magenta);color:var(--neon-magenta);background:linear-gradient(#ff3ac933,#ff3ac914);border-radius:6px;min-width:140px;padding:10px 20px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s;box-shadow:0 0 14px #ff3ac940}.btn-play-instant:hover:not(:disabled){background:linear-gradient(#ff3ac959,#ff3ac92e);transform:translateY(-1px);box-shadow:0 0 22px #ff3ac980}.btn-play-instant:disabled{border-color:var(--edge-hi);color:var(--ink-faint);cursor:not-allowed;box-shadow:none;background:#ffffff0a}.player-side{transition:box-shadow .3s,border-color .3s}.player-side.active{border-color:var(--neon-cyan);box-shadow:0 0 24px #22e0ff26}.player-side.active.player-opponent{border-color:var(--neon-magenta);box-shadow:0 0 24px #ff3ac926}.player-side.controlling{background:linear-gradient(#182034fa,#121828fa)}.board{grid-template-rows:auto auto auto;gap:4px;padding:8px 16px 96px;display:grid;overflow:visible}.player-side{border:1px solid var(--edge);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border-radius:12px;flex-direction:column;gap:3px;padding:4px 10px;display:flex;position:relative}.player-opponent{--card-h:188px}.player-self{--card-h:var(--human-card-h)}.player-opponent .player-label{flex-direction:row-reverse;justify-content:flex-end}.player-opponent .middle-row{align-items:end}.player-label{align-items:center;gap:14px;padding:0 4px;display:flex}.player-name{letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim);font-size:13px}.hq-badge{border:1px solid var(--edge-hi);background:#22e0ff14;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;display:inline-flex;box-shadow:inset 0 0 12px #22e0ff26}.hq-label{letter-spacing:1.5px;color:var(--neon-cyan);font-size:11px}.hq-hp{color:var(--ink);text-align:center;min-width:24px;font-size:18px;font-weight:700}.middle-row{min-height:calc(var(--card-h) + 16px);grid-template-columns:82px 1fr 130px;align-items:stretch;gap:8px;display:grid}.side-stack{flex-direction:column;gap:6px;display:flex}.pile{border:1px dashed var(--edge-hi);background:repeating-linear-gradient(45deg,#22e0ff08 0 6px,#0000 6px 12px),#ffffff05;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:52px;display:flex}.pile-label{letter-spacing:2px;color:var(--ink-faint);font-size:10px}.pile-count{color:var(--ink);font-size:24px;font-weight:700}.discard-pile{opacity:.7;border-style:solid}.zone{border:1px solid var(--edge);background:#ffffff04;border-radius:8px;min-height:80px;padding:8px}.hand-zone{min-height:calc(var(--card-h-hand) + 6px);border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:4px;padding:4px 12px 8px;display:flex}.hand-zone.concealed{align-items:center;min-height:132px;padding-block:4px}.hand-zone.concealed .card{width:84px;height:122px;margin-inline:-3px}.hand-zone.concealed .card-back-logo{letter-spacing:2px;opacity:.78;font-size:12px;transform:none}.battlefield-zone{min-height:calc(var(--card-h) + 16px);align-items:flex-start;gap:12px;padding:8px 12px;transition:background .2s;display:flex}.battlefield-zone>.dropzone-hint{flex:1;align-self:center}.bf-assets{border-right:1px dashed var(--edge);min-height:var(--card-h);flex-shrink:0;align-items:flex-start;padding-right:6px;display:flex}.bf-assets .card{margin-left:calc(var(--card-w) * -.55)}.bf-assets .card:first-child{margin-left:0}.bf-assets .card:hover{z-index:20}.bf-assets:empty{display:none}.bf-operatives{grid-template-columns:repeat(auto-fill, minmax(var(--card-h), 1fr));grid-auto-rows:var(--card-h);min-height:var(--card-h);flex:1;place-items:start center;gap:8px;display:grid}.battlefield-zone.drag-over{border-color:var(--neon-cyan);background:#22e0ff14;box-shadow:inset 0 0 20px #22e0ff26}.dropzone-hint{color:var(--ink-faint);letter-spacing:2px;text-transform:uppercase;pointer-events:none;-webkit-user-select:none;user-select:none;padding:4px 6px;font-size:11px}.battlefield-zone.has-cards .dropzone-hint{display:none}.resource-row{flex-direction:column;align-items:stretch;gap:6px;padding:4px;display:flex}.pip-large{border:1px solid var(--edge-hi);letter-spacing:1.5px;background:#ffffff08;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:600}.pip-large.credits{color:var(--credits);border-color:#b6ff4c66}.pip-large.signal{color:var(--signal);border-color:#22e0ff66}.pip-large.hardware{color:var(--hardware);border-color:#ff3ac966}.pip-large.influence{color:var(--influence);border-color:#c77dff66}.board-divider{justify-content:center;padding:2px 0;display:flex}.log-panel{border:1px solid var(--edge);width:min(720px,100%);color:var(--ink-dim);background:#ffffff05;border-radius:8px;padding:4px 12px;font-size:11px}.log-title{letter-spacing:2px;text-transform:uppercase;color:var(--neon-cyan);margin-bottom:2px;font-size:10px}.log-body{max-height:36px;overflow-y:auto}.log-entry{padding:2px 0}.log-entry.muted{color:var(--ink-faint)}.card{--card-w:calc(var(--card-h) * 11 / 16);width:var(--card-w);height:var(--card-h);perspective:1000px;cursor:grab;-webkit-user-select:none;user-select:none;font-size:max(4.5px, calc(var(--card-w) / 22));flex-shrink:0;transition:transform .2s,filter .2s;position:relative}.card:active{cursor:grabbing}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.card.flipped .card-inner{transform:rotateY(180deg)}.card.exhausted{transform:rotate(90deg)}.card.exhausted:hover{transform:rotate(90deg)translateY(-4px)}.card-front,.card-back{backface-visibility:hidden;box-shadow:var(--shadow-card);border:1px solid var(--edge-hi);border-radius:12px;position:absolute;inset:0;overflow:hidden}.card-back{background:linear-gradient(135deg,#0a1424 0%,#1a2447 50%,#0a1424 100%);justify-content:center;align-items:center;padding:12px;display:flex;transform:rotateY(180deg)}.card-back:before{content:"";background:repeating-linear-gradient(0deg,#0000 0 3px,#22e0ff0a 3px 4px),repeating-linear-gradient(90deg,#0000 0 3px,#ff3ac908 3px 4px);border:1px solid #22e0ff4d;border-radius:6px;position:absolute;inset:8px}.card-back-logo{z-index:2;color:var(--neon-cyan);letter-spacing:4px;text-transform:uppercase;text-shadow:0 0 12px #22e0ffb3;font-size:18px;font-weight:800;position:relative;transform:rotate(-8deg)}.card-front{color:var(--ink);box-shadow:var(--shadow-card), inset 0 0 0 1px #ffffff12;background:repeating-linear-gradient(115deg,#171c2b 0 3px,#121724 3px 6px);border-color:#ffffff12;padding:.5em}.card-panel{box-sizing:border-box;border:1px solid var(--faction);width:100%;height:100%;box-shadow:0 0 1em -.25em color-mix(in srgb, var(--faction) 80%, transparent), inset 0 0 1em -.45em color-mix(in srgb, var(--faction) 70%, transparent);background:#06080e;border-radius:6px;flex-direction:column;display:flex;position:relative;overflow:hidden}.detail-card .card-front{border-color:#0000}.card-art{background:radial-gradient(120% 85% at 72% 12%, color-mix(in srgb, var(--faction) 42%, transparent), transparent 60%), linear-gradient(158deg, color-mix(in srgb, var(--faction) 26%, #0b1020), #070a12 78%);flex:0 0 56%;position:relative;overflow:hidden}.card-art-scrim{pointer-events:none;background:linear-gradient(#0000,#06080ee6);height:2.4em;position:absolute;bottom:0;left:0;right:0}.card-art-photo{z-index:0;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.card-cost{z-index:3;flex-wrap:wrap;justify-content:flex-end;gap:.25em;max-width:62%;display:flex;position:absolute;top:.5em;right:.5em}.pip{color:#0a0d16;border-radius:50%;justify-content:center;align-items:center;width:1.6em;height:1.6em;font-size:.8em;font-weight:800;display:flex;box-shadow:0 1.5px 3px #0009,inset 0 .5px .5px #ffffff59}.pip.credits{background:var(--credits)}.pip.signal{background:var(--signal)}.pip.hardware{background:var(--hardware)}.pip.influence{background:var(--influence)}.pip.generic{background:var(--generic)}.card-state-badge{z-index:3;letter-spacing:.11em;text-transform:uppercase;color:#dcefff;background:#060a14b8;border-radius:999px;align-items:center;gap:.34em;padding:.34em .6em .34em .48em;font-size:.5em;font-weight:800;display:inline-flex;position:absolute;top:.5em;left:.5em;box-shadow:inset 0 0 0 1px #ffffff24}.card-state-badge .state-dot{border-radius:50%;flex:none;width:.66em;height:.66em}.card-state-badge.state-remote{color:#c3ecff;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--signal) 45%, transparent)}.card-state-badge.state-remote .state-dot{background:var(--signal);box-shadow:0 0 .5em var(--signal);animation:2.2s ease-in-out infinite remotePulse}.card-state-badge.state-exposed{color:#ffd7dc;background:#26060acc;box-shadow:inset 0 0 0 1px #ff5a6e8c}.card-state-badge.state-exposed .state-dot{background:#ff4d5e;animation:1.1s ease-in-out infinite exposedPing;box-shadow:0 0 .55em #ff4d5e}.card-aerial-badge{z-index:3;letter-spacing:.11em;text-transform:uppercase;color:#dff2ff;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--neon-cyan) 55%, transparent);background:#060a14b8;border-radius:999px;align-items:center;gap:.3em;padding:.34em .6em;font-size:.5em;font-weight:800;display:inline-flex;position:absolute;top:.5em;left:.5em}@keyframes remotePulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes exposedPing{0%,to{opacity:.5;transform:scale(.82)}50%{opacity:1;transform:scale(1.12)}}.card-nameplate{z-index:3;background:var(--faction);align-self:flex-start;max-width:85%;margin:-1.15em 0 0 .5em;padding:.34em .8em .34em .6em;position:relative;transform:skew(-10deg);box-shadow:.2em .3em .9em #0000008c}.card-nameplate-text{text-transform:uppercase;letter-spacing:.03em;color:#06080e;white-space:nowrap;text-overflow:ellipsis;font-size:.86em;font-weight:850;line-height:1;overflow:hidden;transform:skew(10deg)}.card-body{flex-direction:column;flex:1;gap:.4em;min-height:0;padding:.5em .55em .55em;display:flex;overflow:hidden}.card-roleline{letter-spacing:.13em;text-transform:uppercase;color:color-mix(in srgb, var(--faction) 75%, #e6ecff);font-size:.55em;font-weight:700}.card-text{color:#c6cfea;flex:1;min-height:0;font-size:.72em;line-height:1.3;overflow:hidden}.card-text p{margin:0 0 .35em}.res-token{vertical-align:-.15em;white-space:nowrap;align-items:center;gap:.2em;display:inline-flex}.res-amount{font-weight:850}.res-pip{color:#0a0d16;border-radius:50%;justify-content:center;align-items:center;width:1.35em;height:1.35em;font-size:.85em;font-weight:800;display:inline-flex;box-shadow:0 1px 2px #0000008c,inset 0 .4px .4px #ffffff59}.res-token.credits .res-pip{background:var(--credits)}.res-token.signal .res-pip{background:var(--signal)}.res-token.hardware .res-pip{background:var(--hardware)}.res-token.influence .res-pip{background:var(--influence)}.card-text .flavor{color:var(--ink-faint);font-size:.92em;font-style:italic}.card-bottom{justify-content:space-between;align-items:center;gap:.4em;margin-top:auto;display:flex}.card-faction{letter-spacing:.11em;text-transform:uppercase;color:var(--faction);font-size:.58em;font-weight:850}.card-stats{align-items:center;gap:.4em;margin-left:auto;display:flex}.card-stats .stat{background:#05070d;border-radius:6px;align-items:center;gap:.2em;padding:.24em .5em;font-size:.9em;font-weight:850;display:inline-flex;box-shadow:0 0 0 1.5px #ffffff1f}.card-stats .stat-icon{width:1em;height:1em}.card-stats .stat.atk{color:var(--neon-amber)}.card-stats .stat.hp{color:var(--neon-cyan)}.card-stats .stat.grid{color:var(--grid)}.card-stats .stat.grid .stat-label{letter-spacing:.06em;font-size:.78em;font-weight:850}.card-stats .stat-val{font-size:1em;font-weight:850}.card.type-resource_asset .card-stats .stat.hp,.card.type-asset .card-stats .stat.hp{color:var(--neon-lime)}.card-stats .tag-inline{letter-spacing:.1em;color:var(--neon-magenta);background:#05070d;border-radius:5px;padding:.3em .55em;font-size:.62em;font-weight:800;box-shadow:0 0 0 1.5px #ffffff1a}.card-stats .program-tag{color:var(--grid)}.card-actions{opacity:0;z-index:5;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:-12px;right:-6px}.card:hover .card-actions,.card.exhausted:hover .card-actions{opacity:1}.card-actions button{border:1px solid var(--edge-hi);background:var(--bg-2);width:22px;height:22px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;transition:background .15s,transform .1s;display:flex}.card-actions button:hover{background:var(--neon-cyan);color:var(--bg-0);transform:scale(1.1)}.hand-zone .card{transform-origin:bottom;margin:0 -4px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}.hand-zone .card:hover{z-index:20;filter:drop-shadow(0 16px 34px #22e0ff61);transform:translateY(-30px)}.hand-zone .card:hover .card-front{border-color:var(--neon-cyan)}.battlefield-zone .card{transition:transform .25s}.battlefield-zone .card:hover{z-index:50}.battlefield-zone .card.exhausted:hover{z-index:60}.card.dragging{opacity:.4}.card-actions{z-index:200}.card.hidden-hand{cursor:default}.card.hidden-hand .card-actions{display:none}.card.hidden-hand:hover{filter:none!important;z-index:1!important;transform:none!important}.blocker-rule{z-index:8;border:1px solid var(--edge-hi);color:var(--ink-dim);letter-spacing:.7px;text-transform:uppercase;white-space:nowrap;background:#080c16f5;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:800;position:absolute;bottom:-25px;left:50%;transform:translate(-50%);box-shadow:0 6px 16px #0000008c}.blocker-rule.retains-ready{color:var(--neon-lime);border-color:#b6ff4ca6}.blocker-rule.exhausts{color:var(--neon-amber);border-color:#ffb6488c}.card.deployment-lag .card-front:after{content:"";pointer-events:none;background:repeating-linear-gradient(135deg,#ffb64814 0 8px,#0000 8px 16px);position:absolute;inset:0}.card.deployment-lag .card-front:before{content:"◷ LAG";z-index:3;color:#0a0d16;letter-spacing:1px;background:#ffb648d9;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:800;position:absolute;top:8px;right:8px}.card.unaffordable{filter:grayscale(.5)brightness(.65);cursor:not-allowed}.card.unaffordable .card-cost .pip{outline:1px solid #ff3ac999}.card.attackable .card-front{box-shadow:inset 0 0 0 2px #ffb6488c,0 0 14px #ffb64859}.card.attackable:after{content:"⚔";z-index:6;background:var(--neon-amber);color:#0a0d16;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:flex;position:absolute;top:-8px;left:-8px;box-shadow:0 0 10px #ffb648b3}.card.is-attacker .card-front{box-shadow:inset 0 0 0 2px var(--neon-amber), 0 0 22px #ffb64899;animation:1s ease-in-out infinite attacker-pulse}@keyframes attacker-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}body.attack-mode{cursor:crosshair}body.attack-mode .card:not(.targetable):not(.is-attacker){cursor:not-allowed}.card.targetable{cursor:crosshair;animation:.9s ease-in-out infinite target-pulse}.card.targetable .card-front{box-shadow:inset 0 0 0 2px var(--neon-magenta), 0 0 20px #ff3ac980}.card.targetable:before{content:"";border:2px dashed var(--neon-magenta);z-index:3;pointer-events:none;border-radius:14px;animation:3s linear infinite target-spin;position:absolute;inset:-6px}@keyframes target-pulse{0%,to{filter:drop-shadow(0 0 6px #ff3ac966)}50%{filter:drop-shadow(0 0 16px #ff3ac9cc)}}@keyframes target-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hq-badge.targetable-hq{cursor:crosshair;border-color:var(--neon-magenta);background:#ff3ac92e;animation:.9s ease-in-out infinite target-pulse;box-shadow:0 0 20px #ff3ac980,inset 0 0 16px #ff3ac940}.card.grid-ready .card-front{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--grid) 60%, transparent), 0 0 14px color-mix(in srgb, var(--grid) 40%, transparent)}.card.grid-ready:after{content:"⚡";z-index:6;background:var(--grid);color:#0a0d16;width:22px;height:22px;box-shadow:0 0 10px color-mix(in srgb, var(--grid) 70%, transparent);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex;position:absolute;top:-8px;left:-8px}.card.grid-actor .card-front{box-shadow:inset 0 0 0 2px var(--grid), 0 0 22px color-mix(in srgb, var(--grid) 60%, transparent);animation:1s ease-in-out infinite attacker-pulse}.card.grid-targetable{cursor:crosshair;animation:.9s ease-in-out infinite grid-target-pulse}.card.grid-targetable .card-front{box-shadow:inset 0 0 0 2px var(--grid), 0 0 20px color-mix(in srgb, var(--grid) 50%, transparent)}.card.grid-targetable:before{content:"";border:2px dashed var(--grid);z-index:3;pointer-events:none;border-radius:14px;animation:3s linear infinite target-spin;position:absolute;inset:-6px}@keyframes grid-target-pulse{0%,to{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--grid) 40%, transparent))}50%{filter:drop-shadow(0 0 16px color-mix(in srgb, var(--grid) 80%, transparent))}}.card.ability-source .card-front{box-shadow:inset 0 0 0 2px var(--neon-cyan), 0 0 22px color-mix(in srgb, var(--neon-cyan) 55%, transparent);animation:1s ease-in-out infinite attacker-pulse}.card.ability-source:after{content:"✦";z-index:6;background:var(--neon-cyan);color:#041016;width:22px;height:22px;box-shadow:0 0 10px color-mix(in srgb, var(--neon-cyan) 70%, transparent);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex;position:absolute;top:-8px;left:-8px}.card.ability-targetable{cursor:crosshair;animation:.9s ease-in-out infinite ability-target-pulse}.card.ability-targetable .card-front{box-shadow:inset 0 0 0 2px var(--neon-cyan), 0 0 20px color-mix(in srgb, var(--neon-cyan) 45%, transparent)}.card.ability-targetable:before{content:"";border:2px dashed var(--neon-cyan);z-index:3;pointer-events:none;border-radius:14px;animation:3s linear infinite target-spin;position:absolute;inset:-6px}@keyframes ability-target-pulse{0%,to{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--neon-cyan) 40%, transparent))}50%{filter:drop-shadow(0 0 16px color-mix(in srgb, var(--neon-cyan) 80%, transparent))}}.hq-badge.being-attacked-hq{border-color:var(--neon-magenta);background:#ff3ac926;animation:1.2s ease-in-out infinite target-pulse;box-shadow:0 0 24px #ff3ac980}.card.attack-queued .card-front{box-shadow:inset 0 0 0 2px var(--neon-amber), 0 0 22px #ffb6488c}.card.attack-queued:after{content:"⚔ QUEUED";z-index:6;background:var(--neon-amber);color:#0a0d16;letter-spacing:1.5px;white-space:nowrap;border-radius:10px;padding:3px 10px;font-size:9px;font-weight:800;position:absolute;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 12px #ffb648b3}.card.being-attacked .card-front{box-shadow:inset 0 0 0 2px var(--neon-magenta), 0 0 22px #ff3ac980;animation:1.6s ease-in-out infinite being-attacked-pulse}@keyframes being-attacked-pulse{0%,to{filter:drop-shadow(0 0 6px #ff3ac94d)}50%{filter:drop-shadow(0 0 16px #ff3ac9b3)}}.card.guard-available .card-front{box-shadow:inset 0 0 0 2px var(--neon-cyan), 0 0 18px #22e0ff80}.card.guard-available:after{content:"🛡";z-index:6;background:var(--neon-cyan);color:#0a0d16;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex;position:absolute;top:-10px;right:-6px;box-shadow:0 0 10px #22e0ffb3}.card.intercepting .card-front{box-shadow:inset 0 0 0 2px var(--neon-cyan), 0 0 22px #22e0ff99}.card.intercepting:after{content:"🛡 INTERCEPTING";z-index:6;background:var(--neon-cyan);color:#0a0d16;letter-spacing:1.5px;white-space:nowrap;border-radius:10px;padding:3px 10px;font-size:9px;font-weight:800;position:absolute;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 12px #22e0ffb3}.card.supporter-available .card-front{box-shadow:inset 0 0 0 2px var(--neon-lime), 0 0 18px #b6ff4c66}.card.supporter-available:after{content:"🎯";z-index:6;background:var(--neon-lime);color:#0a0d16;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex;position:absolute;top:-10px;left:-6px;box-shadow:0 0 10px #b6ff4cb3}.card.supporting .card-front{box-shadow:inset 0 0 0 2px var(--neon-lime), 0 0 22px #b6ff4c99}.card.supporting:after{content:"🎯 SUPPORTING";z-index:6;background:var(--neon-lime);color:#0a0d16;letter-spacing:1.5px;white-space:nowrap;border-radius:10px;padding:3px 10px;font-size:9px;font-weight:800;position:absolute;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 12px #b6ff4cb3}.card.supporting.intercepting:after,.card.supporter-available.guard-available:after{content:"🎯🛡"}.defend-section{border-top:1px solid var(--edge);padding:12px 0}.defend-section:first-of-type{border-top:none;padding-top:4px}.defend-section.hidden{display:none}.section-label{letter-spacing:2px;text-transform:uppercase;color:var(--ink-faint);text-align:center;margin-bottom:10px;font-size:10px}.support-fire-units{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.card.supporter-choice{cursor:pointer;filter:grayscale(.4)brightness(.85);transition:transform .15s,filter .15s}.card.supporter-choice:hover{filter:none;transform:translateY(-6px)}.card.supporter-choice.selected-support{filter:none;box-shadow:inset 0 0 0 2px var(--neon-lime)}.card.supporter-choice.selected-support .card-front{box-shadow:inset 0 0 0 2px var(--neon-lime), 0 0 22px #b6ff4c99}.card.interceptor-choice.selected-intercept .card-front{box-shadow:inset 0 0 0 2px var(--neon-cyan), 0 0 22px #22e0ff99}.defend-footer{border-top:1px solid var(--edge);justify-content:center;margin-top:16px;padding-top:12px;display:flex}.btn-defend-done{border:1px solid var(--neon-cyan);color:var(--neon-cyan);letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:linear-gradient(#22e0ff33,#22e0ff14);border-radius:999px;padding:10px 24px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s;box-shadow:0 0 12px #22e0ff40}.btn-defend-done:hover{background:linear-gradient(#22e0ff59,#22e0ff2e);box-shadow:0 0 22px #22e0ff80}.attack-arrow{fill:none;stroke:var(--neon-amber);stroke-width:3px;stroke-dasharray:8 4;filter:drop-shadow(0 0 6px #ffb64899);animation:1s linear infinite dash-flow}.attack-arrow.intercepted{stroke:var(--neon-cyan);filter:drop-shadow(0 0 6px #22e0ff99)}.attack-head{fill:var(--neon-amber);filter:drop-shadow(0 0 6px #ffb64899)}.attack-head.intercepted{fill:var(--neon-cyan);filter:drop-shadow(0 0 6px #22e0ff99)}@keyframes dash-flow{to{stroke-dashoffset:-24px}}.badge-circle{fill:#0a0d16e6;stroke:var(--neon-cyan);stroke-width:2px;filter:drop-shadow(0 0 8px #22e0ff66)}.badge-circle.assigned{stroke:var(--neon-lime);filter:drop-shadow(0 0 10px #b6ff4c99)}.badge-label{fill:var(--ink);font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:800}.badge-sublabel{fill:var(--neon-cyan);letter-spacing:1px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:7px;font-weight:800}.badge-circle.assigned+.badge-label+.badge-sublabel{fill:var(--neon-lime)}.attack-badge:hover .badge-circle{stroke-width:3px;r:30}.attack-badge{transition:transform .15s}.card.animate-attack{z-index:100;animation:.5s cubic-bezier(.4,0,.2,1) attack-lunge}@keyframes attack-lunge{0%{transform:translateY(0)scale(1)}40%{filter:drop-shadow(0 0 20px #ffb648e6);transform:translateY(-40px)scale(1.1)}to{transform:translateY(0)scale(1)}}.card.exhausted.animate-attack{animation:.5s cubic-bezier(.4,0,.2,1) attack-lunge-rot}@keyframes attack-lunge-rot{0%{transform:rotate(90deg)translateY(0)}40%{transform:rotate(90deg)translateY(-40px)scale(1.1)}to{transform:rotate(90deg)translateY(0)}}.float-damage{color:var(--neon-magenta);text-shadow:0 0 12px #ff3ac9cc,0 0 24px #ff3ac980;pointer-events:none;z-index:300;letter-spacing:1px;font-family:inherit;font-size:42px;font-weight:900;animation:.9s ease-out forwards float-up;position:fixed;transform:translate(-50%)}@keyframes float-up{0%{opacity:0;transform:translate(-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-20px)scale(1.2)}to{opacity:0;transform:translate(-50%,-80px)scale(1)}}.btn-attack{letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:1px solid var(--neon-amber);color:var(--neon-amber);background:linear-gradient(#ffb64833,#ffb64814);border-radius:6px;min-width:120px;padding:10px 20px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s;box-shadow:0 0 14px #ffb64840,inset 0 0 14px #ffb6481a}.btn-attack:hover{background:linear-gradient(#ffb64859,#ffb6482e);transform:translateY(-1px);box-shadow:0 0 22px #ffb64880,inset 0 0 22px #ffb64833}.target-hint{z-index:70;border:1px solid var(--neon-amber);color:var(--neon-amber);letter-spacing:2px;text-transform:uppercase;background:#0a0d16d9;border-radius:999px;padding:10px 22px;font-size:12px;font-weight:700;animation:1.4s ease-in-out infinite hint-pulse;position:fixed;top:68px;left:50%;transform:translate(-50%);box-shadow:0 0 20px #ffb64866}.target-hint.hidden{display:none}.card.dying{pointer-events:none;animation:.55s ease-out forwards dying-flash;z-index:150!important}.card.dying .card-front{box-shadow:inset 0 0 0 3px var(--neon-magenta), 0 0 40px #ff3ac9e6}@keyframes dying-flash{0%{filter:none;transform:translate(0)scale(1)}10%,30%,50%,70%{filter:drop-shadow(0 0 24px #ff3ac9)brightness(1.3)saturate(1.4);transform:translate(-3px)scale(1.02)}20%,40%,60%{filter:drop-shadow(0 0 24px #ff3ac9)brightness(1.3)saturate(1.4);transform:translate(3px)scale(1.02)}85%{filter:drop-shadow(0 0 32px #ff3ac9)brightness(1.5);transform:scale(1.08)}to{filter:drop-shadow(0 0 24px #ff3ac9e6);transform:scale(1)}}.card.dying.exhausted{animation-name:dying-flash-rot}@keyframes dying-flash-rot{0%{filter:none;transform:rotate(90deg)scale(1)}40%{filter:drop-shadow(0 0 24px #ff3ac9)brightness(1.3);transform:rotate(90deg)scale(1.05)}to{filter:drop-shadow(0 0 24px #ff3ac9e6);transform:rotate(90deg)scale(1)}}.card.flying-to-discard{transform:translate(var(--death-dx,0), var(--death-dy,0)) scale(.25) rotate(-18deg);opacity:0;filter:drop-shadow(0 0 12px #ff3ac980)brightness(.7);z-index:150;pointer-events:none;transition:transform .65s cubic-bezier(.55,0,.7,1),opacity .65s ease-out,filter .65s ease-out}.card.flying-to-discard.exhausted{transform:translate(var(--death-dx,0), var(--death-dy,0)) scale(.25) rotate(72deg)}.pile.discard-pile.discard-bump{animation:.5s cubic-bezier(.34,1.56,.64,1) discard-bump-anim}@keyframes discard-bump-anim{0%{box-shadow:none;transform:scale(1)}40%{transform:scale(1.12);box-shadow:0 0 24px #ff3ac999}to{box-shadow:none;transform:scale(1)}}.battle-overlay{z-index:180;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.battle-overlay.hidden{display:none}.battle-backdrop{-webkit-backdrop-filter:blur(8px);background:#060a14d9;position:absolute;inset:0}.battle-panel{z-index:2;border:1px solid var(--neon-amber);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border-radius:14px;width:min(880px,94vw);padding:24px 28px;animation:.35s cubic-bezier(.34,1.56,.64,1) battle-panel-in;position:relative;box-shadow:0 20px 60px #000000b3,0 0 60px #ffb64840}@keyframes battle-panel-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.battle-header{border-bottom:1px solid var(--edge);justify-content:space-between;align-items:baseline;margin-bottom:20px;padding-bottom:14px;display:flex}.battle-title{letter-spacing:4px;text-transform:uppercase;color:var(--neon-amber);text-shadow:0 0 12px #ffb64899;font-size:16px;font-weight:800}.battle-counter{letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim);font-size:11px}.battle-arena{grid-template-rows:1fr auto 1fr;align-items:center;gap:12px;min-height:400px;display:grid}.battle-side{align-items:center;gap:16px;padding:6px 0;display:flex}.battle-attackers,.battle-defenders{justify-content:center}.battle-side-label{letter-spacing:3px;text-transform:uppercase;color:var(--ink-faint);background:#ffffff0a;border-radius:3px;padding:2px 8px;font-size:9px;position:absolute}.battle-attackers .battle-side-label{top:-8px;left:16px}.battle-defenders .battle-side-label{bottom:-8px;left:16px}.battle-attacker-slot,.battle-defender-slot{--card-w:150px;--card-h:calc(150px * 16 / 11);position:relative}.battle-support-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.support-chip{border:1px solid var(--neon-lime);background:#b6ff4c1a;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:90px;padding:8px 12px;animation:.35s cubic-bezier(.34,1.56,.64,1) support-in;display:flex;box-shadow:0 0 12px #b6ff4c40}.support-chip-name{color:var(--ink);letter-spacing:.5px;font-size:10px;font-weight:700}.support-chip-dmg{color:var(--neon-lime);text-shadow:0 0 8px #b6ff4c99;font-size:20px;font-weight:900}.support-chip-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-faint);font-size:8px}@keyframes support-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.battle-damage-lane{grid-template-columns:1fr 1fr;gap:32px;height:120px;padding:0 40px;display:grid;position:relative}.damage-flow{border-radius:12px;justify-content:center;align-items:center;min-height:100px;display:flex;position:relative}.damage-flow-down{background:linear-gradient(#0000,#ff3ac90d);border:1px dashed #ff3ac966}.damage-flow-up{background:linear-gradient(#22e0ff0d,#0000);border:1px dashed #22e0ff66}.damage-arrow{color:var(--ink);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.damage-flow-label{letter-spacing:2px;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px;font-size:9px}.damage-value{letter-spacing:1px;font-size:44px;font-weight:900;animation:.5s cubic-bezier(.34,1.56,.64,1) damage-tick-in}.damage-flow-down .damage-value{color:var(--neon-magenta);text-shadow:0 0 20px #ff3ac9b3}.damage-flow-up .damage-value{color:var(--neon-cyan);text-shadow:0 0 20px #22e0ffb3}.damage-value.zero{color:var(--ink-faint);text-shadow:none;font-size:24px}.damage-value.pending{opacity:0;transform:scale(.3)}@keyframes damage-tick-in{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.damage-value.pop-in{animation:.45s cubic-bezier(.34,1.56,.64,1) forwards damage-pop}@keyframes damage-pop{0%{opacity:0;transform:scale(.3)rotate(-8deg)}60%{opacity:1;transform:scale(1.35)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}.damage-flow{overflow:hidden}.damage-flow:before{content:"";pointer-events:none;opacity:0;position:absolute}.damage-flow.fx-melee:before{background:linear-gradient(135deg, transparent 40%, var(--neon-amber) 48%, #fff 50%, var(--neon-amber) 52%, transparent 60%);filter:drop-shadow(0 0 12px #ffb648e6);animation:.55s cubic-bezier(.55,0,.35,1) forwards fx-melee;inset:0}@keyframes fx-melee{0%{opacity:0;transform:translate(-40px,-40px)scale(.6)}30%{opacity:1}70%{opacity:.9;transform:translate(40px,40px)scale(1.05)}to{opacity:0;transform:translate(80px,80px)scale(1)}}.damage-flow-down.fx-projectile:before,.damage-flow-up.fx-projectile:before{background:linear-gradient(180deg, transparent, var(--neon-amber) 40%, #fff 55%, var(--neon-amber) 70%, transparent);filter:drop-shadow(0 0 10px #ffb648e6);border-radius:3px;width:6px;left:50%}.damage-flow-down.fx-projectile:before{height:60%;animation:.5s linear forwards fx-projectile-down;top:-10%;transform:translate(-50%)}.damage-flow-up.fx-projectile:before{height:60%;animation:.5s linear forwards fx-projectile-up;bottom:-10%;transform:translate(-50%)}@keyframes fx-projectile-down{0%{opacity:0;top:-60%}15%{opacity:1}to{opacity:.8;top:100%}}@keyframes fx-projectile-up{0%{opacity:0;bottom:-60%}15%{opacity:1}to{opacity:.8;bottom:100%}}.damage-flow.fx-energy:before{filter:drop-shadow(0 0 18px #ff3ac9e6);background:linear-gradient(#0000,#ff3ac933 15%,#ff3ac9e6 50%,#ff3ac933 85%,#0000);border-radius:8px;width:14px;animation:.7s ease-in-out forwards fx-energy;top:0;bottom:0;left:50%;transform:translate(-50%)}.damage-flow-up.fx-energy:before{filter:drop-shadow(0 0 18px #22e0ffe6);background:linear-gradient(#0000,#22e0ff33 15%,#22e0ffe6 50%,#22e0ff33 85%,#0000)}@keyframes fx-energy{0%{opacity:0;transform:translate(-50%)scaleY(.2)}20%{opacity:1;transform:translate(-50%)scaleY(1)}60%{opacity:1;transform:translate(-50%)scaleY(1)}to{opacity:0;transform:translate(-50%)scaleY(1)}}.damage-flow.fx-cyber:before{background:repeating-linear-gradient(0deg,#22e0ff59 0 2px,#0000 2px 4px),repeating-linear-gradient(90deg,#ff3ac940 0 3px,#0000 3px 6px);animation:.6s steps(8,end) forwards fx-cyber;inset:0}@keyframes fx-cyber{0%{opacity:0;filter:hue-rotate()}10%{opacity:1;filter:hue-rotate(60deg);transform:translate(-4px,2px)}20%{filter:hue-rotate(120deg);transform:translate(4px,-2px)}30%{filter:hue-rotate(180deg);transform:translate(-2px,3px)}50%{opacity:.9;filter:hue-rotate(270deg);transform:translate(3px,-3px)}70%{opacity:.7;filter:hue-rotate(45deg);transform:translate(-1px,1px)}to{opacity:0;filter:hue-rotate();transform:translate(0)}}.damage-flow.fx-generic:before{background:radial-gradient(circle, var(--neon-amber), transparent 70%);border-radius:999px;animation:.5s ease-out forwards fx-generic;inset:20% 30%}@keyframes fx-generic{0%{opacity:0;transform:scale(.3)}40%{opacity:1;transform:scale(1.4)}to{opacity:0;transform:scale(1.8)}}.battle-attacker-slot .card.striking{animation:.4s ease-out attacker-strike}@keyframes attacker-strike{0%{transform:translateY(0)}50%{filter:drop-shadow(0 0 20px #ffb64899);transform:translateY(14px)scale(1.03)}to{transform:translateY(0)}}.battle-defender-slot .card.hit{animation:.5s ease-out defender-hit}@keyframes defender-hit{0%{transform:translate(0)}10%,30%,50%{transform:translate(-6px)}20%,40%,60%{transform:translate(6px)}to{transform:translate(0)}}.damage-detail{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);text-align:center;margin-top:6px;font-size:10px}.battle-hq-badge{border:2px solid var(--neon-cyan);background:#22e0ff14;border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-width:150px;padding:18px 26px;display:flex;box-shadow:0 0 20px #22e0ff40}.battle-hq-badge.opponent{border-color:var(--neon-magenta);background:#ff3ac914;box-shadow:0 0 20px #ff3ac940}.battle-hq-label{letter-spacing:3px;text-transform:uppercase;color:var(--ink-dim);font-size:10px}.battle-hq-name{letter-spacing:2px;text-transform:uppercase;color:var(--ink);font-size:14px;font-weight:700}.battle-hq-hp{color:var(--neon-cyan);text-shadow:0 0 16px #22e0ff99;font-size:42px;font-weight:900;transition:color .3s}.battle-hq-hp.hp-flash{color:var(--neon-magenta);text-shadow:0 0 24px #ff3ac9e6;animation:.35s ease-out hp-shake}@keyframes hp-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.battle-hq-badge.opponent .battle-hq-hp{color:var(--neon-magenta);text-shadow:0 0 16px #ff3ac999}.battle-hq-badge{position:relative}.battle-hq-damage-float{color:var(--neon-magenta);text-shadow:0 0 16px #ff3ac9e6;pointer-events:none;z-index:5;font-size:32px;font-weight:900;animation:.9s ease-out forwards hq-dmg-float;position:absolute;top:20%;left:50%;transform:translate(-50%)}@keyframes hq-dmg-float{0%{opacity:0;transform:translate(-50%,10px)scale(.6)}20%{opacity:1;transform:translate(-50%,-8px)scale(1.3)}to{opacity:0;transform:translate(-50%,-60px)scale(1)}}.battle-summary{border:1px solid var(--edge);color:var(--ink-dim);background:#00000059;border-radius:8px;min-height:44px;margin-top:8px;padding:12px 16px;font-size:12px;line-height:1.6}.battle-summary .summary-line{padding:2px 0}.battle-summary .summary-kill{color:var(--neon-magenta);font-weight:700}.battle-summary .summary-survive{color:var(--neon-lime)}.battle-controls{justify-content:center;gap:12px;margin-top:18px;display:flex}.btn-battle-next,.btn-battle-skip{letter-spacing:3px;text-transform:uppercase;cursor:pointer;border-radius:999px;padding:10px 22px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.btn-battle-next{border:1px solid var(--neon-amber);color:var(--neon-amber);background:linear-gradient(#ffb64840,#ffb64814);box-shadow:0 0 14px #ffb64840}.btn-battle-next:hover{background:linear-gradient(#ffb64866,#ffb6482e);transform:translateY(-1px);box-shadow:0 0 22px #ffb64880}.btn-battle-skip{border:1px solid var(--edge-hi);color:var(--ink-dim);background:#ffffff0a}.btn-battle-skip:hover{border-color:var(--neon-magenta);color:var(--neon-magenta)}.turn-flash{z-index:190;pointer-events:none;justify-content:center;align-items:center;animation:1.4s ease-out forwards turn-flash-anim;display:flex;position:fixed;inset:0}.turn-flash.hidden{display:none}.turn-flash-text{letter-spacing:12px;text-transform:uppercase;border-radius:20px;padding:24px 60px;font-size:68px;font-weight:900}.turn-flash.player-p1 .turn-flash-text{color:var(--neon-cyan);text-shadow:0 0 24px #22e0ffe6,0 0 60px #22e0ff80;background:#0a0d16b3;border:2px solid #22e0ff80;box-shadow:0 0 60px #22e0ff4d}.turn-flash.player-p2 .turn-flash-text{color:var(--neon-magenta);text-shadow:0 0 24px #ff3ac9e6,0 0 60px #ff3ac980;background:#0a0d16b3;border:2px solid #ff3ac980;box-shadow:0 0 60px #ff3ac94d}@keyframes turn-flash-anim{0%{opacity:0}15%{opacity:1}70%{opacity:1}to{opacity:0}}@keyframes hint-pulse{0%,to{box-shadow:0 0 20px #ffb64866}50%{box-shadow:0 0 32px #ffb648b3}}.intercept-overlay{z-index:150;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.intercept-overlay.hidden{display:none}.intercept-backdrop{-webkit-backdrop-filter:blur(6px);background:#060a14bf;position:absolute;inset:0}.intercept-panel{z-index:2;border:1px solid var(--neon-cyan);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));border-radius:12px;max-width:90vw;max-height:92svh;padding:24px 28px;animation:.2s cubic-bezier(.34,1.56,.64,1) pop-in;position:relative;overflow-y:auto;box-shadow:0 0 40px #22e0ff4d}.intercept-title{letter-spacing:3px;text-transform:uppercase;color:var(--neon-cyan);text-shadow:0 0 12px #22e0ff80;text-align:center;margin-bottom:6px;font-size:16px;font-weight:700}.intercept-subtitle{color:var(--ink-dim);text-align:center;max-width:500px;margin-bottom:18px;font-size:12px}.intercept-guards{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:30px;display:flex}@media (width<=720px){:root{--card-h:158px;--human-card-h:178px}.player-opponent{--card-h:150px}.player-self{--card-h:var(--human-card-h)}.app-header{gap:10px;padding-inline:12px}.app-header .subtitle,.btn-open-admin{display:none}.turn-hud{gap:10px}.hud-block{min-width:44px}.board{padding-inline:8px}.middle-row,.grid-lane-row,.hand-row{grid-template-columns:58px 1fr 74px;gap:5px}.pip-large{padding:4px 6px;font-size:10px}.pile-label{letter-spacing:1px;font-size:8px}.pile-count{font-size:18px}.btn-end-turn.fab{bottom:12px;right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.card.interceptor-choice{cursor:pointer;transition:transform .15s}.card.interceptor-choice:hover{filter:drop-shadow(0 0 16px #22e0ff80);transform:translateY(-6px)}.intercept-actions{justify-content:center;display:flex}.btn-let-through{border:1px solid var(--edge-hi);color:var(--ink-dim);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:#ffffff0a;border-radius:6px;padding:10px 20px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.btn-let-through:hover{border-color:var(--neon-magenta);color:var(--neon-magenta);background:#ff3ac914}.game-over-overlay{z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-over-overlay.hidden{display:none}.game-over-backdrop{-webkit-backdrop-filter:blur(10px);background:#060a14e6;position:absolute;inset:0}.game-over-panel{z-index:2;border:2px solid var(--edge-hi);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));text-align:center;border-radius:16px;padding:48px 60px;animation:.3s cubic-bezier(.34,1.56,.64,1) pop-in;position:relative}.game-over-title{letter-spacing:8px;text-transform:uppercase;margin-bottom:10px;font-size:48px;font-weight:900}.game-over-title.win{color:var(--neon-cyan);text-shadow:0 0 20px #22e0ffcc,0 0 40px #22e0ff66}.game-over-title.lose{color:var(--neon-magenta);text-shadow:0 0 20px #ff3ac9cc,0 0 40px #ff3ac966}.game-over-subtitle{color:var(--ink-dim);letter-spacing:2px;text-transform:uppercase;margin-bottom:28px;font-size:14px}.btn-rematch{border:1px solid var(--neon-cyan);color:var(--neon-cyan);letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:linear-gradient(#22e0ff33,#22e0ff14);border-radius:999px;padding:14px 32px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s;box-shadow:0 0 20px #22e0ff4d,inset 0 0 16px #22e0ff1a}.btn-rematch:hover{background:linear-gradient(#22e0ff59,#22e0ff2e);transform:translateY(-1px);box-shadow:0 0 30px #22e0ff80,inset 0 0 24px #22e0ff33}.detail-overlay{z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.detail-overlay.hidden{display:none}.detail-backdrop{-webkit-backdrop-filter:blur(6px);cursor:pointer;background:#060a14bf;position:absolute;inset:0}.detail-content{z-index:2;flex-direction:column;align-items:center;gap:16px;animation:.2s cubic-bezier(.34,1.56,.64,1) pop-in;display:flex;position:relative}.detail-card{--card-w:var(--card-w-detail);--card-h:var(--card-h-detail)}.detail-actions{align-items:center;gap:12px;display:flex}.detail-note{font-family:var(--mono,ui-monospace, monospace);letter-spacing:.08em;text-transform:uppercase;color:#ff6b7e;background:#ff3c5a1f;border:1px solid #ff3c5a80;border-radius:8px;padding:9px 14px;font-size:.82rem;font-weight:700}.btn-deploy,.btn-detail-close{letter-spacing:2px;text-transform:uppercase;cursor:pointer;border-radius:6px;padding:10px 20px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.btn-deploy{border:1px solid var(--neon-cyan);color:var(--neon-cyan);background:linear-gradient(#22e0ff33,#22e0ff14);min-width:140px;box-shadow:0 0 14px #22e0ff40,inset 0 0 14px #22e0ff1a}.btn-deploy:hover{background:linear-gradient(#22e0ff59,#22e0ff2e);transform:translateY(-1px);box-shadow:0 0 22px #22e0ff73,inset 0 0 22px #22e0ff33}.btn-deploy:disabled{border-color:var(--edge-hi);color:var(--ink-faint);cursor:not-allowed;box-shadow:none;background:#ffffff0a;transform:none}.btn-detail-close{border:1px solid var(--edge-hi);color:var(--ink-dim);background:#ffffff0a;width:44px;padding:10px 0;font-size:16px}.btn-detail-close:hover{border-color:var(--neon-magenta);color:var(--neon-magenta);background:#ff3ac91a;box-shadow:0 0 12px #ff3ac940}.detail-card .card-art{height:40%}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.defense-panel{background:linear-gradient(180deg, var(--bg-2), var(--bg-1));border:1px solid var(--edge-hi);z-index:60;border-radius:12px;width:340px;max-height:60vh;padding:12px 14px;position:fixed;bottom:84px;right:16px;overflow-y:auto;box-shadow:0 12px 40px #0009}.defense-panel-title{color:var(--neon-cyan);margin-bottom:8px;font-size:.95rem;font-weight:700}.defense-row{border-top:1px solid var(--edge);padding:8px 0}.defense-attack-line{align-items:center;gap:6px;margin-bottom:6px;font-size:.82rem;display:flex}.defense-attack-line .atk-name{color:var(--ink);font-weight:600}.defense-attack-line .atk-arrow{color:var(--ink-faint)}.defense-attack-line .atk-target{color:var(--neon-magenta)}.defense-attack-line .atk-dmg{color:var(--neon-amber);margin-left:auto;font-weight:700}.defense-controls{flex-wrap:wrap;align-items:center;gap:5px;margin:4px 0;display:flex}.defense-label{color:var(--ink-dim);margin-right:2px;font-size:.72rem}.defense-none{color:var(--ink-faint);font-size:.72rem}.defense-chip{border:1px solid var(--edge-hi);background:var(--bg-1);color:var(--ink);cursor:pointer;border-radius:999px;padding:3px 8px;font-size:.74rem;transition:all .15s}.defense-chip:hover{border-color:var(--neon-cyan)}.defense-chip.active{background:var(--neon-cyan);color:#041018;border-color:var(--neon-cyan);font-weight:700}.defense-chip.support.active{background:var(--neon-amber);color:#1a1000;border-color:var(--neon-amber)}.gameover-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#04060cb8;place-items:center;display:grid;position:fixed;inset:0}.gameover-panel{text-align:center;background:linear-gradient(180deg, var(--bg-2), var(--bg-1));border:1px solid var(--edge-hi);border-radius:16px;padding:32px 44px;box-shadow:0 20px 60px #000000b3}.gameover-title{color:var(--neon-cyan);margin-bottom:6px;font-size:1.8rem;font-weight:800}.gameover-sub{color:var(--ink-dim);margin-bottom:20px}.gameover-panel .btn-new-match{position:static}.gameover-log-actions{justify-content:center;gap:8px;margin-bottom:14px;display:flex}.btn-log{border:1px solid var(--edge-hi);background:var(--bg-1);color:var(--ink-dim);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:12px}.btn-log:hover{color:var(--neon-cyan);border-color:var(--neon-cyan)}.gameover-log{text-align:left;background:var(--bg-1);border:1px solid var(--edge-hi);width:min(560px,78vw);max-height:320px;color:var(--ink);border-radius:10px;margin-bottom:18px;padding:12px 14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;line-height:1.5;overflow-y:auto}.gameover-log .log-entry{white-space:pre-wrap;padding:1px 0}.attack-arrows-overlay{z-index:60;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.boot-splash{flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100vh;display:flex}.boot-logo{letter-spacing:6px;color:var(--neon-cyan);text-shadow:0 0 24px #22e0ff80;font-size:34px;font-weight:800;animation:1.3s ease-in-out infinite boot-pulse}.boot-sub{letter-spacing:2px;text-transform:uppercase;color:var(--ink-faint);font-size:13px}@keyframes boot-pulse{0%,to{opacity:.55}50%{opacity:1}}.combat-fx{z-index:70;pointer-events:none;position:fixed;inset:0}.float-damage{color:var(--neon-amber);text-shadow:0 0 12px #ffb648b3,0 2px 4px #000c;white-space:nowrap;font-size:30px;font-weight:800;animation:1.15s ease-out forwards floatUp;position:fixed;transform:translate(-50%)}.float-damage.fatal{color:#ff4d6d;text-shadow:0 0 16px #ff4d6dcc,0 2px 4px #000000e6;font-size:36px}.fd-kill{vertical-align:super;margin-left:4px;font-size:20px}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,6px)scale(.6)}18%{opacity:1;transform:translate(-50%,-6px)scale(1.15)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-64px)scale(1)}}.card.dying{z-index:5;animation:1.15s ease-in forwards cardDie}@keyframes cardDie{0%{filter:none}15%{filter:brightness(1.8)saturate(1.4);transform:translate(-3px);box-shadow:0 0 26px #ff3c5ae6}25%{transform:translate(4px)}35%{transform:translate(-3px)}45%{transform:translate(2px);box-shadow:0 0 20px #ff3c5ab3}to{opacity:.12;filter:grayscale()brightness(.6);box-shadow:none;transform:scale(.78)rotate(-5deg)}}.bf-operatives .card:hover,.bf-assets .card:hover{z-index:50;cursor:pointer;filter:drop-shadow(0 12px 26px #22e0ff47);transform:translateY(-10px)}.hand-zone .card,.battlefield-zone .card{cursor:pointer}.detail-card.tilt{perspective:1100px}.tilt-inner{transform-style:preserve-3d;will-change:transform;transition:transform .12s ease-out;position:relative}.detail-card .tilt-inner:after{content:"";z-index:4;pointer-events:none;opacity:.28;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='mt'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23mt)'/%3E%3C/svg%3E");background-size:200px 200px;border-radius:12px;position:absolute;inset:0}.tilt-glare{pointer-events:none;opacity:0;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%), #ffffff1d, #ffffff0f 40%, #ffffff06 62%, transparent 80%);mix-blend-mode:soft-light;z-index:3;border-radius:12px;transition:opacity .25s;position:absolute;inset:0}.instant-banner{z-index:85;border:1px solid var(--neon-magenta);background:linear-gradient(#ff3ac933,#141a2cf5);border-radius:12px;align-items:center;gap:14px;padding:10px 18px;font-size:14px;display:flex;position:fixed;top:56px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0009,0 0 18px #ff3ac94d}.instant-banner button{border:1px solid var(--edge-hi);color:var(--ink-dim);cursor:pointer;background:0 0;border-radius:7px;padding:5px 12px;font-size:12px}.instant-banner button:hover{color:var(--neon-magenta);border-color:var(--neon-magenta)}.battle-arena-vs{text-align:center;color:var(--neon-amber);text-shadow:0 0 14px #ffb64899;opacity:.85;font-size:26px}.battle-attacker-slot,.battle-defender-slot{position:relative}.battle-slot-dmg{color:#fff;white-space:nowrap;z-index:4;background:#ff4d6d;border-radius:20px;padding:1px 10px;font-size:15px;font-weight:800;position:absolute;bottom:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 12px #ff4d6d99}.battle-slot-kill{filter:drop-shadow(0 0 8px #000000d9);z-index:5;font-size:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.battle-side-empty{color:var(--ink-faint);letter-spacing:1px;font-size:12px}.overflow-target{flex-direction:column;align-items:center;gap:6px;margin-left:12px;display:flex}.overflow-target .damage-detail{color:var(--neon-cyan)}.zone-tab{border:1px dashed var(--edge-hi);color:var(--ink-dim);font:inherit;background:#ffffff05;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.zone-tab-icon{font-size:17px;line-height:1}.zone-tab-title{letter-spacing:2px;font-size:9px;font-weight:700}.zone-tab-count{color:var(--ink);font-size:22px;font-weight:700}.zone-tab-caret{opacity:.75;font-size:9px}.deploy-tab{color:var(--neon-cyan);background:linear-gradient(#22e0ff1a,#22e0ff08);border-color:#22e0ff59}.grid-tab{color:var(--grid);cursor:pointer;background:linear-gradient(#a06cff24,#a06cff0a);border-color:#a06cff80;transition:box-shadow .2s}.grid-tab:hover{box-shadow:0 0 12px #a06cff59}.grid-lane-row{grid-template-columns:82px 1fr 130px;align-items:stretch;gap:8px;margin-top:6px;display:grid}.player-opponent .grid-lane-row{margin-top:0;margin-bottom:6px}.grid-lane-row.collapsed{margin-top:4px}.player-opponent .grid-lane-row.collapsed{margin-top:0;margin-bottom:4px}.grid-lane{min-height:calc(var(--card-h) + 16px);background:repeating-linear-gradient(45deg,#a06cff09 0 8px,#0000 8px 16px),#a06cff06;border-color:#a06cff61;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.grid-lane .card{flex-shrink:0}.grid-lane>.dropzone-hint{color:#a06cff8c;align-self:center}.grid-lane-spacer,.hand-row-spacer{min-width:0}.grid-lane-collapsed{min-height:38px;color:var(--ink-dim);letter-spacing:1px;cursor:pointer;background:#a06cff0a;border:1px dashed #a06cff4d;border-radius:8px;align-items:center;padding:6px 14px;font-size:12px;display:flex}.hand-row{grid-template-columns:82px 1fr 130px;align-items:stretch;gap:8px;display:grid}.card.type-program{border-color:#a06cff8c;box-shadow:0 0 0 1px #a06cff2e,0 6px 16px #00000080}.card.type-program .card-type{color:var(--grid)}.program-tag{color:var(--grid);background:#a06cff38;border:1px solid #a06cff8c}.card.disabled:after{content:"⏻ DISABLED";font-size:max(7px, calc(var(--card-w) / 15));letter-spacing:1px;color:#ffd0e6;text-shadow:0 0 8px #ff3ac9d9;border-radius:inherit;z-index:6;pointer-events:none;background:#1406148c;justify-content:center;align-items:center;font-weight:800;display:flex;position:absolute;inset:0}.card.infected{filter:saturate(.75)hue-rotate(10deg)}.card.infected:after{content:"☣";font-size:max(18px, calc(var(--card-w) / 3));color:var(--neon-lime);text-shadow:0 0 14px #b6ff4cd9;border-radius:inherit;z-index:6;pointer-events:none;background:#0618066b;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.match-menu-links{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.card-db{background:radial-gradient(1200px 600px at 50% -10%, #22e0ff0f, transparent), var(--bg-0);color:var(--ink);position:fixed;inset:0;overflow-y:auto}.card-db-header{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--edge-hi);background:linear-gradient(#0a0d16fa,#0a0d16e6);padding:16px clamp(14px,4vw,40px) 12px;position:sticky;top:0}.card-db-title-row{align-items:center;gap:16px;margin-bottom:12px;display:flex}.card-db-back{color:var(--ink-dim);border:1px solid var(--edge-hi);white-space:nowrap;border-radius:7px;padding:6px 10px;font-size:.85rem;font-weight:700;text-decoration:none}.card-db-back:hover{color:var(--ink);border-color:var(--neon-cyan)}.card-db-title{letter-spacing:.12em;color:var(--neon-cyan);text-shadow:0 0 18px #22e0ff80;flex:1;margin:0;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:800}.card-db-count{color:var(--ink);white-space:nowrap;font-size:1.1rem;font-weight:800}.card-db-count span{color:var(--ink-dim);font-size:.85em;font-weight:600}.card-db-controls{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.card-db-search{background:var(--bg-1);border:1px solid var(--edge-hi);min-width:200px;color:var(--ink);border-radius:8px;flex:1;padding:9px 13px;font-size:.95rem}.card-db-search:focus{border-color:var(--neon-cyan);outline:none;box-shadow:0 0 0 2px #22e0ff2e}.card-db-sort,.card-db-clear{background:var(--bg-1);border:1px solid var(--edge-hi);color:var(--ink);cursor:pointer;border-radius:8px;padding:9px 13px;font-size:.9rem;font-weight:600}.card-db-clear:hover{color:#fff;border-color:#ff3ac9}.card-db-filters{flex-direction:column;gap:8px;display:flex}.filter-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);flex-shrink:0;width:68px;font-size:.7rem;font-weight:800}.filter-chip{background:var(--bg-1);border:1px solid var(--edge-hi);color:var(--ink-dim);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:.8rem;font-weight:600;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.filter-chip:hover{color:var(--ink);border-color:#5566a0}.filter-chip.on{border-color:var(--neon-cyan);color:#fff;background:#22e0ff24}.chip-dot{background:var(--chip,#7c8aa0);width:.7em;height:.7em;box-shadow:0 0 5px var(--chip,#7c8aa0);border-radius:50%;flex-shrink:0}.card-db-grid{--card-h:240px;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:22px 16px;padding:24px clamp(14px,4vw,40px) 60px;display:flex}.card-db-cell{cursor:pointer;background:0 0;border:none;margin:0;padding:0;transition:transform .15s}.card-db-cell .card{cursor:pointer}.card-db-cell:hover{transform:translateY(-6px)}.card-db-cell:focus-visible{outline:2px solid var(--neon-cyan);outline-offset:4px;border-radius:12px}.card-db-empty{text-align:center;color:var(--ink-dim);padding:80px 20px;font-size:1rem}.setup-panel{max-width:660px}.setup-sides{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:24px;display:grid}.setup-side{border:1px solid var(--edge-hi);text-align:left;background:#ffffff05;border-radius:12px;padding:18px 16px}.setup-side-title{letter-spacing:1px;text-transform:uppercase;color:var(--neon-cyan);text-align:center;margin-bottom:14px;font-size:13px;font-weight:800}.setup-field{margin-bottom:12px;display:block}.setup-field:last-child{margin-bottom:0}.setup-deck-note{color:var(--ink-faint);margin:-6px 0 12px;font-size:11.5px;font-style:italic;line-height:1.4}.setup-field>span{letter-spacing:1px;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px;font-size:11px;display:block}.setup-field select{background:var(--bg-0);border:1px solid var(--edge);width:100%;color:var(--ink);border-radius:8px;padding:9px 10px;font-size:13px}.setup-vs{color:var(--ink-faint);letter-spacing:2px;font-size:15px;font-weight:900}.setup-start{border:1px solid var(--neon-cyan);width:100%;color:var(--neon-cyan);letter-spacing:1px;cursor:pointer;background:#22e0ff1f;border-radius:12px;padding:15px;font-size:16px;font-weight:800;transition:background .15s}.setup-start:hover{background:#22e0ff38}@media (width<=560px){.setup-sides{grid-template-columns:1fr}}.admin{height:100vh;color:var(--ink);flex-direction:column;display:flex;overflow:hidden}.admin-header{border-bottom:1px solid var(--edge);background:linear-gradient(180deg, var(--bg-1), var(--bg-0));z-index:20;align-items:center;gap:16px;padding:14px 22px;display:flex;position:sticky;top:0}.admin-header h1{letter-spacing:1px;margin:0;font-size:20px}.admin-sub{color:var(--neon-cyan);letter-spacing:2px;text-transform:uppercase;font-size:13px;font-weight:400}.admin-source{color:var(--ink-dim);border:1px solid var(--edge);border-radius:20px;padding:3px 10px;font-size:12px}.admin-header-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.admin-link{color:var(--neon-cyan);border:1px solid var(--edge-hi);border-radius:8px;padding:7px 14px;font-weight:600;text-decoration:none}.admin-link:hover{background:#22e0ff1a}.admin-body{flex:1;grid-template-columns:240px 1fr 360px;gap:0;min-height:0;display:grid}.admin-list{border-right:1px solid var(--edge);background:var(--bg-1);flex-direction:column;min-height:0;display:flex}.admin-new{border:1px dashed var(--edge-hi);color:var(--neon-lime);cursor:pointer;background:0 0;border-radius:8px;margin:12px;padding:10px;font-weight:600}.admin-new:hover{background:#b6ff4c14}.admin-list-scroll{flex:1;min-height:0;padding:0 8px 16px;overflow-y:auto}.admin-list-item{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;display:flex}.admin-list-item:hover{background:var(--bg-2)}.admin-list-item.active{background:var(--bg-2);border-color:var(--edge-hi)}.ali-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.ali-type{color:var(--ink-faint);text-transform:uppercase;font-size:10px}.dot{background:var(--ink-faint);border-radius:50%;flex-shrink:0;width:8px;height:8px}.type-dot-operative{background:var(--neon-cyan)}.type-dot-resource_asset{background:var(--credits)}.type-dot-asset{background:var(--hardware)}.type-dot-operation{background:var(--neon-magenta)}.type-dot-program{background:#a06cff}.type-dot-gear{background:var(--ink-faint)}.admin-form{flex-direction:column;gap:14px;min-height:0;padding:20px 24px;display:flex;overflow-y:auto}.admin-field{flex-direction:column;gap:5px;display:flex}.admin-field-label{text-transform:uppercase;letter-spacing:1px;color:var(--ink-dim);font-size:11px}.admin-field input,.admin-field select,.admin-field textarea{background:var(--bg-0);border:1px solid var(--edge);color:var(--ink);font:inherit;border-radius:7px;padding:8px 10px;font-size:13px}.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{border-color:var(--neon-cyan);outline:none}.admin-field input:disabled{opacity:.5}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.cost-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.numbox{flex-direction:column;align-items:center;gap:3px;display:flex}.numbox-label{color:var(--ink-faint);font-size:10px}.numbox input{text-align:center;width:100%}.crop-grid{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:8px;display:grid}.sliderbox{flex-direction:column;gap:3px;display:flex}.sliderbox-label{color:var(--ink-faint);font-size:10px}.sliderbox-label b{color:var(--ink)}.file-input{margin-top:6px;font-size:12px}.chip-input{position:relative}.chips{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.chip{border:1px solid var(--edge-hi);background:#22e0ff1f;border-radius:20px;align-items:center;gap:5px;padding:3px 6px 3px 10px;font-size:12px;display:inline-flex}.chip button{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.chip-suggest{z-index:5;background:var(--bg-2);border:1px solid var(--edge-hi);border-radius:8px;flex-direction:column;min-width:180px;margin-top:4px;display:flex;position:absolute;overflow:hidden}.chip-suggest button{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:13px}.chip-suggest button:hover{background:var(--bg-1)}.admin-actions{gap:10px;margin-top:4px;display:flex}.btn-save,.btn-delete,.btn-reset{border:1px solid var(--edge-hi);cursor:pointer;border-radius:8px;padding:10px 18px;font-size:13px;font-weight:600}.btn-save{background:var(--neon-lime);color:#0a0d16;border-color:var(--neon-lime)}.btn-save:disabled{opacity:.6;cursor:default}.btn-delete{color:var(--neon-magenta);background:0 0}.btn-reset{color:var(--ink-dim);background:0 0}.admin-note{color:var(--neon-amber);padding:8px 0;font-size:12px}.admin-preview{border-left:1px solid var(--edge);background:var(--bg-1);--card-h:340px;justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;overflow-y:auto}.admin-empty{color:var(--ink-faint);grid-column:2/4;justify-content:center;align-items:center;display:flex}.admin-auth{align-items:center;gap:8px;display:flex}.admin-auth-email{color:var(--neon-lime);font-size:12px}.admin-auth-note{color:var(--ink-faint);font-size:12px}.admin-auth-btn{border:1px solid var(--edge-hi);background:var(--bg-2);color:var(--ink);cursor:pointer;border-radius:7px;padding:6px 12px;font-size:12px}.admin-auth-btn.ghost{color:var(--ink-dim);background:0 0}.admin-login{align-items:center;gap:6px;display:flex}.admin-login input{background:var(--bg-0);border:1px solid var(--edge);color:var(--ink);border-radius:6px;width:130px;padding:6px 8px;font-size:12px}.admin-toast{z-index:60;box-shadow:var(--shadow-card);border-radius:10px;padding:12px 22px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.admin-toast.ok{background:var(--neon-lime);color:#0a0d16}.admin-toast.err{background:var(--neon-magenta);color:#fff}@media (width<=900px){.admin-body{grid-template-columns:1fr}.admin-preview,.admin-list{border:none}}.admin-gate{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.admin-gate-panel{border:1px solid var(--edge-hi);background:linear-gradient(180deg, var(--bg-1), var(--bg-2));width:320px;box-shadow:var(--shadow-card);text-align:center;border-radius:16px;flex-direction:column;gap:12px;padding:30px 28px;display:flex}.admin-gate-logo{letter-spacing:5px;color:var(--neon-cyan);text-shadow:0 0 18px #22e0ff80;font-size:26px;font-weight:800}.admin-gate-title{letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:6px;font-size:13px}.admin-gate-warn{color:var(--neon-amber);font-size:12px}.admin-gate-msg{color:var(--ink);font-size:13px}.admin-gate-panel input{background:var(--bg-0);border:1px solid var(--edge);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:13px}.admin-gate-panel input:focus{border-color:var(--neon-cyan);outline:none}.admin-auth-btn.primary{background:var(--neon-cyan);color:#0a0d16;border-color:var(--neon-cyan);padding:10px;font-weight:700}.admin-gate-back{color:var(--ink-dim);margin-top:4px;font-size:12px;text-decoration:none}.admin-gate-back:hover{color:var(--neon-cyan)}.admin-check{color:var(--ink-dim);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.admin-check input{width:auto}.effect-grid{background:#a06cff0f;border:1px solid #a06cff59;border-radius:8px;flex-direction:column;gap:10px;margin-top:8px;padding:10px;display:flex}.admin-suggest{background:#a06cff0d;border:1px dashed #a06cff66;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.admin-suggest-text{color:var(--ink-dim);flex:1;font-size:11px;font-style:italic}.btn-suggest{color:#c9a6ff;cursor:pointer;background:#a06cff1f;border:1px solid #a06cff80;border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.btn-suggest:hover{background:#a06cff38}.mech-banner{color:var(--ink-dim);background:#ffb64814;border-bottom:1px solid #ffb64840;padding:8px 16px;font-size:12px}.mech-banner b{color:var(--neon-amber);font-weight:700}.mech-note{color:var(--ink-dim);border:1px dashed var(--ink-faint);border-radius:8px;padding:8px 10px;font-size:12px}.check-row{flex-wrap:wrap;gap:6px;display:flex}.check-chip{color:var(--ink-dim);cursor:pointer;border:1px solid #ffffff1a;border-radius:6px;align-items:center;gap:4px;padding:2px 6px;font-size:11px;display:inline-flex}.check-chip input{width:auto}.mech-preview{flex-direction:column;gap:10px;display:flex}.mech-usage{color:var(--ink-dim);font-size:13px}.mech-usage b{color:var(--neon-cyan)}.mech-json-label{text-transform:uppercase;letter-spacing:1px;color:var(--ink-faint);font-size:11px}.mech-json{color:var(--ink);background:var(--bg-0);white-space:pre-wrap;border:1px solid #ffffff14;border-radius:8px;margin:0;padding:10px;font-size:11px;overflow:auto}.deckbuilder .deck-toolbar{border-bottom:1px solid var(--edge);background:var(--bg-1);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex}.deck-name{background:var(--bg-0);border:1px solid var(--edge);color:var(--ink);border-radius:8px;min-width:220px;padding:8px 12px;font-size:15px;font-weight:700}.deck-stat{color:var(--ink-dim);background:var(--bg-2);border:1px solid var(--edge);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px}.deck-stat.warn{color:var(--neon-amber);border-color:color-mix(in srgb, var(--neon-amber) 45%, transparent)}.deck-toolbar-spacer{flex:1}.deck-warnings{border-bottom:1px solid var(--edge);color:var(--neon-amber);background:#ffb64814;flex-wrap:wrap;gap:14px;padding:8px 20px;font-size:12px;display:flex}.deck-body{background:var(--edge);flex:1;grid-template-columns:210px minmax(0,1fr) minmax(0,1fr);gap:1px;min-height:0;display:grid}.deck-saved,.deck-pool,.deck-current{background:var(--bg-0);flex-direction:column;min-height:0;display:flex}.deck-col-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--edge);padding:10px 14px;font-size:12px}.deck-saved-scroll,.pool-list,.deck-current-scroll{flex:1;min-height:0;padding:8px;overflow:auto}.deck-empty-note{color:var(--ink-faint);padding:12px;font-size:12px}.deck-saved-item{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.deck-saved-item:hover{background:var(--bg-2)}.deck-saved-item.active{background:var(--bg-2);border-color:var(--neon-cyan)}.dsi-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.dsi-count{color:var(--ink-dim);font-size:12px}.pool-filters{border-bottom:1px solid var(--edge);gap:6px;padding:8px;display:flex}.pool-filters select,.pool-search{background:var(--bg-0);border:1px solid var(--edge);color:var(--ink);border-radius:6px;padding:6px 8px;font-size:12px}.pool-search{flex:1;min-width:0}.pool-row,.deck-row{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.pool-row:hover{background:var(--bg-2)}.pool-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.pool-name,.deck-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pool-cost{color:var(--ink-dim);text-align:center;background:var(--bg-2);border-radius:4px;min-width:18px;padding:1px 4px;font-size:11px}.pool-add{color:var(--neon-lime);font-weight:800}.pool-have{color:var(--neon-cyan);font-size:11px;font-weight:700}.deck-group{margin-bottom:10px}.deck-group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:4px 8px;font-size:11px}.deck-row{cursor:default}.deck-row-count{align-items:center;gap:6px;display:flex}.deck-row-count button{background:var(--bg-2);border:1px solid var(--edge);width:22px;height:22px;color:var(--ink);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.deck-row-count button:hover{border-color:var(--neon-cyan)}.deck-row-count span{text-align:center;min-width:16px;font-weight:700}.admin-hint{color:var(--ink-faint,#626b8a);margin-top:6px;font-size:11px;line-height:1.5}.admin-hint code{color:var(--neon-cyan,#22e0ff);background:#ffffff0f;border-radius:4px;padding:1px 5px;font-family:ui-monospace,Menlo,monospace;font-size:10.5px}
