.bugreport-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);padding:.75rem 1.25rem;border-radius:var(--ks-radius-md);font-size:.9rem;font-weight:500;box-shadow:0 4px 12px #0006;z-index:10000;max-width:90vw;text-align:center;animation:bugreport-toast-in .2s ease-out}@keyframes bugreport-toast-in{0%{opacity:0;transform:translate(-50%) translateY(.5rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.bugreport-toast-success{background:var(--ks-bg-elevated);color:var(--ks-text-primary);border:1px solid var(--ks-accent)}.bugreport-toast-error{background:var(--ks-bg-elevated);color:var(--ks-status-danger);border:1px solid var(--ks-accent)}.bugreport-toast-info{background:var(--ks-bg-elevated);color:var(--ks-text-secondary);border:1px solid var(--ks-neutral-border)}.bugreport-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.bugreport-modal{background:var(--ks-bg-modal);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);max-width:540px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.bugreport-title{margin:0;padding:1rem 1.25rem;font-size:1.25rem;border-bottom:1px solid var(--ks-neutral-border)}.bugreport-form{padding:1.25rem}.bugreport-field{margin-bottom:1rem}.bugreport-field label{display:block;margin-bottom:.35rem;font-size:.875rem;color:var(--ks-text-secondary)}.bugreport-field .required{color:var(--ks-accent)}.bugreport-field input,.bugreport-field select,.bugreport-field textarea{width:100%;padding:.5rem .75rem;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-sm);color:var(--ks-text-primary);font-size:.9rem}.bugreport-field input:focus,.bugreport-field select:focus,.bugreport-field textarea:focus{outline:none;border-color:var(--ks-accent-active)}.bugreport-field textarea{resize:vertical;min-height:4rem}.bugreport-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}.bugreport-checkboxes{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.bugreport-check{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.bugreport-check input{accent-color:var(--ks-accent)}.bugreport-error{display:block;margin-top:.25rem;font-size:.8rem;color:var(--ks-accent)}.bugreport-error-block{margin-bottom:1rem;padding:.5rem .75rem;background:#a1121226;border:1px solid var(--ks-accent);border-radius:var(--ks-radius-sm);font-size:.875rem;color:var(--ks-accent-active)}.bugreport-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.bugreport-btn{padding:.5rem 1rem;border-radius:var(--ks-radius-md);font-size:.9rem;cursor:pointer;transition:background var(--ks-ease-micro),border-color var(--ks-ease-micro)}.bugreport-btn:disabled{opacity:.6;cursor:not-allowed}.bugreport-btn-secondary{background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);color:var(--ks-text-primary)}.bugreport-btn-secondary:hover:not(:disabled){border-color:var(--ks-accent-active)}.bugreport-btn-primary{background:var(--ks-accent);border:1px solid var(--ks-accent);color:var(--ks-text-primary)}.bugreport-btn-primary:hover:not(:disabled){background:var(--ks-accent-active);border-color:var(--ks-accent-active)}.bugviewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.bugviewer-modal{background:var(--ks-bg-modal);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);width:100%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080}.bugviewer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--ks-neutral-border)}.bugviewer-header h2{margin:0;font-size:1.25rem}.bugviewer-close{background:none;border:none;color:var(--ks-text-primary);font-size:1.5rem;cursor:pointer;padding:0 .5rem}.bugviewer-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--ks-neutral-border);gap:1rem}.bugviewer-filters{display:flex;gap:.5rem}.bugviewer-filters select{padding:.4rem .6rem;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-sm);color:var(--ks-text-primary)}.bugviewer-actions{display:flex;gap:.5rem}.bugviewer-actions button{padding:.4rem .75rem;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);color:var(--ks-text-primary);font-size:.85rem;cursor:pointer}.bugviewer-actions button:hover:not(:disabled){border-color:var(--ks-accent-active)}.bugviewer-body{flex:1;display:grid;grid-template-columns:280px 1fr;min-height:300px;overflow:hidden}.bugviewer-list{overflow-y:auto;border-right:1px solid var(--ks-neutral-border)}.bugviewer-loading,.bugviewer-empty{padding:2rem;color:var(--ks-text-muted);text-align:center}.bugviewer-item{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem 1rem;border-bottom:1px solid var(--ks-neutral-border);cursor:pointer;transition:background var(--ks-ease-micro)}.bugviewer-item:hover,.bugviewer-item.selected{background:var(--ks-bg-elevated)}.bugviewer-select input{accent-color:var(--ks-accent);margin-top:.2rem}.bugviewer-item-content{flex:1;min-width:0}.bugviewer-item-title{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bugviewer-item-meta{display:block;font-size:.75rem;color:var(--ks-text-muted)}.bugviewer-detail{overflow-y:auto;padding:1rem}.bugviewer-detail-empty{color:var(--ks-text-muted);text-align:center;padding:2rem}.bugviewer-detail-header{margin-bottom:1rem}.bugviewer-detail-header h3{margin:0 0 .5rem;font-size:1rem}.bugviewer-detail-actions{display:flex;gap:.5rem;flex-wrap:wrap}.bugviewer-detail-actions button{padding:.35rem .6rem;font-size:.8rem;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-sm);color:var(--ks-text-primary);cursor:pointer}.bugviewer-detail-actions button:hover{border-color:var(--ks-accent-active)}.bugviewer-detail-content p{margin:0 0 .5rem;font-size:.9rem}.bugviewer-screenshot-preview{margin:1rem 0;max-width:100%}.bugviewer-screenshot-preview img{max-width:100%;max-height:200px;border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-sm)}.bugviewer-json{margin-top:1rem;padding:1rem;background:var(--ks-bg-overlay);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-sm);font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.howto-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.howto-modal{background:var(--ks-bg-modal);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);max-width:680px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080}.howto-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--ks-neutral-border);flex-shrink:0}.howto-title{margin:0;font-size:1.2rem;font-weight:600;color:var(--ks-text-primary)}.howto-close{width:2rem;height:2rem;padding:0;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ks-text-secondary);font-size:1.5rem;line-height:1;cursor:pointer;border-radius:var(--ks-radius-sm);transition:color var(--ks-ease-micro),background var(--ks-ease-micro)}.howto-close:hover{color:var(--ks-text-primary);background:var(--ks-bg-elevated)}.howto-tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1rem;border-bottom:1px solid var(--ks-neutral-border);flex-shrink:0;background:var(--ks-bg-elevated)}.howto-tab{display:flex;align-items:center;gap:.35rem;padding:.45rem .75rem;background:none;border:1px solid transparent;border-radius:var(--ks-radius-sm);color:var(--ks-text-secondary);font-size:.85rem;cursor:pointer;transition:color var(--ks-ease-micro),background var(--ks-ease-micro),border-color var(--ks-ease-micro)}.howto-tab:hover{color:var(--ks-text-primary);background:var(--ks-bg-panel)}.howto-tab-active{color:var(--ks-text-primary);background:var(--ks-bg-panel);border-color:var(--ks-accent)}.howto-tab-icon{font-size:.9em}.howto-content{flex:1;overflow-y:auto;padding:1rem 1.25rem;min-height:0}.howto-page-content{display:flex;flex-direction:column;gap:0}.howto-section{margin-bottom:1.25rem}.howto-section:last-child{margin-bottom:0}.howto-heading{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--ks-text-primary)}.howto-list{margin:0;padding-left:1.25rem;color:var(--ks-text-secondary);font-size:.9rem;line-height:1.5}.howto-list li{margin-bottom:.3rem}.howto-list li:last-child{margin-bottom:0}.howto-steps{list-style-type:decimal}.howto-footer{padding:.75rem 1.25rem;border-top:1px solid var(--ks-neutral-border);flex-shrink:0}.howto-btn{padding:.5rem 1.25rem;background:var(--ks-accent);border:1px solid var(--ks-accent);color:var(--ks-text-primary);font-size:.9rem;border-radius:var(--ks-radius-md);cursor:pointer;transition:background var(--ks-ease-micro),border-color var(--ks-ease-micro)}.howto-btn:hover{background:var(--ks-accent-active);border-color:var(--ks-accent-active)}@media(max-width:520px){.howto-tabs{padding:.4rem .75rem;gap:.2rem}.howto-tab{padding:.35rem .5rem;font-size:.8rem}.howto-tab-icon{display:none}.howto-content{padding:.75rem 1rem}.howto-heading{font-size:.95rem}.howto-list{font-size:.85rem}}.settings-menu-wrapper{position:relative}.settings-menu-trigger{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);color:var(--ks-text-primary);font-size:1.1rem;cursor:pointer;transition:border-color var(--ks-ease-micro),background var(--ks-ease-micro)}.settings-menu-trigger:hover{border-color:var(--ks-accent-active);background:var(--ks-bg-panel)}.settings-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:140px;background:var(--ks-bg-modal);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);box-shadow:0 4px 12px #0006;z-index:100;overflow:hidden}.settings-menu-item{display:block;width:100%;padding:.5rem 1rem;text-align:left;background:none;border:none;color:var(--ks-text-primary);font-size:.9rem;cursor:pointer;transition:background var(--ks-ease-micro)}.settings-menu-item:hover{background:var(--ks-bg-elevated)}.lobby{max-width:420px;margin:2rem auto;text-align:center;padding:2rem;background:var(--ks-bg-panel);border-radius:var(--ks-radius-md);border:1px solid var(--ks-neutral-border)}.lobby-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.lobby-header h1{font-size:2.5rem;margin:0;color:var(--ks-accent-active);font-family:Oswald,sans-serif;text-transform:uppercase}.subtitle{color:var(--ks-text-secondary);margin-bottom:.5rem}.lobby-how-to-play{background:none;border:none;color:var(--ks-accent);font-size:.9rem;cursor:pointer;text-decoration:underline;padding:.25rem 0;margin-bottom:1.5rem;transition:color var(--ks-ease-micro)}.lobby-how-to-play:hover{color:var(--ks-accent-active)}.lobby-options{display:flex;flex-direction:column;gap:1rem;text-align:left;margin-bottom:2rem}.lobby-options label{display:flex;flex-direction:column;gap:.5rem}.lobby-options select{padding:.5rem .75rem;font-size:1rem;background:var(--ks-bg-elevated);color:var(--ks-text-primary);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md)}.toggle{flex-direction:row!important;align-items:center;cursor:pointer}.toggle input{margin-right:.5rem}.start-btn{padding:.75rem 2rem;font-size:1.25rem;background:var(--ks-bg-elevated);color:var(--ks-text-primary);border:2px solid var(--ks-accent);border-radius:var(--ks-radius-md);cursor:pointer;font-weight:700;transition:border-color var(--ks-ease-micro) var(--ks-ease-curve),background var(--ks-ease-micro) var(--ks-ease-curve),transform var(--ks-ease-micro) var(--ks-ease-curve)}.start-btn:hover{border-color:var(--ks-accent-active);transform:scale(1.03)}.start-btn:active{background:var(--ks-accent);border-color:var(--ks-accent);color:var(--ks-text-primary)}.dev-log-panel{position:fixed;bottom:1rem;left:1rem;width:320px;max-height:220px;background:var(--ks-bg-panel);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);font-family:JetBrains Mono,Consolas,monospace;font-size:11px;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.dev-log-panel.dev-log-collapsed{max-height:36px}.dev-log-header{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--ks-bg-elevated);cursor:pointer;flex-shrink:0}.dev-log-title{font-weight:700;color:var(--ks-accent-active)}.dev-log-count{font-size:10px;color:var(--ks-text-muted)}.dev-log-clear{margin-left:auto;padding:.2rem .5rem;font-size:10px;background:transparent;border:1px solid var(--ks-neutral-border);border-radius:4px;color:var(--ks-text-muted);cursor:pointer}.dev-log-clear:hover{color:var(--ks-text-primary)}.dev-log-toggle{font-size:10px;color:var(--ks-text-muted)}.dev-log-messages{flex:1;overflow-y:auto;padding:.4rem;display:flex;flex-direction:column;gap:.2rem;max-height:180px}.dev-log-empty{color:var(--ks-text-muted);font-style:italic;padding:.5rem}.dev-log-entry{display:flex;gap:.5rem;padding:.2rem .4rem;border-radius:4px;line-height:1.3}.dev-log-entry.dev-log-action,.dev-log-entry.dev-log-state,.dev-log-entry.dev-log-ai{background:#a112121a;border-left:2px solid var(--ks-accent)}.dev-log-entry.dev-log-warn{background:#c88c0026;border-left:2px solid #c88c00}.dev-log-entry.dev-log-error{background:#b4282833;border-left:2px solid #b42828}.dev-log-time{flex-shrink:0;color:var(--ks-text-muted);font-size:10px}.dev-log-msg{word-break:break-word;color:var(--ks-text-primary)}.game-board{min-height:100vh;display:flex;flex-direction:column;padding:1rem;background:var(--ks-arena-bg)}.table-frame{flex:1;display:flex;flex-direction:column;padding:1.5rem;background:var(--ks-bg-panel);border-radius:var(--ks-radius-md);border:1px solid var(--ks-neutral-border)}.game-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.game-header-spacer{flex:1}.back-btn{padding:.5rem 1rem;background:var(--ks-bg-elevated);color:var(--ks-text-primary);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);cursor:pointer;transition:border-color var(--ks-ease-micro) var(--ks-ease-curve),transform var(--ks-ease-micro) var(--ks-ease-curve)}.back-btn:hover{border-color:var(--ks-accent-active);transform:scale(1.03)}.back-btn:active{background:var(--ks-accent);border-color:var(--ks-accent);color:var(--ks-text-primary)}.round{font-weight:700;color:var(--ks-accent-attack)}.phase{color:var(--ks-text-muted)}.table-surface{flex:1;position:relative;min-height:480px;background:radial-gradient(circle at 50% 50%,transparent 0%,transparent 40%,rgba(161,18,18,.03) 70%,transparent 100%),repeating-radial-gradient(circle at 50% 50%,transparent 0,transparent 2px,rgba(161,18,18,.04) 2px,rgba(161,18,18,.04) 3px) 50% 50% / 48px 48px,var(--ks-arena-bg);border-radius:50%/28%;border:1px solid var(--ks-neutral-border);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:1.5rem}.table-opponents{display:flex;justify-content:space-between;align-items:flex-start;width:100%;max-width:560px;padding:0 .5rem;gap:.75rem}.table-opponents-1 .table-top{flex:0 1 auto}.table-opponents-2{padding:0 2rem}.table-side{flex:1 1 0;display:flex;justify-content:center;min-width:0;max-width:190px}.table-side.table-left{justify-content:flex-end}.table-side.table-right{justify-content:flex-start}.table-side.table-top{justify-content:center}.opponent-seat{padding:.75rem 1rem;background:var(--ks-bg-elevated);border-radius:var(--ks-radius-md);border:1px solid var(--ks-neutral-border);min-width:120px;max-width:180px;width:100%;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;transition:border-color var(--ks-ease-micro) var(--ks-ease-curve),transform var(--ks-ease-micro) var(--ks-ease-curve)}.opponent-seat.current{border-color:var(--ks-accent-active);border-width:2px}.opponent-seat.eliminated{opacity:.5;flex-direction:column;gap:.35rem}.opponent-seat.targetable{cursor:pointer;border-color:var(--ks-accent)}.opponent-seat.targetable:hover{transform:scale(1.03);border-color:var(--ks-accent-active);border-width:2px}.opponent-seat.selected-target{border-color:var(--ks-accent-active);border-width:2px;background:var(--ks-bg-panel)}.opponent-seat.damage-flash,.player-info.damage-flash{animation:damage-flash .12s var(--ks-ease-curve) forwards}@keyframes damage-flash{0%{background:#a1121280;border-color:var(--ks-accent-active)}to{background:var(--ks-bg-elevated);border-color:var(--ks-neutral-border)}}.player-info.damage-flash{animation:damage-flash-player .12s var(--ks-ease-curve) forwards}@keyframes damage-flash-player{0%{background:#a1121266}to{background:transparent}}.damage-number{color:var(--ks-accent-attack);font-weight:700;margin-left:.5rem;animation:damage-pop .5s ease-out}@keyframes damage-pop{0%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}.opponent-seat.defensive-effect,.player-info.defensive-effect{animation:defensive-flash .25s var(--ks-ease-curve) forwards}@keyframes defensive-flash{0%{border-color:var(--ks-accent);background:#a112121a}to{border-color:var(--ks-neutral-border);background:var(--ks-bg-elevated)}}.combat-event{padding:.4rem .75rem;border-radius:var(--ks-radius-md);font-size:.9rem;animation:combat-event-in var(--ks-ease-major) var(--ks-ease-curve)}.combat-blocked,.combat-reduced,.combat-missed,.combat-spike-trap{background:#a1121226;border:1px solid var(--ks-accent);color:var(--ks-accent-active)}.shield-icon{font-size:1.1rem}.trap-reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ks-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1100;cursor:pointer;animation:trap-overlay-in .3s ease-out}@keyframes trap-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes trap-content-pop{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.trap-reveal-content{background:var(--ks-bg-panel);border:2px solid var(--ks-accent);border-radius:var(--ks-radius-md);padding:2rem;max-width:400px;text-align:center;animation:trap-content-pop .5s ease-out}.trap-reveal-header{font-size:1.5rem;font-weight:700;color:var(--ks-accent-active);margin-bottom:1rem}.trap-reveal-card-flip{perspective:800px;margin:1rem auto}.trap-card{width:120px;height:168px;margin:0 auto;border-radius:8px;overflow:hidden;position:relative;border:2px solid var(--ks-border-default);animation:trap-card-flip var(--ks-ease-flip) var(--ks-ease-curve);transform-style:preserve-3d}@keyframes trap-card-flip{0%{transform:rotateY(90deg);opacity:.5}to{transform:rotateY(0);opacity:1}}.trap-card .card-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.trap-card-name{position:absolute;bottom:0;left:0;right:0;background:var(--ks-bg-overlay);color:var(--ks-text-primary);font-size:.75rem;padding:.25rem;font-weight:700}.trap-reveal-effect{color:var(--ks-text-secondary);font-size:1rem;margin:1rem 0;line-height:1.4}.trap-reveal-result{color:var(--ks-accent-trap);font-size:1rem;margin-bottom:1.5rem}.trap-reveal-dismiss{padding:.5rem 1.5rem;background:var(--ks-bg-elevated);border:2px solid var(--ks-accent);border-radius:var(--ks-radius-md);color:var(--ks-text-primary);font-weight:700;cursor:pointer}.trap-reveal-dismiss:hover{border-color:var(--ks-accent-active)}.trap-reveal-dismiss:active{background:var(--ks-accent);border-color:var(--ks-accent)}.last-played-hidden{animation:mystery-reveal .6s ease-out}.mystery-card{color:var(--ks-accent-neutral);font-style:italic}@keyframes mystery-reveal{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.05)}to{transform:scale(1)}}@keyframes combat-event-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.opponent-seat .name{display:block;font-weight:700}.opponent-seat .playstyle-badge{display:inline-block;margin-left:.35rem;padding:.1rem .35rem;font-size:.65rem;font-weight:400;text-transform:capitalize;color:var(--ks-text-muted);background:#ffffff14;border-radius:4px}.opponent-seat .hp{color:var(--ks-accent-attack);font-size:.8rem}.opponent-seat .cards{color:var(--ks-text-muted);font-size:.9rem}.opponent-seat .eliminated-label{color:var(--ks-status-danger);font-size:.9rem}.player-table-cards{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.player-table-cards.compact{margin-top:.35rem;gap:.35rem}.hidden-card-slot{flex-shrink:0}.hidden-card-slot.hidden-card-peekable{cursor:pointer}.hidden-card-slot.hidden-card-peekable:hover .hidden-card-back{transform:scale(1.03)}.hidden-card-back{width:45px;height:60px;border-radius:var(--ks-radius-md);background:var(--ks-bg-elevated);transition:transform var(--ks-ease-micro) var(--ks-ease-curve);position:relative;overflow:hidden}.hidden-card-back .card-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.player-table-cards.compact .hidden-card-back{width:36px;height:48px}.hidden-card-back:hover{transform:scale(1.05)}.protection-badges{display:flex;flex-wrap:wrap;gap:.35rem}.protection-badge{font-size:.7rem;padding:.2rem .45rem;border-radius:var(--ks-radius-md);background:#a1121233;border:1px solid var(--ks-accent);color:var(--ks-accent-active);white-space:nowrap}.player-table-cards.compact .protection-badge{font-size:.65rem;padding:.15rem .35rem}.protection-badge.kevlar,.protection-badge.chainmail,.protection-badge.chestplate,.protection-badge.mecha,.protection-badge.final-spree{background:#a1121233;border-color:var(--ks-accent);color:var(--ks-accent-active)}.status-effect-badges{display:flex;flex-wrap:wrap;gap:.35rem}.status-effect-badge{font-size:.7rem;padding:.2rem .45rem;border-radius:6px;white-space:nowrap;border:1px solid}.status-effect-badge.status-effect-molotov,.status-effect-badge.status-effect-dynamite,.status-effect-badge.status-effect-poisonous_apple,.status-effect-badge.status-effect-chainsaw{background:#a1121233;border-color:var(--ks-accent);color:var(--ks-accent-active)}.player-table-cards.compact .status-effect-badge{font-size:.65rem;padding:.15rem .35rem}.hidden-badge{margin-left:.5rem;font-size:1.2rem}.table-center{display:flex;flex-direction:column;align-items:center;gap:.75rem;flex-shrink:0}.center-piles{display:flex;gap:1.5rem;align-items:flex-end}.pile{display:flex;flex-direction:column;align-items:center}.pile-stack{position:relative;width:60px;height:82px}.pile-card{width:60px;height:82px;border-radius:6px;border:2px solid var(--ks-border-default);display:flex;align-items:center;justify-content:center;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.pile-card .card-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:4px}.pile-card-back{background:var(--ks-bg-elevated);border:none}.pile-card-back .card-img{object-fit:contain}.pile-card-face{background:var(--ks-bg-elevated);font-size:.65rem;font-weight:700;text-align:center;padding:.25rem}.pile-card-face .card-name{position:relative;z-index:1;text-shadow:0 0 2px var(--ks-bg-overlay)}.pile-card-face.card-weapon{border-left:4px solid var(--ks-accent-attack)}.pile-card-face.card-utility{border-left:4px solid var(--ks-accent-defense)}.pile-card-face.card-special{border-left:4px solid var(--ks-accent-special)}.pile-card-face.card-hidden{border-left:4px solid var(--ks-accent-trap)}.pile-count{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);background:var(--ks-bg-overlay);color:var(--ks-text-primary);font-size:.75rem;padding:.1rem .4rem;border-radius:4px}.last-played{color:var(--ks-text-primary);font-size:.9rem}.last-played-card{padding:.15rem .5rem;border-radius:4px;font-weight:700}.last-played-card.card-weapon,.last-played-card.card-utility,.last-played-card.card-special,.last-played-card.card-hidden{background:#a1121233;border:1px solid var(--ks-accent)}.waiting{color:var(--ks-accent-attack);font-style:italic}.targeting-prompt{color:var(--ks-accent-trap);font-size:.9rem}.targeting-prompt strong{color:var(--ks-text-primary)}.table-player{width:100%;max-width:680px;padding:.75rem 0 0;display:flex;flex-direction:column;align-items:center;gap:.75rem}.player-info{display:flex;align-items:center;gap:1rem;font-size:1.2rem}.player-info.current{color:var(--ks-accent-attack);font-weight:700}.player-avatar{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.player-avatar:before{content:"👤";font-size:1.5rem;opacity:.7}.player-avatar-human{border-color:var(--ks-accent-active);background:var(--ks-bg-elevated)}.player-avatar-human:before{content:"🧑"}.player-avatar-ai{border-color:var(--ks-neutral-border);background:var(--ks-bg-elevated)}.player-avatar-ai:before{content:"🤖"}.player-details{display:flex;flex-direction:column;gap:.25rem}.player-health{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.health-bar{width:120px;height:10px;background:var(--ks-neutral-disabled);border-radius:var(--ks-radius-md);overflow:hidden;border:1px solid var(--ks-neutral-border)}.health-bar-fill{height:100%;background:var(--ks-accent);border-radius:4px;transition:width .3s ease}.player-info .health-bar{width:120px;height:10px}.opponent-seat .player-health{width:100%}.opponent-seat .health-bar{flex:1;min-width:50px;max-width:90px;height:8px}.opponent-seat-details{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1}.opponent-seat .player-avatar{width:40px;height:40px;min-width:40px;min-height:40px}.opponent-seat .player-avatar:before{font-size:1.1rem}.opponent-seat.eliminated .player-avatar{opacity:.6;filter:grayscale(.8)}.hand{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;min-height:100px}.hand-fan{position:relative;display:flex;justify-content:center;align-items:flex-end;min-height:140px;padding-bottom:0}.hand-fan-human .card-fan-item{position:absolute;bottom:0;left:50%;margin-left:-41px;transform-origin:bottom center;transform:translate(var(--fan-tx, 0)) rotate(var(--fan-rot, 0));transition:transform var(--ks-ease-flip) var(--ks-ease-curve)}.hand-fan-human .card-fan-item:hover{transform:translate(var(--fan-tx, 0)) translateY(-12px) rotate(var(--fan-rot, 0)) scale(1.05);z-index:100!important}.opponent-hand-fan{position:relative;display:flex;justify-content:center;align-items:flex-end;height:44px;margin-top:.2rem}.opponent-card-back{position:absolute;bottom:0;left:50%;width:32px;height:44px;margin-left:-16px;transform-origin:bottom center;border-radius:4px;overflow:hidden;border:1px solid var(--ks-neutral-border);background:var(--ks-bg-elevated)}.opponent-card-back .card-img{width:100%;height:100%;object-fit:contain}.opponent-hand-count{position:absolute;bottom:-4px;right:-6px;font-size:.65rem;color:var(--ks-text-muted)}.card{width:82px;height:110px;padding:.5rem;background:var(--ks-bg-elevated);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:transform var(--ks-ease-flip) var(--ks-ease-curve),border-color var(--ks-ease-micro) var(--ks-ease-curve);position:relative;overflow:hidden}.card .card-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:6px}.card .card-name,.card .card-damage{position:relative;z-index:1}.card:hover{transform:scale(1.03) translateY(-4px);border-color:var(--ks-accent-active)}.card.card-selected{border-color:var(--ks-accent-active);border-width:2px;transform:scale(1.03) translateY(-4px)}.card.card-unplayable{opacity:.6;filter:saturate(.5)}.card-weapon{border-left:4px solid var(--ks-accent-attack)}.card-utility{border-left:4px solid var(--ks-accent-defense)}.card-special{border-left:4px solid var(--ks-accent-special)}.card-hidden{border-left:4px solid var(--ks-accent-trap)}.card-name{font-size:.75rem;font-weight:700;line-height:1.2}.card-damage{font-size:.7rem;color:var(--ks-accent-attack)}@keyframes card-draw-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.card.card-draw-in{animation:card-draw-in .4s var(--ks-ease-curve) forwards}.card.card-draw-in .card-img,.card.card-draw-in .card-name,.card.card-draw-in .card-damage{animation:none}@keyframes pile-card-update{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.pile-card-face.pile-card-updated{animation:pile-card-update .35s var(--ks-ease-curve) forwards}.card-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ks-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.card-preview-modal{background:var(--ks-bg-panel);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);padding:1.5rem;max-width:360px;width:90%}.card-preview-content{padding:1rem;border-radius:8px;margin-bottom:1rem}.card-preview-content.card-weapon{border-left:4px solid var(--ks-accent-attack)}.card-preview-content.card-utility{border-left:4px solid var(--ks-accent-defense)}.card-preview-content.card-special{border-left:4px solid var(--ks-accent-special)}.card-preview-content.card-hidden{border-left:4px solid var(--ks-accent-trap)}.card-preview-name{margin:0 0 .5rem;font-size:1.5rem;color:var(--ks-text-primary)}.card-preview-type{display:block;font-size:.85rem;color:var(--ks-text-muted);margin-bottom:.5rem}.card-preview-damage{display:block;color:var(--ks-accent-attack);font-size:.9rem;margin-bottom:.75rem}.card-preview-effect{color:var(--ks-text-secondary);font-size:1rem;line-height:1.5;margin:.75rem 0 0}.card-preview-subtext{color:var(--ks-text-muted);font-size:.9rem;font-style:italic;margin:.5rem 0 0}.card-preview-actions{display:flex;gap:.75rem;justify-content:flex-end}.card-preview-actions button{padding:.5rem 1.25rem;background:var(--ks-bg-elevated);color:var(--ks-text-primary);border:1px solid var(--ks-border-default);border-radius:6px;cursor:pointer}.card-preview-actions button:hover:not(:disabled){background:var(--ks-bg-modal)}.card-preview-actions button:last-child{background:var(--ks-bg-elevated);border-color:var(--ks-accent)}.card-preview-actions button:last-child:hover:not(:disabled){border-color:var(--ks-accent-active);background:var(--ks-accent);color:var(--ks-text-primary)}.card-preview-actions button:last-child:active:not(:disabled){background:var(--ks-accent);border-color:var(--ks-accent)}.actions{display:flex;gap:.75rem}.actions button{padding:.6rem 1.25rem;background:var(--ks-bg-elevated);color:var(--ks-text-primary);border:1px solid var(--ks-neutral-border);border-radius:var(--ks-radius-md);cursor:pointer;transition:border-color var(--ks-ease-micro) var(--ks-ease-curve),transform var(--ks-ease-micro) var(--ks-ease-curve)}.actions button:hover{border-color:var(--ks-accent-active);transform:scale(1.03)}.actions button:active{background:var(--ks-accent);border-color:var(--ks-accent)}.game-over{max-width:400px;margin:4rem auto;text-align:center;padding:2rem;background:var(--ks-bg-panel);border-radius:var(--ks-radius-md);border:1px solid var(--ks-neutral-border)}.game-over h2{color:var(--ks-accent-attack);margin-bottom:1rem}.game-over .winner{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.game-over .reason{color:var(--ks-text-secondary);margin-bottom:1.5rem}.game-over button{padding:.75rem 2rem;background:var(--ks-accent-attack);color:var(--ks-text-inverted);border:none;border-radius:8px;cursor:pointer;font-size:1rem}.game-over button:hover{border-color:var(--ks-accent-active)}.game-over button:active{background:var(--ks-accent-depth)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--ks-arena-bg);color:var(--ks-text-primary);min-height:100vh}#root{min-height:100vh;padding:1rem}:root{--ks-bg-base: #111111;--ks-bg-base-end: #111111;--ks-bg-elevated: #1A1A1A;--ks-bg-panel: #141414;--ks-bg-modal: #141414;--ks-bg-overlay: #0E0E14;--ks-arena-bg: #0E0E14;--ks-accent: #A11212;--ks-accent-active: #FF2E2E;--ks-accent-depth: #7A0E0E;--ks-accent-attack: var(--ks-accent);--ks-accent-trap: var(--ks-accent);--ks-accent-defense: var(--ks-accent);--ks-accent-special: var(--ks-accent);--ks-accent-neutral: var(--ks-accent);--ks-status-danger: var(--ks-accent);--ks-status-success: var(--ks-accent);--ks-status-warning: var(--ks-accent);--ks-status-disabled: var(--ks-neutral-disabled);--ks-neutral-border: #3A3A3A;--ks-neutral-rim: #4A4A4A;--ks-neutral-disabled: #2A2A2A;--ks-border-default: var(--ks-neutral-border);--ks-border-subtle: var(--ks-neutral-disabled);--ks-border-focus: var(--ks-accent-active);--ks-text-primary: #FFFFFF;--ks-text-secondary: #B0B0B0;--ks-text-muted: #6A6A6A;--ks-text-inverted: #111111;--ks-radius-sm: 2px;--ks-radius-md: 4px;--ks-ease-micro: .1s;--ks-ease-flip: .2s;--ks-ease-major: .25s;--ks-ease-curve: cubic-bezier(.25, .46, .45, .94);--bg-base: var(--ks-bg-base);--bg-elevated: var(--ks-bg-elevated);--bg-panel: var(--ks-bg-panel);--bg-overlay: var(--ks-bg-overlay);--text-primary: var(--ks-text-primary);--text-secondary: var(--ks-text-secondary);--text-muted: var(--ks-text-muted);--text-inverted: var(--ks-text-inverted);--border-default: var(--ks-neutral-border);--border-subtle: var(--ks-neutral-disabled);--border-focus: var(--ks-accent-active)}:root{font-family:Inter,system-ui,sans-serif;line-height:1.5}h1,h2,.ks-heading{font-family:Oswald,Inter,system-ui,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
