@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--bg:#0f0f1a;--bg-card:#1a1a2e;--bg-surface:#16213e;--bg-elevated:#1e2a4a;--primary:#d32f2f;--primary-light:#ef5350;--primary-dark:#b71c1c;--accent:gold;--accent-soft:#ffb300;--text:#fff;--text-secondary:#9e9eb8;--text-muted:#6b6b8d;--success:#4caf50;--warning:#ff9800;--danger:#f44336;--border:#2a2a4a;--radius:12px;--radius-lg:20px;--radius-xl:28px;--shadow:0 4px 20px #0000004d;--shadow-lg:0 8px 40px #0006;--transition:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}body,html{width:100%;min-height:100vh;overflow-x:hidden}#root{width:100%;min-height:100vh}input,button,select,textarea{font-family:inherit}a{color:var(--primary-light);text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.spin{animation:1s linear infinite spin}.fade-in{animation:.4s ease-out fadeIn}.slide-up{animation:.5s ease-out slideUp}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-bg{pointer-events:none;position:fixed;inset:0}.bg-glow{filter:blur(120px);opacity:.15;border-radius:50%;width:300px;height:300px;position:absolute}.bg-glow.top-right{background:var(--primary);top:-100px;right:-100px}.bg-glow.bottom-left{background:var(--accent);bottom:-100px;left:-100px}.login-content{flex-direction:column;align-items:center;gap:32px;width:100%;max-width:400px;display:flex}.brand{text-align:center;animation:.6s ease-out fadeIn}.brand-icon{background:linear-gradient(135deg, var(--primary), var(--primary-dark));border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex;box-shadow:0 8px 24px #d32f2f4d}.brand h1{letter-spacing:-1px;background:linear-gradient(to right, var(--text), var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2rem;font-weight:900}.brand-sub{color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-top:4px;font-size:.85rem}.step-dots{align-items:center;gap:6px;display:flex}.dot{background:var(--border);width:8px;height:8px;transition:var(--transition);border-radius:50%}.dot.active{background:var(--primary-light);box-shadow:0 0 12px #ef535066}.dot.done{background:var(--success)}.line{background:var(--border);width:24px;height:2px;transition:var(--transition);border-radius:1px}.line.done{background:var(--success)}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-lg);padding:32px 24px}.auth-card h2{margin-bottom:4px;font-size:1.3rem;font-weight:700}.form-desc{color:var(--text-secondary);margin-bottom:24px;font-size:.85rem}.input-group{margin-bottom:16px;position:relative}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-field{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);transition:var(--transition);outline:none;padding:14px 14px 14px 44px;font-size:1rem}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #d32f2f26}.input-field::placeholder{color:var(--text-muted)}.checkbox-label{cursor:pointer;color:var(--text-secondary);align-items:center;gap:10px;margin-bottom:20px;font-size:.85rem;display:flex}.checkbox-label input{display:none}.check-box{border:2px solid var(--border);width:20px;height:20px;transition:var(--transition);border-radius:6px;flex-shrink:0;position:relative}.checkbox-label input:checked+.check-box{background:var(--success);border-color:var(--success)}.checkbox-label input:checked+.check-box:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.primary-btn{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;width:100%;transition:var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:1rem;font-weight:700;display:flex;box-shadow:0 4px 16px #d32f2f4d}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #d32f2f66}.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.text-btn{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;margin-top:16px;padding:8px;font-size:.85rem}.text-btn:hover{color:var(--text-secondary)}.otp-header{text-align:center;margin-bottom:24px}.otp-icon{color:var(--success);margin-bottom:12px}.otp-inputs{justify-content:center;gap:8px;margin-bottom:24px;display:flex}.otp-box{text-align:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:44px;height:52px;color:var(--text);transition:var(--transition);outline:none;font-size:1.3rem;font-weight:700}.otp-box:focus{border-color:var(--primary);box-shadow:0 0 0 3px #d32f2f26}.error-box{border-radius:var(--radius);color:var(--danger);background:#f443361a;border:1px solid #f443364d;margin-bottom:16px;padding:10px 14px;font-size:.85rem}.login-footer-text{color:var(--text-muted);font-size:.75rem}.modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-panel-title{align-items:center;gap:10px;display:flex}.modal-panel-title h3{margin:0;font-size:1rem}.modal-close{background:var(--bg-surface);color:var(--text-muted);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-body{padding:20px}.modal-desc{color:var(--text-muted);margin-bottom:16px;font-size:.82rem}.preset-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.preset-chip{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition);flex-direction:column;align-items:center;gap:2px;padding:14px 12px;display:flex}.preset-chip.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--bg-surface))}.preset-value{font-size:1rem;font-weight:700}.preset-bonus{color:var(--success);font-size:.7rem;font-weight:600}.custom-input{margin-bottom:12px}.custom-input label{color:var(--text-muted);margin-bottom:6px;font-size:.75rem;font-weight:600;display:block}.custom-input input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);box-sizing:border-box;outline:none;padding:12px;font-size:1rem}.custom-input input:focus{border-color:var(--primary)}.modal-panel-footer{border-top:1px solid var(--border);gap:10px;padding:16px 20px;display:flex}.btn-modal-cancel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;flex:1;padding:12px;font-weight:600}.btn-modal-confirm{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;flex:2;justify-content:center;align-items:center;gap:6px;padding:12px;font-weight:700;display:flex}.btn-modal-confirm:hover{transform:translateY(-1px)}.btn-modal-confirm:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-modal-confirm.redemption{background:linear-gradient(135deg, var(--warning), #e65100)}.purchase-success{text-align:center;padding:30px 22px 22px}.purchase-success>svg{color:var(--success)}.purchase-success h4{margin:12px 0 6px;font-size:1.05rem}.purchase-success p{color:var(--text-secondary);margin:0 0 22px;font-size:.85rem;line-height:1.5}.purchase-success .btn-modal-confirm{width:100%;min-height:44px}.overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.dash-header{justify-content:space-between;align-items:center;margin-bottom:20px;animation:.4s ease-out fadeIn;display:flex}.greeting{align-items:center;gap:12px;display:flex}.greeting-avatar{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;font-weight:800;display:flex;box-shadow:0 4px 12px #d32f2f4d}.greeting h2{margin:0;font-size:1.05rem;font-weight:700}.greeting-sub{color:var(--text-secondary);margin:2px 0 0;font-size:.8rem}.balance-pill{color:var(--text);background:var(--bg-card);border:1px solid var(--border);font:inherit;cursor:pointer;transition:var(--transition);border-radius:20px;align-items:center;gap:6px;padding:8px 14px;display:flex}.balance-pill:hover,.balance-pill:focus-visible{border-color:var(--accent-soft);background:var(--bg-elevated);outline:none}.balance-icon{color:var(--accent)}.balance-num{color:var(--accent);font-size:.9rem;font-weight:800}.balance-label{color:var(--text-muted);font-size:.72rem;font-weight:700}.balance-add{color:var(--accent);margin-left:2px}.game-progress-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:auto auto minmax(90px,1fr) auto;align-items:center;gap:12px;margin:-12px 0 24px;padding:10px 12px;display:grid}.progress-rank-mark{aspect-ratio:1;width:34px;color:var(--accent);place-items:center;display:grid}.progress-copy{flex-direction:column;line-height:1.15;display:flex}.progress-copy strong{color:var(--text);font-size:.82rem}.progress-copy span,.progress-record{color:var(--text-muted);font-size:.68rem;font-weight:700}.progress-track{background:var(--bg-surface);border-radius:3px;height:6px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--accent));height:100%;display:block}.progress-record{white-space:nowrap}@media (width<=520px){.game-progress-strip{grid-template-columns:auto 1fr auto}.progress-track{grid-column:1/-1}}.quick-actions{gap:10px;margin-bottom:24px;animation:.4s ease-out slideUp;display:flex}.action-btn{border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;flex:1;justify-content:center;align-items:center;gap:6px;margin-bottom:0;padding:12px;font-size:.85rem;font-weight:700;display:flex}.action-btn.deposit{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 4px 16px #d32f2f33}.action-btn.withdraw{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.action-btn:hover{transform:translateY(-1px)}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;align-items:center;gap:6px;margin-bottom:12px;font-size:.8rem;font-weight:600;display:flex}.practice-section{margin-bottom:24px;animation:.3s ease-out slideUp}.practice-actions{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;display:grid}.practice-card{width:100%;color:inherit;background:linear-gradient(135deg, color-mix(in srgb, var(--success) 12%, var(--bg-card)), var(--bg-card));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius-xl);cursor:pointer;text-align:left;transition:var(--transition);align-items:center;gap:14px;padding:18px 20px;display:flex;position:relative;overflow:hidden}.practice-card:before{content:"";background:radial-gradient(circle at 80% 50%, color-mix(in srgb, var(--success) 8%, transparent), transparent);pointer-events:none;position:absolute;inset:0}.practice-card:active{transform:scale(.98)}.practice-card:hover{border-color:var(--success)}.practice-card:disabled{cursor:not-allowed;opacity:.52}.bot-card{background:linear-gradient(135deg, color-mix(in srgb, #4f8cff 13%, var(--bg-card)), var(--bg-card));border-color:color-mix(in srgb, #4f8cff 34%, var(--border))}.bot-card:hover{border-color:#4f8cff}.bot-card .practice-icon,.bot-card .practice-badge{color:#8db7ff;background:#4f8cff2e}.practice-icon{background:color-mix(in srgb, var(--success) 20%, transparent);width:48px;height:48px;color:var(--success);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.practice-info{flex-direction:column;flex:1;gap:2px;display:flex}.practice-label{color:var(--text);font-size:1rem;font-weight:800}.practice-desc{color:var(--text-muted);font-size:.78rem}.practice-badge{background:color-mix(in srgb, var(--success) 20%, transparent);color:var(--success);text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:4px 10px;font-size:.65rem;font-weight:700}.quick-section{margin-bottom:24px;animation:.3s ease-out slideUp}.token-purchase-row{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) minmax(140px,.55fr);align-items:center;gap:12px;min-height:72px;padding:12px;display:grid}.token-balance-summary{min-width:0;color:var(--accent);align-items:center;gap:11px;display:flex}.token-balance-summary div{flex-direction:column;gap:2px;min-width:0;display:flex}.token-balance-summary span{color:var(--text-muted);font-size:.72rem;font-weight:700}.token-balance-summary strong{color:var(--text);overflow-wrap:anywhere;font-size:.9rem}.token-purchase-row .action-btn{min-height:44px}@media (width<=430px){.balance-label{display:none}.token-purchase-row{grid-template-columns:1fr}}.game-section{margin-bottom:28px}.game-cards{flex-direction:column;gap:10px;display:flex}.game-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);text-align:left;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex;position:relative;overflow:hidden}.game-card:before{content:"";background:var(--game-color);opacity:0;width:3px;transition:var(--transition);border-radius:0 3px 3px 0;position:absolute;top:0;bottom:0;left:0}.game-card.active{border-color:var(--game-color);background:color-mix(in srgb, var(--game-color) 8%, var(--bg-card))}.game-card.active:before{opacity:1}.game-card.locked{opacity:.5;cursor:not-allowed}.player-count-section{margin:-12px 0 24px;animation:.3s ease-out slideUp}.player-count-control{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.player-count-btn{border:1px solid var(--border);border-radius:var(--radius);min-height:42px;color:var(--text-secondary);background:var(--bg-card);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;gap:6px;font-weight:800;display:flex}.player-count-btn.active{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 55%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg-card))}.player-count-btn:disabled{opacity:.42;cursor:not-allowed}.game-card-icon{background:var(--bg-surface);width:40px;height:40px;color:var(--game-color);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.game-card-info{flex-direction:column;flex:1;gap:2px;display:flex}.game-card-name{color:var(--text);font-size:.9rem;font-weight:700}.game-card-desc{color:var(--text-muted);font-size:.75rem}.soon-badge{background:var(--bg-surface);color:var(--text-muted);border-radius:6px;padding:3px 8px;font-size:.65rem;font-weight:600}.active-indicator{background:var(--game-color);width:6px;height:6px;box-shadow:0 0 8px var(--game-color);border-radius:50%;position:absolute;top:8px;right:8px}.tiers-section{margin-bottom:28px}.tiers-list{flex-direction:column;gap:10px;display:flex}.tier-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.tier-card:active{transform:scale(.98)}.tier-left{align-items:center;gap:12px;display:flex}.tier-badge{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tier-info{flex-direction:column;gap:2px;display:flex}.tier-label{color:var(--text);font-size:.9rem;font-weight:700}.tier-amount{color:var(--text-muted);font-size:.75rem}.tier-actions{align-items:center;gap:6px;display:flex}.btn-join{background:var(--primary);color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:8px;margin-bottom:0;padding:8px 18px;font-size:.8rem;font-weight:700}.btn-join:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-challenge{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;transition:var(--transition);border-radius:8px;margin-bottom:0;padding:8px 10px}.btn-challenge:hover{background:var(--bg-elevated);color:var(--text)}.challenges-section{margin-bottom:24px;animation:.3s ease-out slideUp}.challenge-card{background:color-mix(in srgb, var(--accent) 8%, var(--bg-card));border:1px solid color-mix(in srgb, var(--accent) 20%, var(--border));border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.challenge-info{align-items:center;gap:10px;display:flex}.challenge-icon{color:var(--accent);flex-shrink:0}.challenge-text{color:var(--text);font-size:.85rem;font-weight:600}.challenge-actions{gap:8px;display:flex}.btn-accept{background:color-mix(in srgb, var(--success) 20%, transparent);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 40%, transparent);cursor:pointer;transition:var(--transition);border-radius:8px;padding:6px 10px}.btn-accept:hover{background:var(--success);color:#fff}.btn-decline{background:color-mix(in srgb, var(--danger) 20%, transparent);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);cursor:pointer;transition:var(--transition);border-radius:8px;padding:6px 10px}.btn-decline:hover{background:var(--danger);color:#fff}.online-indicator{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;margin-bottom:20px;font-size:.8rem;display:flex}.online-dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 8px var(--success);border-radius:50%;animation:2s infinite pulse}.matchmaking-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;width:100%;max-width:300px;box-shadow:var(--shadow-lg);flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.matchmaking-modal .spinner{color:var(--primary-light)}.matchmaking-modal h2{margin:0;font-size:1.2rem}.match-pulse{border:2px solid var(--primary-light);border-radius:50%;width:60px;height:60px;margin:8px 0;animation:1.5s infinite pulse;position:relative}.match-pulse:after{content:"";background:var(--primary-light);opacity:.2;border-radius:50%;position:absolute;inset:8px}.stake-display{color:var(--text-muted);font-size:.85rem}.cancel-search{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;transition:var(--transition);border-radius:10px;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:10px 20px;font-size:.85rem;font-weight:600;display:flex}.cancel-search:hover{background:var(--bg-elevated)}.challenge-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:340px;box-shadow:var(--shadow-lg);padding:24px}.challenge-panel-header{margin-bottom:16px}.challenge-panel-header h3{margin:0 0 4px;font-size:1.1rem}.challenge-panel-header p{color:var(--text-muted);font-size:.8rem}.online-list{flex-direction:column;gap:8px;max-height:260px;margin-bottom:16px;display:flex;overflow-y:auto}.online-row{background:var(--bg-surface);border-radius:var(--radius);align-items:center;gap:10px;padding:10px 12px;display:flex}.online-avatar{background:var(--bg-elevated);width:34px;height:34px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.online-name{flex:1;font-size:.85rem;font-weight:600}.btn-send-challenge{background:var(--primary);color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-size:.75rem;font-weight:600;display:flex}.btn-send-challenge:hover{background:var(--primary-dark)}.no-players-msg{color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:24px;font-size:.85rem;display:flex}.btn-cancel-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-secondary);cursor:pointer;transition:var(--transition);padding:10px;font-weight:600}.btn-cancel-modal:hover{background:var(--bg-elevated)}.onboarding-overlay{z-index:3000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c;justify-content:center;align-items:center;padding:24px;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;width:100%;max-width:340px;box-shadow:var(--shadow-lg);padding:40px 28px 28px}.onboard-step{flex-direction:column;align-items:center;gap:12px;animation:.3s ease-out fadeIn;display:flex}.onboard-icon{background:color-mix(in srgb, var(--primary) 15%, var(--bg-surface));width:80px;height:80px;color:var(--primary-light);border-radius:24px;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.onboarding-card h2{margin:0;font-size:1.3rem;font-weight:800}.onboarding-card p{color:var(--text-muted);max-width:280px;margin:0;font-size:.9rem;line-height:1.5}.onboard-dots{gap:6px;margin:8px 0;display:flex}.onboard-dots .dot{background:var(--bg-surface);width:8px;height:8px;transition:var(--transition);border-radius:50%}.onboard-dots .dot.active{background:var(--primary);border-radius:4px;width:24px}.onboard-btn{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;width:100%;transition:var(--transition);border:none;margin-top:4px;padding:14px;font-size:1rem;font-weight:700}.onboard-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #d32f2f4d}.onboard-skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:8px;font-size:.82rem}.onboard-skip:hover{color:var(--text-secondary)}.history-page{animation:.3s ease-out fadeIn}.page-head{margin-bottom:24px}.page-head h1{margin:0;font-size:1.4rem;font-weight:800}.page-head p{color:var(--text-muted);margin-top:2px;font-size:.85rem}.history-list{flex-direction:column;gap:10px;display:flex}.history-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);align-items:center;gap:14px;padding:14px 16px;display:flex}.tx-icon{background:var(--bg-surface);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tx-info{flex:1}.tx-type{text-transform:capitalize;font-size:.85rem;font-weight:700;display:block}.tx-date{color:var(--text-muted);font-size:.7rem}.tx-desc{color:var(--text-muted);margin:4px 0 0;font-size:.75rem;line-height:1.3}.tx-amount{white-space:nowrap;font-size:.95rem;font-weight:800}.tx-amount.positive{color:var(--success)}.tx-amount.negative{color:var(--text-secondary)}.icon-acq{color:var(--success)}.icon-red{color:var(--warning)}.icon-stake{color:var(--text-muted)}.icon-win{color:var(--primary-light)}.loading-state,.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}.empty-state p{margin-top:4px}.profile-page{animation:.3s ease-out fadeIn}.profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);align-items:center;gap:16px;margin-bottom:28px;padding:24px;display:flex}.profile-avatar{background:var(--bg-surface);width:60px;height:60px;color:var(--text-muted);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-main h2{margin:0;font-size:1.1rem}.profile-main p{color:var(--text-muted);margin-top:2px;font-size:.8rem}.profile-section{margin-bottom:28px}.profile-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;padding-left:4px;font-size:.75rem}.info-list,.action-list{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.info-item,.action-item{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}.info-item:last-child,.action-item:last-child{border-bottom:none}.info-text{flex:1}.info-text label{color:var(--text-muted);margin-bottom:2px;font-size:.7rem;display:block}.info-text span{font-size:.85rem;font-weight:600}.username-form{flex:1;min-width:0}.username-form>label{color:var(--text-muted);margin-bottom:5px;font-size:.7rem;display:block}.username-controls{align-items:center;gap:7px;display:flex}.username-controls input{min-width:0;height:38px;color:var(--text);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);font:inherit;flex:1;padding:0 10px;font-size:.9rem;font-weight:600}.username-controls input:focus{border-color:var(--primary);outline:2px solid #d32f2f47}.profile-icon-btn{width:36px;height:36px;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex:0 0 36px;justify-content:center;align-items:center;display:inline-flex}.profile-icon-btn:hover{color:var(--text);border-color:var(--text-muted)}.profile-icon-btn.confirm{color:var(--success)}.profile-icon-btn:disabled{opacity:.55;cursor:not-allowed}.username-error{color:var(--danger);margin-top:5px;font-size:.72rem;display:block}.verified-badge{color:var(--success)}.action-item{cursor:pointer;transition:var(--transition);justify-content:space-between}.action-item:hover{background:var(--bg-surface)}.logout-btn-full{width:100%;color:var(--danger);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);background:#f443361a;border:1px solid #f4433633;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:14px;font-weight:700;display:flex}.logout-btn-full:hover{background:var(--danger);color:#fff}.profile-footer{text-align:center;color:var(--text-muted);margin-top:40px;font-size:.75rem}.profile-footer p{margin:4px 0}.tournaments-page{animation:.3s ease-out fadeIn}.tourney-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.tourney-header h1{margin:0;font-size:1.4rem;font-weight:800}.tourney-header p{color:var(--text-muted);margin-top:2px;font-size:.85rem}.btn-create{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;align-items:center;gap:6px;padding:10px 18px;font-size:.85rem;font-weight:700;display:flex}.btn-create:hover{transform:translateY(-2px);box-shadow:0 4px 16px #d32f2f4d}.create-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-lg);overflow:hidden}.create-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px;display:flex}.create-panel-header h2{margin:0;font-size:1.1rem}.btn-close{background:var(--bg-surface);color:var(--text-muted);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.create-panel-body{flex-direction:column;gap:12px;padding:20px;display:flex}.create-panel-body label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.create-panel-body input,.create-panel-body select{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);transition:var(--transition);outline:none;padding:12px;font-size:.95rem}.create-panel-body input:focus,.create-panel-body select:focus{border-color:var(--primary)}.create-panel-footer{border-top:1px solid var(--border);gap:10px;padding:16px 20px;display:flex}.btn-cancel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;flex:1;padding:12px;font-weight:600}.btn-confirm{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;flex:1;padding:12px;font-weight:700}.btn-confirm:hover{background:var(--primary-dark)}.tourney-list{flex-direction:column;gap:10px;display:flex}.tourney-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--transition);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.tourney-card:active{transform:scale(.98)}.tourney-card-body{align-items:center;gap:12px;display:flex}.tourney-icon{background:color-mix(in srgb, var(--accent) 15%, var(--bg-surface));width:40px;height:40px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tourney-info h3{margin:0 0 4px;font-size:.9rem;font-weight:700}.tourney-meta{color:var(--text-muted);gap:12px;font-size:.75rem;display:flex}.tourney-meta span{align-items:center;gap:4px;display:flex}.btn-enter{background:color-mix(in srgb, var(--primary) 15%, transparent);color:var(--primary-light);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);cursor:pointer;transition:var(--transition);border-radius:8px;padding:8px 16px;font-size:.8rem;font-weight:700}.btn-enter:hover{background:var(--primary);color:#fff}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state p{margin:12px 0 4px;font-weight:600}.empty-state span{font-size:.85rem}.game-board{color:#f9faf8;isolation:isolate;background:linear-gradient(115deg,#ffffff09 0 1px,#0000 1px 8px) 0 0/34px 34px,linear-gradient(25deg,#00000014 0 1px,#0000 1px 9px) 0 0/31px 31px,radial-gradient(at 50% 44%,#459e5bb8 0%,#19633ce6 42%,#082a1e 100%) 0 0/100% 100%,#0a2e23 0 0/100% 100%;grid-template-rows:auto auto 1fr auto;min-height:100dvh;display:grid;position:relative;overflow:hidden}.game-board:before{content:"";pointer-events:none;z-index:-1;border:10px solid #4c2a17bd;border-radius:32px;position:absolute;inset:12px;box-shadow:inset 0 0 0 2px #f3cd7d33,inset 0 0 90px #00000061,0 18px 46px #0000003d}.game-board:after{content:"";pointer-events:none;z-index:-1;background:radial-gradient(at 50% 45%,#0000 0 42%,#0000002e 83%),linear-gradient(90deg,#ffffff06,#0000 20% 80%,#ffffff05);border-radius:22px;position:absolute;inset:28px;box-shadow:inset 0 0 70px #0000002e}.game-board.pressure:after{box-shadow:inset 0 0 80px #781c1540,inset 0 0 70px #0000002e}.game-board.your-move .player-zone{filter:drop-shadow(0 -10px 28px #f5c84b14)}.game-loading-screen{background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/26px 26px,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/26px 26px,radial-gradient(#237544 0%,#0d3b2d 100%) 0 0/100% 100%;justify-content:center;align-items:center;min-height:100dvh;display:flex}.game-loading-content{color:#ffffffbd;flex-direction:column;align-items:center;gap:14px;font-size:.9rem;font-weight:700;display:flex}.game-loading-content .spinner{color:#f5c84b}.card-shuffle{aspect-ratio:5/7;background:linear-gradient(135deg,#ffffff29,#0000 32%),linear-gradient(135deg,#8e1720,#d93730);border:2px solid #ffffff61;border-radius:8px;width:52px;animation:.8s infinite shuffle;box-shadow:0 18px 40px #00000059}@keyframes shuffle{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-10px)rotate(-5deg)}75%{transform:translate(10px)rotate(5deg)}}.game-header{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04140fc2;border-bottom:1px solid #ffffff17;grid-template-columns:44px minmax(0,1fr) minmax(120px,auto);align-items:center;gap:12px;padding:12px 18px;display:grid}.game-back{aspect-ratio:1;color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;justify-content:center;align-items:center;width:40px;transition:transform .18s,background .18s;display:flex}.game-back:hover,.game-back:focus-visible{background:#ffffff24;outline:none;transform:translateY(-1px)}.game-title-area{align-items:center;gap:10px;min-width:0;font-weight:900;display:flex}.game-title-mark{aspect-ratio:1;color:#1a1403;background:#f5c84b;border-radius:50%;justify-content:center;align-items:center;width:34px;display:flex;box-shadow:0 0 26px #f5c84b47}.game-title-area span,.game-title-area small{display:block}.game-title-area small{color:#ffffff80;margin-top:1px;font-size:.68rem;font-weight:700}.connection-pill{color:#ffffffc7;white-space:nowrap;text-overflow:ellipsis;background:#ffffff12;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:0;max-width:260px;padding:8px 11px;font-size:.74rem;font-weight:800;display:inline-flex;overflow:hidden}.game-header-actions{justify-self:end;align-items:center;gap:8px;min-width:0;display:inline-flex}.sound-toggle{aspect-ratio:1;color:#ffffffd1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;transition:transform .18s,background .18s,color .18s;display:inline-flex}.sound-toggle:hover,.sound-toggle:focus-visible{color:#fff;background:#ffffff24;outline:none;transform:translateY(-1px)}.connection-pill.error{color:#ffe6e3;background:#b5261f47;border-color:#ff615773}.opponent-zone{z-index:2;grid-template-columns:minmax(0,min(560px,100%));justify-content:center;gap:10px;padding:14px 18px 0;display:grid}.opponent-zone.multi{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));width:min(900px,100%);margin:0 auto}.opponent-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#ffffff13,#0000 38%),#061a14ad;border:1px solid #ffffff1c;border-radius:16px;grid-template-columns:minmax(130px,1fr) auto auto;align-items:center;gap:14px;width:min(560px,100%);min-height:76px;padding:10px 14px;transition:transform .22s,border-color .22s,background .22s,box-shadow .22s;display:grid;transform:translateY(0);box-shadow:0 16px 34px #00000038,inset 0 1px #ffffff0d}.opponent-panel.danger{border-color:#ffc34d80;box-shadow:0 0 0 1px #ffc34d1f,0 16px 34px #0000003d}.opponent-panel.current{background:#092c1fad;border-color:#4ade8085;transform:translateY(3px);box-shadow:0 18px 40px #00000047,0 0 0 1px #4ade8024}.opponent-panel.current .status-dot{animation:.9s ease-in-out infinite statusBeat}.opponent-panel.drew-card{background:linear-gradient(135deg,#f5c84b29,#0000 42%),#08251bbd;border-color:#f5c84b9e;animation:.95s opponentPickedCard;box-shadow:0 18px 40px #00000047,0 0 0 1px #f5c84b2e,0 0 24px #f5c84b24}.opponent-panel.drew-card .mini-card-back:last-child{animation:.95s pickedCardLift}.opponent-panel.bot .opponent-avatar{background:linear-gradient(145deg,#ffffff1f,#0000 32%),linear-gradient(145deg,#6a3cc5,#27469d)}.player-identity{align-items:center;gap:10px;min-width:0;display:flex}.opponent-avatar{aspect-ratio:1;color:#fff8dc;background:linear-gradient(145deg,#3444a2,#1f2c78);border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff29,0 8px 18px #00000038}.avatar-badge{color:#1a1403;background:#f5c84b;border:2px solid #09241beb;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:18px;font-size:.58rem;font-weight:950;display:inline-flex;position:absolute;top:-5px;right:-5px}.status-dot{aspect-ratio:1;background:#4ade80;border:2px solid #0f3327;border-radius:50%;width:10px;position:absolute;bottom:2px;right:0}.player-label{color:#ffffff85;text-transform:uppercase;font-size:.68rem;font-weight:800;display:block}.player-identity strong{margin-top:2px;font-size:.94rem;display:block}.opponent-cards{justify-content:center;min-width:112px;display:flex}.mini-card-back{aspect-ratio:5/7;background:linear-gradient(135deg,#ffffff24,#0000 32%),radial-gradient(circle,#ffffff21 0 8%,#0000 9%),repeating-linear-gradient(45deg,#ffffff14 0 4px,#0000 4px 8px),linear-gradient(135deg,#861b24,#d43630);border:1px solid #ffffff57;border-radius:5px;width:32px;position:relative;overflow:hidden;transform:rotate(-2deg);box-shadow:2px 4px 9px #00000057,inset 0 0 0 2px #ffffff0d}.mini-card-back:after{content:"P";color:#ffffff3d;justify-content:center;align-items:center;font-size:.76rem;font-weight:900;display:flex;position:absolute;inset:0}.opponent-pressure{color:#ffffffb8;text-transform:uppercase;justify-self:end;font-size:.72rem;font-weight:900}.thinking-label{align-items:center;gap:6px;display:inline-flex}.picked-label{color:#f5c84b}.thinking-dots{align-items:center;gap:3px;display:inline-flex}.thinking-dots i{aspect-ratio:1;background:currentColor;border-radius:50%;width:4px;animation:1s ease-in-out infinite thinkingDot;display:block}.thinking-dots i:nth-child(2){animation-delay:.14s}.thinking-dots i:nth-child(3){animation-delay:.28s}.opponent-panel.danger .opponent-pressure{color:#f5c84b}.play-area{z-index:1;grid-template-rows:auto auto auto 1fr;place-items:center;gap:14px;min-height:0;padding:18px 18px 12px;display:grid}.table-stats{justify-content:center;align-items:center;gap:8px;display:flex}.table-stat{color:#fffc;background:linear-gradient(#ffffff14,#0000),#04140f99;border:1px solid #ffffff17;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:64px;padding:8px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.rules-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:min(760px,100%);display:flex}.table-clarity{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:min(780px,100%);display:grid}.table-clarity div{background:linear-gradient(#ffffff14,#0000),#04140fad;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:42px;padding:8px 10px;display:flex;box-shadow:inset 0 1px #ffffff0d}.table-clarity div>span{color:#ffffff7a;text-transform:uppercase;font-size:.62rem;font-weight:900}.table-clarity strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 10px #00000073;align-items:center;min-width:0;font-size:.86rem;font-weight:950;display:flex;overflow:hidden}.card-label,.requirement-label,.cut-card-list{min-width:0;color:inherit;align-items:center;gap:5px;line-height:1;display:inline-flex}.requirement-label{white-space:nowrap}.requirement-label span,.card-label span{text-overflow:ellipsis;min-width:0;overflow:hidden}.card-label.compact{gap:3px}.cut-card-list{gap:6px}.suit-svg{vertical-align:-.14em;filter:drop-shadow(0 1px #ffffff38);flex:none;display:inline-block}.rule-alert{color:#fffc;white-space:nowrap;background:linear-gradient(#ffffff12,#0000),#04140f9e;border:1px solid #ffffff1a;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:7px 10px;font-size:.72rem;font-weight:900;display:inline-flex}.rule-alert.danger{color:#fff3cf;background:#a82d2575;border-color:#ff775b6b}.rule-alert.cut-alert{color:#dcffe8;background:linear-gradient(#ffffff1f,#0000),#0d5c32b3;border-color:#4ade806b;box-shadow:0 0 22px #4ade801f}.cut-dot{aspect-ratio:1;color:#052215;background:#4ade80;border-radius:50%;justify-content:center;align-items:center;width:22px;font-size:.76rem;font-weight:950;display:inline-flex}.requested-suit{aspect-ratio:1;background:#fffaf0;border-radius:50%;justify-content:center;align-items:center;width:22px;font-size:1rem;display:inline-flex}.requested-suit.red{color:#d4282e}.requested-suit.black{color:#1f2933}.turn-panel{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:12px;width:min(460px,100%);display:grid}.turn-indicator{border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 14px;font-size:.8rem;font-weight:900;transition:background .2s,color .2s,border .2s;display:inline-flex}.turn-indicator.your-turn{color:#1a1403;background:#f5c84b;border:1px solid #ffffff2e}.game-board.your-move .turn-indicator.your-turn{animation:1.6s ease-in-out infinite turnGlow}.turn-indicator.waiting{color:#ffffff9e;background:#ffffff14;border:1px solid #ffffff1a}.turn-pulse{aspect-ratio:1;opacity:.72;background:currentColor;border-radius:50%;width:8px}.turn-pulse.active{opacity:1;animation:1.2s infinite pulse;box-shadow:0 0 14px #ffffff73}.pass-turn-btn{color:#052215;cursor:pointer;background:#4ade80;border:1px solid #ffffff2e;border-radius:999px;min-height:36px;padding:8px 16px;font-size:.78rem;font-weight:950;box-shadow:0 10px 20px #00000038}.pass-turn-btn:hover,.pass-turn-btn:focus-visible{filter:brightness(1.05);outline:none}.table-center{perspective:1100px;transform-style:preserve-3d;border-radius:999px;grid-template-columns:repeat(3,minmax(88px,116px));justify-content:center;align-items:center;gap:clamp(14px,5vw,42px);padding:18px clamp(10px,3vw,24px);display:grid;position:relative}.table-center:before{content:"";border-radius:inherit;filter:blur(4px);z-index:-1;background:radial-gradient(#0003,#0000 68%);position:absolute;inset:7px 0}.table-center.under-pressure:before{background:radial-gradient(#95291f57,#0000 70%);animation:1.2s ease-in-out infinite tablePressure}.card-slot{min-width:0;color:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:9px;display:flex}button.card-slot{cursor:pointer}button.card-slot:disabled{cursor:default}.draw-card,.play-card{aspect-ratio:5/7;border-radius:11px;width:clamp(86px,18vw,116px);overflow:hidden;box-shadow:0 20px 32px #00000061,0 3px #00000038}.draw-card{transform-style:preserve-3d;background:linear-gradient(135deg,#ffffff29,#0000 34%),radial-gradient(circle,#ffffff24 0 7%,#0000 8%),repeating-linear-gradient(45deg,#ffffff14 0 5px,#0000 5px 10px),linear-gradient(135deg,#8e1720,#d93730);border:2px solid #ffffff57;justify-content:center;align-items:center;transition:transform .18s,box-shadow .18s,filter .18s;display:flex;position:relative;overflow:visible;transform:translateZ(8px)}.deck-edge{z-index:-1;background:#78161cb8;border:1px solid #ffffff29;border-radius:11px;position:absolute;inset:4px -4px -4px 4px;transform:translateZ(-5px)}.deck-edge.edge-two{opacity:.7;inset:8px -8px -8px 8px;transform:translateZ(-10px)}.draw-card:before,.draw-card:after{content:"";border:1px solid #ffffff3b;border-radius:9px;position:absolute;inset:5px}.draw-card:after{opacity:.75;border-style:dashed;inset:12px}.draw-card.drawable{box-shadow:0 22px 38px #00000070,0 0 0 2px #f5c84b3d,0 0 26px #f5c84b1f}.draw-card.drawable:hover{transform:translateY(-8px)translateZ(18px)rotateX(4deg)rotateY(-3deg)}.draw-card.drawing{filter:brightness(1.2);animation:.7s infinite alternate drawPulse}@keyframes drawPulse{0%{transform:translateY(0)}to{transform:translateY(-7px)}}.draw-pattern{z-index:1;color:#ffffff3d;font-size:2.2rem;font-weight:900}.draw-pattern:after{content:"P"}.play-card{position:relative;transform:none}.discard-slot{min-width:clamp(98px,19vw,126px)}.discard-stack{aspect-ratio:5/7;width:clamp(92px,19vw,122px);transform-style:preserve-3d;place-items:center;display:grid;position:relative}.discard-stack .play-card{width:clamp(86px,18vw,116px);transform:translate(var(--discard-x,0), var(--discard-y,0));z-index:var(--discard-z,1);position:absolute}.discard-shadow-card{opacity:.42;filter:saturate(.7)brightness(.72);box-shadow:0 12px 20px #0000003d,0 2px #00000029}.discard-shadow-card .card-face{transform:none}.discard-top-card{z-index:30;transform:translate(2px,-3px)translateZ(24px)scale(1.045);box-shadow:0 24px 38px #0000006b,0 0 0 3px #f5c84bd1,0 0 24px #f5c84b3d}.cut-target-slot{min-width:clamp(98px,19vw,126px)}.cut-target-frame{aspect-ratio:5/7;perspective:800px;width:clamp(92px,19vw,122px);transform-style:preserve-3d;background:#f5c84b14;border:2px dashed #f5c84bb3;border-radius:13px;padding:5px;position:relative;box-shadow:inset 0 0 22px #f5c84b14,0 12px 24px #0000002e}.cut-target-cards{width:100%;height:100%;position:relative}.cut-target-card{aspect-ratio:5/7;border-radius:9px;position:absolute;top:0;overflow:hidden;transform:translateZ(8px);box-shadow:0 9px 17px #00000047}.cut-target-cards.count-2 .cut-target-card{top:5%}.cut-target-cards.count-4 .cut-target-card{top:13%}.cut-target-label{color:#f5d66e;align-items:center;gap:5px;display:inline-flex}.play-card.live-card{animation:.34s cubic-bezier(.17,.84,.44,1) cardLands}.play-card:before{content:"";border-radius:inherit;pointer-events:none;z-index:1;position:absolute;inset:2px;box-shadow:inset 0 0 0 1px #ffffff2e}.play-card .card-face{transform:none}.table-rules{flex-direction:column;align-items:center;gap:8px;display:flex}.rule-chip{aspect-ratio:1;color:#1a1403;background:#f5c84b;border-radius:50%;justify-content:center;align-items:center;width:40px;font-weight:900;display:flex;box-shadow:0 10px 24px #0000002e}.rule-chip.suit{background:#fffaf0;font-size:1.3rem}.rule-chip.suit.red{color:#d4282e}.rule-chip.suit.black{color:#1f2933}.slot-label{color:#ffffff9e;text-transform:uppercase;min-height:16px;font-size:.72rem;font-weight:900}.empty-slot{color:#ffffff61;background:#ffffff0a;border:2px dashed #ffffff2e;border-radius:12px;justify-content:center;align-items:center;width:100%;height:100%;font-size:.78rem;font-weight:900;display:flex}.card-face{border-radius:inherit;width:100%;height:100%;transform-style:preserve-3d;background:linear-gradient(110deg,#ffffffc2,#0000 22% 78%,#00000009) 0 0/100% 100%,radial-gradient(circle,#00000009 0 8%,#0000 9%) 0 0/100% 100%,linear-gradient(90deg,#0f172a06 1px,#0000 1px) 0 0/8px 8px,#fffaf0 0 0/100% 100%;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:inset 0 0 0 1px #0f172a1f,inset 0 -8px 18px #0f172a0a}.card-face:after{content:"";background:radial-gradient(circle at var(--card-shine-x,50%) var(--card-shine-y,35%), #ffffffb8, #ffffff1f 24%, transparent 48%);opacity:var(--card-shine-opacity,0);z-index:5;pointer-events:none;border:1px solid #0f172a14;border-radius:7px;transition:opacity .16s;position:absolute;inset:8px}.card-face.red{color:#d4282e}.card-face.black{color:#1f2933}.card-face.joker{background:linear-gradient(145deg,#ffffffd1,#0000 26% 76%,#00000014),radial-gradient(circle at 50% 42%,#f5c84b40,#0000 42%),repeating-linear-gradient(-35deg,#0f172a0a 0 3px,#0000 3px 9px),#fffaf0;overflow:hidden}.card-face.joker:before{content:"";aspect-ratio:1;background:#f5c84b1a;border:1px solid #b8860b2e;border-radius:50%;width:76%;position:absolute;box-shadow:0 0 0 7px #f5c84b0a}.joker-artwork{z-index:3;filter:drop-shadow(0 4px 3px #0f172a33);width:82%;height:88%;position:relative;overflow:visible;transform:translateZ(18px)}.joker-artwork.red{color:#d4282e}.joker-artwork.black{color:#1f2933}.joker-rays{fill:#d9a719;opacity:.14}.joker-cap-shadow,.joker-hair{fill:#17202a}.joker-cap-left,.joker-coat{fill:currentColor;stroke:#111827;stroke-width:1.5px}.joker-cap-right,.joker-coat-panel{fill:#efbd34;stroke:#9a7110;stroke-width:1.3px}.joker-cap-center{fill:#fff7df;stroke:currentColor;stroke-width:1.4px}.joker-bell,.joker-button{fill:#f4c542;stroke:#8a6410;stroke-width:1.4px}.joker-face{fill:#ffe8c8;stroke:#563d2d;stroke-width:1.5px}.joker-mask{fill:currentColor;fill-opacity:.16;stroke:currentColor;stroke-width:1.3px}.joker-eye{fill:#111827}.joker-nose,.joker-staff{fill:none;stroke:#563d2d;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.joker-smile{fill:#fffaf0;stroke:#9f2430;stroke-width:1.5px;stroke-linejoin:round}.joker-collar-back,.joker-lapel{fill:#fff7df;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round}.joker-staff-head{fill:currentColor;stroke:#111827;stroke-width:1.4px}.card-face.mini .joker-artwork{width:90%;height:92%}.joker-label{z-index:2;text-align:center;text-transform:uppercase;letter-spacing:0;border-radius:3px;min-width:48px;padding:3px 7px 2px;font-weight:950;line-height:1.05;position:absolute;bottom:15px;left:50%;transform:translate(-50%)translateZ(24px);box-shadow:0 5px 12px #0003}.joker-label span,.joker-label small{display:block}.joker-label span{font-size:.5rem}.joker-label small{margin-top:1px;font-size:.32rem}.card-face.red .joker-label{color:#fffaf0;background:#c7252b}.card-face.black .joker-label{color:#fffaf0;background:#1f2933}.card-face.mini .joker-label{min-width:36px;padding:2px 4px;bottom:9px}.card-face.mini .joker-label span{font-size:.38rem}.card-face.mini .joker-label small{display:none}.card-corner{z-index:4;flex-direction:column;align-items:center;gap:1px;line-height:1;display:flex;position:absolute}.top-left{top:8px;left:8px;transform:translateZ(16px)}.bottom-right{bottom:8px;right:8px;transform:rotate(180deg)translateZ(16px)}.card-rank{font-size:1rem;font-weight:900}.card-suit-icon{justify-content:center;align-items:center;display:inline-flex}.card-center-suit{filter:drop-shadow(0 1px #ffffff80);z-index:3;justify-content:center;align-items:center;display:inline-flex;position:relative;transform:translateZ(20px)}.card-face.mini .card-rank{font-size:.74rem}.card-face.mini .card-suit-icon,.card-face.mini .card-center-suit{line-height:1}.card-face.mini .top-left{top:5px;left:5px}.card-face.mini .bottom-right{bottom:5px;right:5px}.player-zone{z-index:2;padding:0 16px 16px}.hand-header{justify-content:space-between;align-items:center;gap:12px;width:min(900px,100%);margin:0 auto 10px;display:flex}.hand-title,.hand-meta{align-items:center;gap:8px;display:flex}.hand-title{color:#fff;font-size:.9rem;font-weight:900}.hand-meta{color:#ffffffa3;font-size:.78rem;font-weight:800}.hand-meta strong{color:#f5c84b}.matatu-call-btn{color:#1a1403;cursor:pointer;background:#f5c84b;border:0;border-radius:999px;min-height:32px;padding:0 13px;font-size:.72rem;font-weight:950;box-shadow:0 8px 18px #0000003d}.matatu-call-btn:hover,.matatu-call-btn:focus-visible{outline:none;transform:translateY(-1px)}.hand-container{scrollbar-width:none;width:min(960px,100%);margin:0 auto;padding:18px 2px 7px;overflow:auto visible}.hand-container::-webkit-scrollbar{display:none}.hand-scroll{perspective:1200px;min-width:max-content;transform-style:preserve-3d;justify-content:center;align-items:end;gap:clamp(6px,1vw,10px);padding:0 8px;display:flex}.hand-card{--card-tilt-x:0deg;--card-tilt-y:0deg;--card-shine-opacity:0;aspect-ratio:5/7;cursor:default;width:clamp(58px,13.6vw,84px);transform:translateY(0) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y));transform-origin:50% 100%;transform-style:preserve-3d;will-change:transform;background:0 0;border:0;border-radius:10px;flex:none;padding:0;transition:transform .18s,filter .18s,opacity .18s;animation:.38s cubic-bezier(.17,.84,.44,1) backwards cardDealIn;position:relative}.hand-card>.card-face{transform:translateZ(8px);box-shadow:0 14px 20px #0003,inset 0 0 0 1px #0f172a1f,inset 0 -8px 18px #0f172a0a}.hand-card.active-turn{cursor:pointer}.hand-card.blocked{opacity:.64;filter:saturate(.72)brightness(.9)}.hand-card.playable{opacity:1;filter:none;transform:translateY(-7px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y))}.hand-card.playable:before{content:"";background:#f5c84b38;border-radius:14px;position:absolute;inset:-5px;box-shadow:0 0 22px #f5c84b38}.hand-card.cut-ready:before{background:#4ade803d;box-shadow:0 0 26px #4ade8047}.hand-card.playable:hover,.hand-card.playable:focus-visible{transform:translateY(-22px) translateZ(18px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) scale(1.04);z-index:20;outline:none}.hand-card.playable:hover>.card-face,.hand-card.playable:focus-visible>.card-face{box-shadow:0 25px 34px #00000057,inset 0 0 0 1px #0f172a1f,inset 0 -8px 18px #0f172a0a}.hand-card.playing{pointer-events:none;filter:brightness(1.1);opacity:.35;transition:transform .28s,opacity .28s;transform:translateY(-76px)translate(8px)scale(1.04)}.hand-card:disabled{cursor:default}.play-hint{aspect-ratio:1;color:#1a1403;background:#f5c84b;border-radius:50%;justify-content:center;align-items:center;width:24px;animation:1.4s ease-in-out infinite hintFloat;display:flex;position:absolute;top:-7px;right:-5px;box-shadow:0 8px 18px #00000040}.cut-hint{color:#052215;background:linear-gradient(#ffffff47,#0000),#4ade80;border:1px solid #ffffff52;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:70px;min-height:42px;line-height:1;display:inline-flex;position:absolute;bottom:-24px;left:50%;transform:translate(-50%);box-shadow:0 7px 16px #00000047}.card-reason{color:#1a1403;background:#f5c84b;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;min-width:42px;min-height:20px;font-size:.58rem;font-weight:950;line-height:1;display:inline-flex;position:absolute;bottom:-12px;left:50%;transform:translate(-50%);box-shadow:0 6px 14px #0000003d}.cut-hint strong{text-transform:uppercase;font-size:.68rem;font-weight:950}.cut-hint small{font-size:.78rem;font-weight:950}.suit-picker-overlay{z-index:2500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000094;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.suit-picker-card{background:#101d18;border:1px solid #ffffff1f;border-radius:18px;gap:16px;width:min(360px,100%);padding:20px;display:grid;box-shadow:0 22px 70px #0000006b}.suit-picker-card strong,.suit-picker-card span{display:block}.suit-picker-card>div:first-child strong{color:#fff;font-size:1rem}.suit-picker-card>div:first-child span{color:#fff9;margin-top:3px;font-size:.78rem;font-weight:800}.suit-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.suit-choice{cursor:pointer;background:#fffaf0;border:1px solid #ffffff1f;border-radius:14px;min-height:88px;transition:transform .18s,border .18s,box-shadow .18s}.suit-choice:hover,.suit-choice:focus-visible{border-color:#f5c84bb8;outline:none;transform:translateY(-2px);box-shadow:0 12px 26px #00000047}.suit-choice span{font-size:2rem;line-height:1}.suit-choice strong{margin-top:6px;font-size:.78rem}.suit-choice.red{color:#d4282e}.suit-choice.black{color:#1f2933}.suit-cancel{color:#fffc;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;min-height:38px;font-weight:900}.winner-overlay{z-index:3000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d1;justify-content:center;align-items:center;padding:20px;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.winner-card{text-align:center;background:#111827;border:1px solid #ffffff1a;border-radius:20px;width:min(340px,100%);padding:34px 24px 24px;box-shadow:0 24px 80px #0000006b}.winner-card-win{border-color:#f5c84b80}.trophy-icon{color:#f5c84b;margin-bottom:16px;display:inline-flex}.win-text,.lose-text{margin-bottom:8px;font-size:1.9rem}.win-text{color:#f5c84b}.lose-text{color:#ffffffb8}.winner-card p{color:#ffffff9e;margin-bottom:24px;font-size:.88rem}.xp-result{flex-direction:column;gap:5px;margin:4px 0 24px;display:flex}.xp-result strong{color:#f5c84b;font-size:1.05rem}.xp-result span{color:#ffffffa8;font-size:.8rem;font-weight:800}.btn-lobby{color:#fff;cursor:pointer;background:#d43630;border:0;border-radius:12px;width:100%;min-height:44px;font-weight:900;transition:transform .18s,background .18s}.btn-lobby:hover,.btn-lobby:focus-visible{background:#b82325;outline:none;transform:translateY(-1px)}@keyframes cardDealIn{0%{opacity:0;transform:translateY(34px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cardLands{0%{opacity:.45;transform:translateY(-24px)scale(1.06)}72%{opacity:1;transform:translateY(3px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hintFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes thinkingDot{0%,to{opacity:.42;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@keyframes statusBeat{0%,to{transform:scale(1);box-shadow:0 0 #4ade804d}50%{transform:scale(1.18);box-shadow:0 0 0 5px #4ade8000}}@keyframes opponentPickedCard{0%{transform:translateY(0)scale(1)}42%{transform:translateY(-4px)scale(1.018)}to{transform:translateY(0)scale(1)}}@keyframes pickedCardLift{0%{opacity:0;transform:translateY(9px)rotate(5deg)}44%{opacity:1;transform:translateY(-7px)rotate(1deg)}to{opacity:1;transform:translateY(0)rotate(-2deg)}}@keyframes turnGlow{0%,to{box-shadow:0 0 #f5c84b00}50%{box-shadow:0 0 24px #f5c84b38}}@keyframes tablePressure{0%,to{opacity:.82;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}@media (width>=860px){.game-board{grid-template-rows:auto auto 1fr auto}.play-area{padding-top:24px}.player-zone{padding-bottom:24px}}@media (width<=620px){.game-board:before{border-radius:20px;inset:8px}.game-header{grid-template-columns:40px minmax(0,1fr)}.connection-pill{justify-self:stretch;width:100%}.game-header-actions{grid-column:1/-1;justify-self:stretch;width:100%}.opponent-panel{grid-template-columns:1fr auto}.opponent-pressure{grid-column:1/-1;justify-self:center}.turn-panel{grid-template-columns:1fr}.table-clarity{grid-template-columns:repeat(2,minmax(0,1fr))}.table-center{grid-template-columns:repeat(3,minmax(80px,1fr));gap:12px;padding-inline:4px}.rule-chip{width:34px}.hand-header{align-items:flex-start}.hand-meta{flex-direction:column;align-items:flex-end;gap:2px}}@media (prefers-reduced-motion:reduce){.card-shuffle,.turn-pulse.active,.draw-card.drawing,.play-card.live-card,.hand-card,.play-hint,.thinking-dots i,.opponent-panel.current .status-dot,.opponent-panel.drew-card,.opponent-panel.drew-card .mini-card-back:last-child,.game-board.your-move .turn-indicator.your-turn,.table-center.under-pressure:before{animation:none}.hand-card,.hand-card.playable,.hand-card.playable:hover,.hand-card.playable:focus-visible{transition:none;--card-tilt-x:0deg!important;--card-tilt-y:0deg!important;--card-shine-opacity:0!important}}@media (width<=380px){.table-stats{gap:5px}.table-stat{min-width:54px;padding:7px 8px}.draw-card,.play-card{width:78px}.discard-stack,.cut-target-frame{width:82px}.hand-card{width:54px}.table-clarity{gap:6px}.table-clarity div{padding:7px 8px}}.ludo-game{--ludo-red:#ef4444;--ludo-green:#22c55e;--ludo-yellow:#facc15;--ludo-blue:#3b82f6;color:#f8fafc;background:linear-gradient(#ffffff06 1px,#0000 1px) 0 0/28px 28px,linear-gradient(90deg,#ffffff06 1px,#0000 1px) 0 0/28px 28px,radial-gradient(circle at 50% 32%,#31443e,#111b20 74%) 0 0/100% 100%;grid-template-rows:auto 1fr;min-height:100dvh;display:grid}.ludo-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#080d19bd;border-bottom:1px solid #ffffff14;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;padding:14px 18px;display:grid}.ludo-icon-btn{aspect-ratio:1;color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;justify-content:center;align-items:center;width:42px;display:flex}.ludo-title{align-items:center;gap:10px;min-width:0;display:flex}.ludo-title-icon{aspect-ratio:1;color:#111827;background:#facc15;border-radius:12px;justify-content:center;align-items:center;width:36px;display:flex}.ludo-title h1{margin:0;font-size:1.05rem}.ludo-title p{color:#ffffff85;margin:2px 0 0;font-size:.72rem;font-weight:800}.ludo-shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(220px,1fr) minmax(260px,420px);gap:18px;min-height:0;padding:18px;display:grid}.ludo-scorebar{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.ludo-player-pill{color:#ffffffbd;background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:44px;font-size:.8rem;font-weight:900;display:flex;position:relative}.turn-dot{aspect-ratio:1;background:currentColor;border-radius:50%;width:6px;animation:1.2s ease-in-out infinite ludoTurnPulse;box-shadow:0 0 9px}.ludo-player-pill strong{color:#fff}.ludo-player-pill.active{background:color-mix(in srgb, currentColor 18%, #ffffff14);border-color:currentColor}.ludo-player-pill.red{color:var(--ludo-red)}.ludo-player-pill.green{color:var(--ludo-green)}.ludo-player-pill.yellow{color:var(--ludo-yellow)}.ludo-player-pill.blue{color:var(--ludo-blue)}.ludo-board-wrap{perspective:1100px;justify-content:center;align-items:center;min-height:0;display:flex}.ludo-board{aspect-ratio:1;width:min(72vh,100%);max-width:700px;transform-style:preserve-3d;background:linear-gradient(#c0272ddb,#c0272ddb) 0 0/40% 40% no-repeat,linear-gradient(#18914edb,#18914edb) 100% 0/40% 40% no-repeat,linear-gradient(#d6a100e6,#d6a100e6) 100% 100%/40% 40% no-repeat,linear-gradient(#2369c4e0,#2369c4e0) 0 100%/40% 40% no-repeat,#e8e0cf;border:5px solid #f1eadb;border-radius:12px;grid-template-rows:repeat(15,1fr);grid-template-columns:repeat(15,1fr);gap:2px;padding:8px;display:grid;position:relative;transform:rotateX(1.5deg);box-shadow:0 32px 70px #00000061,0 8px #8d8270}.ludo-cell{z-index:1;color:#111827b3;background:#ffffff1a;border-radius:5px;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative}.ludo-cell.track{background:#fffdf7;box-shadow:inset 0 0 0 1px #0f172a14}.ludo-cell.safe{color:#111827;background:#fff1b8;box-shadow:inset 0 0 0 2px #77540a52}.ludo-cell.home-cell{border-radius:50%;box-shadow:inset 0 0 0 2px #ffffffb8,0 3px 6px #0000002e}.ludo-cell.finish-cell{border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff6b,inset 0 -5px 9px #0f172a1f}.ludo-cell.final-dock{z-index:2;border-radius:8px;box-shadow:inset 0 0 0 2px #ffffffb8,0 0 0 2px #0f172a2e,0 4px 9px #0f172a38}.final-dock-spots{opacity:.42;grid-template-columns:repeat(2,1fr);gap:12%;display:grid;position:absolute;inset:13%}.final-dock-spots i{background:#ffffffe6;border-radius:50%;box-shadow:inset 0 1px 2px #0f172a47}.ludo-cell.red{background:color-mix(in srgb, var(--ludo-red) 72%, white)}.ludo-cell.green{background:color-mix(in srgb, var(--ludo-green) 72%, white)}.ludo-cell.yellow{background:color-mix(in srgb, var(--ludo-yellow) 72%, white)}.ludo-cell.blue{background:color-mix(in srgb, var(--ludo-blue) 72%, white)}.ludo-cell.center{z-index:1;box-shadow:none;background:0 0;border-radius:0}.ludo-final-x{z-index:2;pointer-events:none;filter:drop-shadow(0 4px 5px #0f172a3d);border:2px solid #fffc;border-radius:4px;grid-area:7/7/span 3/span 3;position:relative;overflow:hidden}.finish-wedge{color:#ffffffeb;position:absolute;inset:0}.finish-wedge.green{background:var(--ludo-green);clip-path:polygon(0 0,100% 0,50% 50%)}.finish-wedge.yellow{clip-path:polygon(100% 0,100% 100%,50% 50%);background:#d9a900}.finish-wedge.blue{background:var(--ludo-blue);clip-path:polygon(0 100%,100% 100%,50% 50%)}.finish-wedge.red{background:var(--ludo-red);clip-path:polygon(0 0,50% 50%,0 100%)}.finish-wedge svg{stroke-width:3px;filter:drop-shadow(0 1px 1px #0f172a4d);width:22%;height:22%;position:absolute}.finish-wedge.green svg{top:8%;left:39%}.finish-wedge.yellow svg{top:39%;right:8%}.finish-wedge.blue svg{bottom:8%;left:39%}.finish-wedge.red svg{top:39%;left:8%}.ludo-final-x:after{content:"";background:linear-gradient(45deg,#0000 48.8%,#ffffffd1 49% 51%,#0000 51.2%),linear-gradient(-45deg,#0000 48.8%,#ffffffd1 49% 51%,#0000 51.2%);position:absolute;inset:0}.finish-center{z-index:2;aspect-ratio:1;background:#f8fafc;border:2px solid #fff;border-radius:50%;width:13%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 5px #0f172a4d}.ludo-cell.center.final-dock{z-index:3;background:0 0}.ludo-piece{z-index:5;aspect-ratio:1;color:#fff;cursor:default;width:76%;transform:translate(var(--piece-x,0), var(--piece-y,0));border:2px solid #fffc;border-radius:50%;justify-content:center;place-self:center;align-items:center;font-size:clamp(.55rem,1.4vw,.82rem);font-weight:900;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:inset 0 5px 7px #ffffff6b,inset 0 -5px 8px #0003,0 8px 14px #00000057}.ludo-piece.red{background:var(--ludo-red)}.ludo-piece.green{background:var(--ludo-green)}.ludo-piece.yellow{background:#d9a900}.ludo-piece.blue{background:var(--ludo-blue)}.ludo-piece.playable{cursor:pointer;transform:translate(var(--piece-x,0), calc(var(--piece-y,0) - 4px)) translateZ(16px) scale(1.13);box-shadow:0 12px 24px #0000005c,0 0 0 4px #ffffff38}.ludo-piece.playable:hover,.ludo-piece.playable:focus-visible{outline:none;box-shadow:0 16px 28px #0006,0 0 0 4px #fff,0 0 22px}.ludo-piece.moving{animation:.42s cubic-bezier(.2,.8,.3,1) ludoPieceHop}.ludo-piece.finished{z-index:8;border-width:1px;width:42%;font-size:clamp(.42rem,.85vw,.58rem);box-shadow:inset 0 2px 3px #ffffff6b,0 3px 7px #0000005c}.ludo-control-panel{background:#080d19ad;border:1px solid #ffffff1a;border-radius:20px;align-self:center;gap:14px;padding:18px;display:grid;box-shadow:0 22px 60px #00000047}.ludo-control-panel.red{--panel-color:var(--ludo-red)}.ludo-control-panel.green{--panel-color:var(--ludo-green)}.ludo-control-panel.yellow{--panel-color:var(--ludo-yellow)}.ludo-control-panel.blue{--panel-color:var(--ludo-blue)}.ludo-turn-card,.ludo-status-card{background:#ffffff12;border:1px solid #ffffff1a;border-radius:16px;padding:14px}.ludo-turn-label{color:var(--panel-color);text-transform:uppercase;letter-spacing:1px;font-size:.72rem;font-weight:900;display:block}.ludo-turn-card h2{margin:4px 0;font-size:1.8rem}.ludo-turn-card p{color:#ffffff9e;font-size:.86rem}.dice-button{color:#111827;background:var(--panel-color);min-height:116px;box-shadow:0 18px 38px color-mix(in srgb, var(--panel-color) 28%, transparent);cursor:pointer;border:0;border-radius:22px;justify-content:center;align-items:center;gap:18px;transition:transform .18s,filter .18s;display:flex}.dice-button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-2px)}.dice-button:disabled{cursor:default;opacity:.72}.dice-stage{aspect-ratio:1;perspective:520px;flex:none;place-items:center;width:72px;display:grid;position:relative}.dice-cube{--dice-half:32px;z-index:2;width:64px;height:64px;transform-style:preserve-3d;transition:transform .24s cubic-bezier(.2,.8,.3,1);position:relative}.dice-face{backface-visibility:hidden;background:linear-gradient(145deg,#fff,#eee9dc);border:1px solid #0f172a24;border-radius:12px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:5px;padding:10px;display:grid;position:absolute;inset:0;box-shadow:inset -6px -7px 11px #0f172a21,inset 5px 5px 8px #ffffffeb}.dice-face.face-1{transform:translateZ(var(--dice-half))}.dice-face.face-6{transform:rotateY(180deg) translateZ(var(--dice-half))}.dice-face.face-3{transform:rotateY(90deg) translateZ(var(--dice-half))}.dice-face.face-4{transform:rotateY(-90deg) translateZ(var(--dice-half))}.dice-face.face-2{transform:rotateX(90deg) translateZ(var(--dice-half))}.dice-face.face-5{transform:rotateX(-90deg) translateZ(var(--dice-half))}.dice-cube.value-1{transform:rotateX(-9deg)rotateY(10deg)}.dice-cube.value-2{transform:rotateX(-99deg)rotateY(0)}.dice-cube.value-3{transform:rotateX(-8deg)rotateY(-80deg)}.dice-cube.value-4{transform:rotateX(-8deg)rotateY(100deg)}.dice-cube.value-5{transform:rotateX(81deg)rotateY(0)}.dice-cube.value-6{transform:rotateX(8deg)rotateY(190deg)}.dice-cube.rolling{animation:.52s cubic-bezier(.35,.05,.65,.95) ludoDiceRoll3d}.dice-face i{aspect-ratio:1;opacity:0;background:radial-gradient(circle at 38% 35%,#374151,#080b10 70%);border-radius:50%;place-self:center;width:9px;box-shadow:inset 0 1px 2px #ffffff2e,0 1px 1px #ffffff73}.dice-face i.visible{opacity:1}.dice-floor-shadow{z-index:1;filter:blur(5px);background:#0f172a66;border-radius:50%;width:58px;height:13px;transition:transform .2s,opacity .2s;position:absolute;bottom:-9px}.dice-floor-shadow.rolling{animation:.52s ease-in-out ludoDiceShadow}.dice-action{flex-direction:column;align-items:flex-start;min-width:80px;display:flex}.dice-action strong{font-size:1.7rem;line-height:1}.dice-action small{opacity:.7;margin-top:6px;font-size:.68rem;font-weight:800}.ludo-status-card{color:#ffffffb8;align-items:center;gap:8px;font-weight:800;display:flex}.ludo-status-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ludo-winner-overlay{z-index:3000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000c7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ludo-winner-card{text-align:center;color:#fff;background:#111827;border:1px solid #ffffff1f;border-radius:22px;width:min(340px,100%);padding:34px 24px 24px;box-shadow:0 30px 90px #0000006b}.ludo-winner-card svg{color:#facc15}.ludo-winner-card h2{margin:14px 0 6px;font-size:1.8rem}.ludo-winner-card p{color:#ffffffa3;margin-bottom:20px}.ludo-winner-card button{color:#111827;cursor:pointer;background:#facc15;border:0;border-radius:12px;width:100%;min-height:44px;font-weight:900}@keyframes ludoPieceHop{0%{transform:translate(var(--piece-x,0), var(--piece-y,0)) translateZ(0) scale(.92)}50%{transform:translate(var(--piece-x,0), calc(var(--piece-y,0) - 10px)) translateZ(24px) scale(1.16)}to{transform:translate(var(--piece-x,0), var(--piece-y,0)) translateZ(0) scale(1)}}@keyframes ludoDiceRoll3d{0%{transform:translateY(0)rotateX(0)rotateY(0)rotate(0)}28%{transform:translateY(-18px)rotateX(210deg)rotateY(145deg)rotate(38deg)}62%{transform:translateY(-8px)rotateX(445deg)rotateY(365deg)rotate(96deg)}84%{transform:translateY(-3px)rotateX(625deg)rotateY(545deg)rotate(154deg)}to{transform:translateY(0)rotateX(720deg)rotateY(720deg)rotate(180deg)}}@keyframes ludoDiceShadow{0%,to{opacity:.78;transform:scale(1)}35%{opacity:.34;transform:scale(.58)}70%{opacity:.52;transform:scale(.78)}}@keyframes ludoTurnPulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.25)}}@media (width<=860px){.ludo-shell{grid-template-columns:1fr}.ludo-board{width:min(92vw,620px)}}@media (width<=560px){.ludo-shell{gap:12px;padding:12px}.ludo-scorebar{grid-template-columns:repeat(2,minmax(0,1fr))}.ludo-player-pill{min-height:38px;font-size:.74rem}.ludo-board{border-radius:14px;gap:1px;padding:5px}.ludo-cell{border-radius:3px}.ludo-control-panel{border-radius:16px;padding:12px}.dice-button{min-height:86px}.dice-stage{width:58px}.dice-cube{--dice-half:26px;width:52px;height:52px}.dice-face{border-radius:10px;gap:4px;padding:8px}.dice-face i{width:7px}}@media (prefers-reduced-motion:reduce){.turn-dot,.ludo-piece.moving,.dice-cube.rolling,.dice-floor-shadow.rolling{animation:none}}.admin-dashboard{animation:.3s ease-out fadeIn}.admin-dashboard h1{margin:0 0 24px;font-size:1.4rem;font-weight:800}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:28px;display:grid}.stat-card{background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border);align-items:center;gap:16px;padding:20px;display:flex}.stat-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-label{color:var(--text-muted);margin-bottom:4px;font-size:.78rem;display:block}.stat-value{margin:0;font-size:1.25rem;font-weight:800}.dashboard-sections{flex-direction:column;gap:20px;display:flex}.dashboard-table-card{background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border);padding:20px}.card-header{margin-bottom:16px}.card-header h3{margin:0;font-size:1rem;font-weight:700}.admin-table{border-collapse:collapse;width:100%}.admin-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;font-size:.7rem}.admin-table td{border-bottom:1px solid var(--border);padding:12px;font-size:.82rem}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table .mono{color:var(--text-muted);font-family:monospace}.admin-table .positive{color:var(--success);font-weight:700}.admin-table .negative{color:var(--text-muted);font-weight:700}.empty-cell{text-align:center;color:var(--text-muted);padding:32px}.badge{border-radius:6px;padding:4px 8px;font-size:.7rem;font-weight:700}.badge.acquisition{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.badge.redemption{background:color-mix(in srgb, var(--warning) 15%, transparent);color:var(--warning)}.badge.match_stake,.badge.MATCH_STAKE{background:color-mix(in srgb, var(--text-muted) 15%, transparent);color:var(--text-muted)}.badge.match_win,.badge.MATCH_WIN{background:color-mix(in srgb, var(--primary-light) 15%, transparent);color:var(--primary-light)}.loading-state{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.player-layout{background:var(--bg);flex-direction:column;max-width:500px;min-height:100vh;margin:0 auto;display:flex;position:relative}.player-content{padding:16px;flex:1;padding-bottom:90px;animation:.3s ease-out fadeIn}.bottom-nav{background:var(--bg-card);border-top:1px solid var(--border);z-index:1000;max-width:500px;padding:6px 0 env(safe-area-inset-bottom,6px);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);margin:0 auto;position:fixed;bottom:0;left:0;right:0}.nav-inner{justify-content:space-around;align-items:flex-end;display:flex}.nav-item{color:var(--text-muted);cursor:pointer;letter-spacing:.3px;transition:var(--transition);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;margin-bottom:0;padding:6px 12px;font-size:.65rem;font-weight:600;display:flex;position:relative}.nav-item.active{color:var(--primary-light)}.nav-item span{margin-top:2px}.active-dot{background:var(--primary-light);border-radius:50%;width:4px;height:4px;position:absolute;bottom:-2px}.admin-layout{background-color:#f0f2f5;min-height:100vh;display:flex}.admin-sidebar{color:#fff;background-color:#1a1a1a;flex-direction:column;flex-shrink:0;width:260px;display:flex}.sidebar-header{border-bottom:1px solid #333;padding:30px 24px}.sidebar-header h2{color:#d32f2f;margin:0;font-size:1.4rem}.sidebar-header p{opacity:.6;margin:4px 0 0;font-size:.8rem}.sidebar-nav{flex:1;padding:24px 12px}.nav-item{color:#ccc;border-radius:8px;align-items:center;gap:12px;margin-bottom:4px;padding:12px 16px;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background-color:#d32f2f}.sidebar-footer{border-top:1px solid #333;padding:24px}.logout-btn{color:#999;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.logout-btn:hover{color:#fff}.admin-main{flex-direction:column;flex:1;display:flex}.admin-topbar{background-color:#fff;justify-content:space-between;align-items:center;height:70px;padding:0 32px;display:flex;box-shadow:0 1px 4px #0000000d}.admin-topbar h1{margin:0;font-size:1.25rem}.admin-content{padding:32px;overflow-y:auto}
