*{margin:0;padding:0}.loading-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:#ffffffd9}.loading-spinner{width:48px;height:48px;border:6px solid #eee;border-top:6px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:18px;color:#333}.login-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw}.login-container .login-iframe-container{position:relative;animation:fadeInScale .4s cubic-bezier(.16,1,.3,1);will-change:transform,opacity;border-radius:16px;overflow:hidden;box-shadow:0 20px 50px #0006;height:480px}@media(max-width:1100px){.login-container .login-iframe-container{width:90vw;height:70vh}}.login-container .login-iframe-container iframe{width:768px;height:480px;border:0;margin:0;padding:0;border-radius:16px;transition:transform .5s ease-in-out,opacity .8s ease-in-out;will-change:transform,opacity;background:transparent}@media(max-width:1100px){.login-container .login-iframe-container iframe{width:100%;height:100%}}.login-container .login-iframe-container .close-button{position:absolute;top:15px;right:15px;width:24px;height:24px;background-color:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.1);border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;font-weight:700;z-index:10;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(max-width:1100px){.login-container .login-iframe-container .close-button{width:36px;height:36px;top:10px;right:10px}}.login-container .login-iframe-container .close-button:hover{background-color:#ff453acc;color:#fff;transform:scale(1.1)}.login-container .login-iframe-container .close-button.hidden{opacity:0;pointer-events:none}.login-container .login-iframe-container .close-button.visible{opacity:1}.login-container .login-iframe-container.fade-out iframe{transform:scale(.95);opacity:0}.login-container .login-iframe-container.fade-out .close-button{opacity:0}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeOutScale{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.fade-out{animation:fadeOutScale .3s ease-in forwards}.login-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;cursor:pointer;z-index:1000}.login-overlay .login-hint{color:#fff;font-size:24px;font-weight:500;text-shadow:0 2px 4px rgba(0,0,0,.3);-webkit-user-select:none;user-select:none;animation:slow-pulse 1.5s ease-in-out infinite}.login-overlay .start-font-container{animation:slow-pulse 1.5s ease-in-out infinite}.login-overlay .start-font-container.fade-up{animation:fadeUp .5s ease-out forwards}.start-font-letter{display:inline-block;animation:startFontLetterFloat 2.4s ease-in-out infinite;will-change:transform}@keyframes slow-pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes fadeUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}@keyframes startFontLetterFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.02)}}.normal-button{background-color:#862a00;color:#fff;font-size:12px;padding:10px 45px;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:Courier New,Courier,monospace;outline:none;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}.normal-button--primary{background-color:#862a00;color:#fff;border:1px solid transparent}.normal-button--secondary{background-color:#666;color:#fff;border:1px solid transparent}.normal-button--outline{background-color:transparent;border-color:#862a00;color:#862a00}.normal-button--small{font-size:10px;padding:6px 20px}.normal-button--medium{font-size:12px;padding:10px 45px}.normal-button--large{font-size:14px;padding:14px 60px}.normal-button--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.normal-button:hover:not(.normal-button--disabled){transform:translateY(-2px);box-shadow:0 4px 12px #862a004d}.normal-button:active:not(.normal-button--disabled){transform:translateY(0);box-shadow:0 2px 6px #862a0033}.normal-button--primary:hover:not(.normal-button--disabled){background-color:#a03500}.normal-button--secondary:hover:not(.normal-button--disabled){background-color:#777}.normal-button--outline:hover:not(.normal-button--disabled){background-color:#862a00;color:#fff}.normal-button:focus{outline:2px solid #862a00;outline-offset:2px}.mac-message .ant-message-notice-content{background:#ffffffbf!important;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #1f268726;border-radius:12px!important;padding:10px 16px!important;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif}.mac-message .ant-message-notice-content .anticon{font-size:18px;margin-right:10px;position:relative;top:1px}.mac-message .ant-message-notice-content .anticon.anticon-success{color:#34c759}.mac-message .ant-message-notice-content .anticon.anticon-error{color:#ff3b30}.mac-message .ant-message-notice-content .anticon.anticon-warning{color:#fc0}.mac-message .ant-message-notice-content .anticon.anticon-info{color:#007aff}:global(.dark) .mac-message .ant-message-notice-content{background:#1e1e1ebf!important;border:1px solid rgba(255,255,255,.1);color:#f5f5f7;box-shadow:0 8px 32px #0000004d}.background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden}.background:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0000004d;z-index:1}.background .background-media{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);object-fit:cover;z-index:0}#root{width:100%;height:100vh;overflow:hidden}.app-container{width:100%;height:100vh;position:relative}*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;background:#000;color:#fff}.login-container,.gamebar-container{width:100vw;height:100vh;position:relative;overflow:hidden}.test-container{width:100vw;height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}@media(max-width:768px){.app-container{font-size:14px}}@media(max-width:480px){.app-container{font-size:12px}}.loading-animation-container{display:inline-flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background:transparent}.loading-char{display:inline-block;animation:bounce 1.5s ease-in-out infinite;transform-origin:center bottom;margin:0 1px}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}60%{transform:translateY(-3px)}}.loading-char:nth-child(1){animation-delay:0s}.loading-char:nth-child(2){animation-delay:.15s}.loading-char:nth-child(3){animation-delay:.3s}.loading-char:nth-child(4){animation-delay:.45s}.loading-char:nth-child(5){animation-delay:.6s}.loading-char:nth-child(6){animation-delay:.75s}.loading-char:nth-child(7){animation-delay:.9s}.loading-char:nth-child(8){animation-delay:1.05s}.loading-char:nth-child(9){animation-delay:1.2s}.loading-char:nth-child(10){animation-delay:1.35s}.loading-animation-container{position:relative}.loading-animation-container:before{content:"";display:inline-block;height:100%;vertical-align:middle}.loading-animation-container.has-background{background-color:#fffc;border-radius:4px;padding:8px 16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.game-hall{display:flex;width:80%;height:85vh;background:#1e1e1e66;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 10px 30px #00000040;overflow:hidden}@media(max-width:1100px)and (orientation:landscape){.game-hall{width:95vw;height:90vh}.game-hall .left-panel{width:200px}.game-hall .left-panel .user-info-card{padding:15px 10px}.game-hall .left-panel .user-info-card .user-avatar{width:60px;height:60px;margin-bottom:10px}.game-hall .left-panel .user-info-card .user-nickname{font-size:16px}.game-hall .right-panel .tab-bar{height:50px;padding:10px 15px;gap:10px}.game-hall .right-panel .tab-bar .tab-item{padding:4px 12px;font-size:13px}.game-hall .right-panel .content-area{padding:15px}.game-hall .right-panel .content-area .room-list-content .room-item{padding:12px 15px;min-height:70px}.game-hall .right-panel .content-area .room-list-content .room-item .room-info .room-name{font-size:15px}.game-hall .right-panel .content-area .room-list-content .room-item .join-room-btn{flex:0 0 100px;height:36px;font-size:13px}}.game-hall .left-panel{width:280px;background-color:#0003;border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:0;overflow:hidden;border-radius:16px 0 0 16px}.game-hall .left-panel .user-info-card{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;align-items:center;position:relative;padding:30px 20px 20px}.game-hall .left-panel .user-info-card .user-avatar{width:80px;height:80px;border-radius:50%;background-color:#ffffff1a;margin-bottom:15px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 12px #0003}.game-hall .left-panel .user-info-card .user-avatar img{width:100%;height:100%;object-fit:cover}.game-hall .left-panel .user-info-card .user-nickname{color:#fffffff2;font-size:18px;font-weight:600;margin-bottom:5px;letter-spacing:.5px}.game-hall .left-panel .user-info-card .logout-btn{position:absolute;top:15px;right:15px;background-color:transparent;color:#fff9;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px;transition:all .2s ease}.game-hall .left-panel .user-info-card .logout-btn:hover{background-color:#ffffff1a;color:#fffffff2;border-color:#fff6}.game-hall .left-panel .player-list{flex:1;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;overflow:hidden;display:flex;flex-direction:column}.game-hall .left-panel .player-list .player-list-header{background-color:transparent;color:#fff9;padding:15px 20px 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.game-hall .left-panel .player-list .player-list-content{flex:1;overflow-y:auto;padding:0 10px 10px}.game-hall .left-panel .player-list .player-list-content::-webkit-scrollbar{width:6px}.game-hall .left-panel .player-list .player-list-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.game-hall .left-panel .player-list .player-list-content .player-item{display:flex;align-items:center;padding:10px 12px;margin-bottom:4px;background-color:transparent;border-radius:10px;cursor:pointer;transition:all .2s ease}.game-hall .left-panel .player-list .player-list-content .player-item:hover{background-color:#ffffff14}.game-hall .left-panel .player-list .player-list-content .player-item .player-avatar{width:36px;height:36px;border-radius:50%;background-color:#ffffff1a;margin-right:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:none;box-shadow:0 2px 4px #0000001a}.game-hall .left-panel .player-list .player-list-content .player-item .player-avatar img{width:100%;height:100%;object-fit:cover}.game-hall .left-panel .player-list .player-list-content .player-item .player-info{flex:1;display:flex;flex-direction:column;justify-content:center}.game-hall .left-panel .player-list .player-list-content .player-item .player-info .player-name{color:#fffffff2;font-size:14px;font-weight:500}.game-hall .left-panel .player-list .player-list-content .player-item .player-info .player-status{color:#fff9;font-size:12px;margin-top:2px}.game-hall .right-panel{flex:1;display:flex;flex-direction:column;padding:0;background:transparent}.game-hall .right-panel .tab-bar{display:flex;align-items:center;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0;padding:15px 20px;height:60px;position:relative;gap:20px}.game-hall .right-panel .tab-bar .refresh-btn{position:static;background-color:transparent;color:#fff9;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:6px}.game-hall .right-panel .tab-bar .refresh-btn:hover:not(:disabled){background-color:#ffffff1a;color:#fffffff2;border-color:#ffffff4d}.game-hall .right-panel .tab-bar .refresh-btn:disabled{opacity:.4;cursor:not-allowed}.game-hall .right-panel .tab-bar .tab-item{flex:none;padding:6px 16px;text-align:center;color:#fff9;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;background-color:transparent;border-radius:10px}.game-hall .right-panel .tab-bar .tab-item.active{background-color:#ffffff1a;color:#fffffff2}.game-hall .right-panel .tab-bar .tab-item:hover:not(.active){background-color:#ffffff0d;color:#fffffff2}.game-hall .right-panel .tab-bar .create-room-btn{position:static;margin-left:auto;background-color:#ff6200;color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;box-shadow:0 2px 5px #0003}.game-hall .right-panel .tab-bar .create-room-btn:hover{background-color:#8a3500;transform:translateY(-1px);box-shadow:0 4px 8px #0000004d}.game-hall .right-panel .tab-bar .create-room-btn:active{transform:translateY(0)}.game-hall .right-panel .content-area{flex:1;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;padding:20px;overflow-y:auto}.game-hall .right-panel .content-area::-webkit-scrollbar{width:8px}.game-hall .right-panel .content-area::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.game-hall .right-panel .content-area .room-list-content{width:100%;height:auto;color:#fffffff2;font-size:14px;display:flex;flex-direction:column;gap:12px}.game-hall .right-panel .content-area .room-list-content .room-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:18px 20px;background-color:#ffffff0d;border-radius:10px;border:1px solid rgba(255,255,255,.12);transition:all .18s ease;position:relative;overflow:hidden;width:100%;min-height:88px;margin:0 auto}.game-hall .right-panel .content-area .room-list-content .room-item:hover{background-color:#ffffff14;transform:translateY(-4px);box-shadow:0 8px 20px #0000002e;border-color:#ffffff2e}.game-hall .right-panel .content-area .room-list-content .room-item .room-info{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;margin-right:16px;overflow:hidden}.game-hall .right-panel .content-area .room-list-content .room-item .room-info .room-name{font-size:16px;font-weight:600;color:#fffffff2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-hall .right-panel .content-area .room-list-content .room-item .room-info .room-details{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#fff9}.game-hall .right-panel .content-area .room-list-content .room-item .room-info .room-details span{display:flex;align-items:center;gap:6px;background:#ffffff08;padding:4px 8px;border-radius:6px}.game-hall .right-panel .content-area .room-list-content .room-item .join-room-btn{flex:0 0 120px;height:42px;align-self:center;background-color:#ffffff1a;color:#fffffff2;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:0 12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .16s ease;display:inline-flex;align-items:center;justify-content:center}.game-hall .right-panel .content-area .room-list-content .room-item .join-room-btn:hover{background-color:#ff6200;border-color:#ff6200;color:#fff}.game-hall .right-panel .content-area .room-list-content .room-item .join-room-btn:active{transform:translateY(1px)}.game-hall .right-panel .content-area .create-room-content{width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}.game-hall .right-panel .content-area .create-room-content .create-room-form{background:#1e1e1e99;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:40px;width:400px;height:auto;border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;box-shadow:0 20px 40px #0000004d}.game-hall .right-panel .content-area .create-room-content .create-room-form h3{color:#fffffff2;text-align:center;margin-bottom:30px;font-size:22px;font-weight:600}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group{margin-bottom:20px;flex-shrink:0}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group label{display:block;color:#fff9;margin-bottom:8px;font-size:13px;font-weight:500}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group input,.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group select{width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background-color:#0003;color:#fffffff2;font-size:14px;outline:none;transition:all .2s ease}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group input:focus,.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group select:focus{border-color:#ff6200;background-color:#0000004d;box-shadow:0 0 0 3px #0a84ff33}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group input::placeholder,.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group select::placeholder{color:#ffffff4d}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group input option,.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group select option{background-color:#2c2c2c;color:#fffffff2}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions{display:flex;gap:15px;margin-top:20px;padding-top:0}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button{flex:1;padding:10px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button.cancel-btn{background-color:#ffffff1a;color:#fffffff2;border:1px solid transparent}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button.cancel-btn:hover:not(:disabled){background-color:#ffffff26}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button.confirm-btn{background-color:#ff6200;color:#fff}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button.confirm-btn:hover:not(:disabled){background-color:#8a3500;box-shadow:0 2px 8px #0a84ff66}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button.confirm-btn:disabled{background-color:#0a84ff80;cursor:not-allowed}@media(max-width:1100px)and (orientation:landscape){.game-hall .right-panel .content-area .create-room-content .create-room-form{width:60vw;padding:20px;max-height:80vh;overflow-y:auto}.game-hall .right-panel .content-area .create-room-content .create-room-form h3{margin-bottom:15px;font-size:18px}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group{margin-bottom:12px}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group label{margin-bottom:4px;font-size:12px}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group input,.game-hall .right-panel .content-area .create-room-content .create-room-form .form-group select{padding:6px 10px;font-size:13px}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions{margin-top:15px}.game-hall .right-panel .content-area .create-room-content .create-room-form .form-actions button{padding:8px;font-size:13px}}.debounced-button{position:relative;transition:all .3s ease;cursor:pointer}.debounced-button.executing{opacity:.7;cursor:not-allowed}.debounced-button:disabled{cursor:not-allowed;opacity:.5}.debounced-button:active:not(:disabled){transform:scale(.98)}.room-container{position:relative;width:100%;height:100vh;display:flex;flex-direction:column;padding:30px;box-sizing:border-box;z-index:1}.loading-container,.error-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;color:#fffffff2;z-index:2}.loading-text,.error-text{font-size:24px;margin-bottom:20px;font-weight:300}.back-btn{padding:8px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#fffffff2;cursor:pointer;transition:all .2s ease;font-size:14px}.back-btn:hover{background:#ffffff26;border-color:#ffffff4d}.room-header{display:flex;justify-content:space-between;align-items:center;background:#282828a6;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);border-radius:16px;padding:20px 30px;margin-bottom:20px;border:1px solid rgba(255,255,255,.12);box-shadow:0 4px 12px #0000001a}.room-info{color:#fffffff2}.room-name{font-size:24px;font-weight:600;margin:0 0 8px;color:#fffffff2;letter-spacing:.5px}.room-details{display:flex;gap:12px;font-size:13px;color:#fff9}.room-details span{padding:4px 10px;background:#ffffff14;border-radius:6px;border:1px solid rgba(255,255,255,.05)}.leave-room-btn{padding:8px 20px;background:#ff453a26;border:1px solid rgba(255,69,58,.3);border-radius:6px;color:#ff453a;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.leave-room-btn:hover{background:#ff453a;color:#fff;border-color:#ff453a;box-shadow:0 2px 8px #ff453a4d}.room-content{display:flex;gap:20px;flex:1;min-height:0}.players-section{flex:1;background:#282828a6;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.12);color:#fffffff2;display:flex;flex-direction:column;box-shadow:0 4px 12px #0000001a}.players-section h3{margin:0 0 15px;color:#fffffff2;font-size:18px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:15px}.players-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;overflow-y:auto;flex:1;padding-right:5px}.players-list::-webkit-scrollbar{width:6px}.players-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.player-item{display:flex;align-items:center;gap:15px;padding:15px;background:#ffffff08;border-radius:10px;border:1px solid transparent;transition:all .2s ease;min-width:200px}.player-item.owner{background:#ffd7000d;border-color:#ffd7001a}.player-item:hover{background:#ffffff14;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.player-avatar{width:48px;height:48px;border-radius:50%;overflow:visible;border:2px solid rgba(255,255,255,.1);box-shadow:0 2px 6px #0000001a;position:relative}.player-avatar img{width:100%;height:100%;object-fit:cover;clip-path:circle(50% at 50% 50%);border-radius:50%}.player-info{flex:1;min-width:0}.player-name{font-size:15px;font-weight:600;color:#fffffff2;display:flex;align-items:center;gap:8px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-badge{font-size:10px;padding:2px 6px;background:#ffd70026;border-radius:4px;color:gold;border:1px solid rgba(255,215,0,.3);font-weight:500;flex-shrink:0}.player-status{font-size:13px;color:#fff9;display:flex;align-items:center;gap:8px}.prepared-badge{font-size:10px;padding:2px 6px;background:#32d74b26;border-radius:4px;color:#32d74b;border:1px solid rgba(50,215,75,.3);font-weight:500}.empty-slot{display:flex;align-items:center;gap:15px;padding:15px;background:#ffffff03;border-radius:10px;border:1px dashed rgba(255,255,255,.1);color:#fff9;transition:all .2s ease}.empty-slot:hover{background:#ffffff08;border-color:#fff3}.empty-avatar{width:48px;height:48px;border-radius:50%;background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff3}.empty-text{font-size:14px;color:#ffffff4d}.room-settings{width:320px;background:#282828a6;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.12);color:#fffffff2;display:flex;flex-direction:column;box-shadow:0 4px 12px #0000001a;max-height:100%;overflow-y:auto}.room-settings::-webkit-scrollbar{width:6px}.room-settings::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.room-settings h3{margin:0 0 15px;color:#fffffff2;font-size:18px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:15px}.settings-info{flex:1;display:flex;flex-direction:column}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}.setting-item span:first-child{color:#fff9;font-size:14px}.setting-item span:last-child{color:#fffffff2;font-weight:500;font-size:14px}.room-actions{margin-top:20px;display:flex;flex-direction:column;gap:12px}.start-game-btn,.prepare-btn{padding:12px 20px;border:none;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 5px #0000001a}.start-game-btn:disabled,.prepare-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.start-game-btn{background:#32d74b;color:#fff}.start-game-btn:hover:not(:disabled){background:#47db5e;transform:translateY(-1px);box-shadow:0 4px 10px #32d74b4d}.start-game-btn:active{transform:translateY(0)}.prepare-btn{background:#ff6200;color:#fff}.prepare-btn:hover{background:#8a3500;transform:translateY(-1px);box-shadow:0 4px 10px #0a84ff4d}.prepare-btn.prepared{background:#ff9f0a}.prepare-btn.prepared:hover{background:#ffa924;box-shadow:0 4px 10px #ff9f0a4d}.voice-indicator{position:absolute;bottom:-4px;right:-4px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0009;border:2px solid rgba(255,255,255,.2);z-index:5}.voice-indicator.connected{background:#32d74b;border-color:#32d74b;box-shadow:0 1px 4px #32d74b40}.voice-indicator.disconnected{background:#ff453a;border-color:#ff453a;box-shadow:0 1px 4px #ff453a40}.voice-indicator .voice-icon{font-size:10px;color:#fff;line-height:1}@media(max-width:480px){.voice-indicator{width:16px;height:16px;bottom:-3px;right:-3px}.voice-indicator .voice-icon{font-size:9px}}.you-badge{font-size:10px;padding:2px 6px;background:#0a84ff26;border-radius:4px;color:#ff6200;border:1px solid rgba(10,132,255,.3);font-weight:500}.voice-status{font-size:10px;padding:2px 6px;border-radius:4px;margin-left:8px}.voice-status.connected{background:#32d74b26;color:#32d74b;border:1px solid rgba(50,215,75,.3)}.voice-status.disconnected{background:#ff453a26;color:#ff453a;border:1px solid rgba(255,69,58,.3)}.voice-controls-sidebar{position:fixed;left:0;top:100px;z-index:1000;background:#282828a6;backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);border:1px solid rgba(255,255,255,.12);border-left:none;border-radius:0 10px 10px 0;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;padding:10px 15px;box-shadow:2px 2px 10px #0003}.voice-controls-sidebar.collapsed{transform:translate(-100%)}.voice-controls-sidebar.collapsed .voice-collapse-toggle{border-radius:0 8px 8px 0;opacity:.8}.voice-controls-sidebar.collapsed .voice-collapse-toggle:hover{opacity:1}.voice-panel-content{display:flex;align-items:center;gap:20px;min-width:200px}.voice-status-compact{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.status-connected{background-color:#32d74b;box-shadow:0 0 8px #32d74b80}.status-dot.status-waiting{background-color:#ff9f0a;box-shadow:0 0 4px #ff9f0a66}.status-dot.status-initializing{background-color:#ffb33d;animation:pulse 1.2s infinite}.status-dot.status-off{background-color:#ffffff4d}.status-text{font-size:13px;color:#fffffff2;font-weight:500}.status-text.status-connected{color:#32d74b}.status-text.status-waiting{color:#ff9f0a}.status-text.status-initializing{color:#ffb33d}.status-text.status-off{color:#fff9}.status-text .peer-count{margin-left:4px;color:#fff9;font-size:12px}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.voice-actions-compact{display:flex;gap:8px}.voice-icon-btn{width:32px;height:32px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:16px;background:#ffffff1a;color:#fffffff2}.voice-icon-btn:hover:not(:disabled){background:#fff3;transform:scale(1.05)}.voice-icon-btn:disabled{opacity:.5;cursor:not-allowed}.voice-icon-btn.active{background:#32d74b;color:#fff;box-shadow:0 2px 8px #32d74b4d}.voice-icon-btn.muted{background:#ff9f0a;color:#fff}.voice-collapse-toggle{position:absolute;right:-24px;top:50%;transform:translateY(-50%);width:24px;height:40px;background:#282828a6;border:1px solid rgba(255,255,255,.12);border-left:none;border-radius:0 8px 8px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fffffff2;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);font-size:12px;transition:all .2s ease;z-index:-1}.voice-collapse-toggle:hover{background:#ffffff1a}@media(max-width:768px){.room-container{padding:15px}.room-header{flex-direction:column;gap:15px;padding:15px;align-items:flex-start}.room-name{font-size:20px}.room-details{flex-wrap:wrap;gap:8px}.room-details span{font-size:12px}.room-content{flex-direction:column}.room-settings{width:100%}.voice-buttons{flex-direction:column}.players-list{grid-template-columns:1fr}}@media(max-width:1100px)and (orientation:landscape){.room-container{padding:10px;height:100vh;overflow:hidden}.room-header{padding:10px 15px;margin-bottom:10px;flex-direction:row;align-items:center}.room-header .room-name{font-size:18px;margin-bottom:4px}.room-header .leave-room-btn{padding:6px 12px;font-size:12px}.room-content{flex-direction:row;gap:10px;overflow:hidden}.players-section{padding:10px}.players-section h3{font-size:16px;margin-bottom:10px;padding-bottom:10px}.players-section .players-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;padding-right:5px}.players-section .player-item{padding:10px;min-width:160px}.players-section .player-item .player-avatar{width:36px;height:36px}.players-section .player-item .player-name{font-size:13px}.room-settings{width:240px;padding:10px}.room-settings h3{font-size:16px;margin-bottom:10px;padding-bottom:10px}.room-settings .setting-item{padding:8px 0}.room-settings .setting-item span{font-size:12px}.room-settings .start-game-btn,.room-settings .prepare-btn{padding:8px 16px;font-size:13px}}.route-guard-loading{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;background:#ffffff1a;border-radius:16px;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000001a}.loading-content p{color:#fff;font-size:16px;margin:0;font-weight:500;text-shadow:0 2px 4px rgba(0,0,0,.5)}.route-guard-loading .ant-spin-dot{font-size:24px}.route-guard-loading .ant-spin-dot-item{background-color:#1890ff;border-radius:50%}@media(max-width:768px){.loading-content{padding:24px;gap:12px}.loading-content p{font-size:14px}}.game-table{width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,#3a5a40,#273c2e 60%,#142018);border:25px solid #3e2723;box-shadow:0 30px 60px #000000e6,inset 0 0 30px #000c,0 0 0 2px #00000080;display:flex;justify-content:center;align-items:center;position:relative}@media(max-width:1100px)and (orientation:landscape){.game-table{width:50vh;height:50vh;border-width:2vh}.game-table .table-center-logo{font-size:4vh}.game-table .played-cards-area .played-cards-info{padding:2vh 3vw;border-radius:2vh;gap:1vh}.game-table .played-cards-area .played-cards-info .player-name{font-size:2.5vh}.game-table .played-cards-area .played-cards-info .cards-count-display{gap:1vw}.game-table .played-cards-area .played-cards-info .cards-count-display .card-back-icon{font-size:5vh}.game-table .played-cards-area .played-cards-info .cards-count-display .count{font-size:4vh}}.game-table .table-surface{width:100%;height:100%;border-radius:50%;display:flex;justify-content:center;align-items:center;background-image:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(0,0,0,.1) 5px,rgba(0,0,0,.1) 6px),radial-gradient(circle at 30% 30%,rgba(255,255,255,.05) 0%,transparent 20%)}.game-table .table-center-logo{font-family:Courier New,Courier,monospace;font-size:32px;font-weight:700;color:#c6a87c26;-webkit-user-select:none;user-select:none;text-shadow:1px 1px 2px rgba(0,0,0,.5);letter-spacing:4px;transform:rotate(-5deg)}.game-table .played-cards-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;animation:popIn .3s cubic-bezier(.175,.885,.32,1.275)}.game-table .played-cards-area .played-cards-info{background:#000000b3;padding:15px 25px;border-radius:15px;border:1px solid rgba(255,215,0,.3);display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 10px 30px #00000080;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.game-table .played-cards-area .played-cards-info .player-name{color:gold;font-size:14px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.8)}.game-table .played-cards-area .played-cards-info .cards-count-display{display:flex;align-items:center;gap:10px}.game-table .played-cards-area .played-cards-info .cards-count-display .card-back-icon{font-size:40px;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.game-table .played-cards-area .played-cards-info .cards-count-display .count{font-size:24px;font-weight:700;color:#fff}@keyframes popIn{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.revolver-cylinder{width:40px;height:40px;position:relative}.revolver-cylinder .cylinder-body{width:100%;height:100%;border-radius:50%;background:#555;border:2px solid #333;position:relative;box-shadow:inset 0 0 5px #000c;animation:spin .5s ease-out}.revolver-cylinder .center-pin{position:absolute;top:50%;left:50%;width:8px;height:8px;background:#222;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 2px #fff3}.revolver-cylinder .chamber{position:absolute;width:10px;height:10px;border-radius:50%;background:#1a1a1a;top:50%;left:50%;margin-top:-5px;margin-left:-5px}.revolver-cylinder .chamber.chamber-0{transform:rotate(0) translate(12px) rotate(0)}.revolver-cylinder .chamber.chamber-1{transform:rotate(60deg) translate(12px) rotate(-60deg)}.revolver-cylinder .chamber.chamber-2{transform:rotate(120deg) translate(12px) rotate(-120deg)}.revolver-cylinder .chamber.chamber-3{transform:rotate(180deg) translate(12px) rotate(-180deg)}.revolver-cylinder .chamber.chamber-4{transform:rotate(240deg) translate(12px) rotate(-240deg)}.revolver-cylinder .chamber.chamber-5{transform:rotate(300deg) translate(12px) rotate(-300deg)}.revolver-cylinder .chamber.full{background:#d4af37;box-shadow:inset 0 0 2px #00000080}.revolver-cylinder .chamber.full .bullet-head{width:6px;height:6px;background:#b8860b;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.8}.revolver-cylinder .chamber.empty{box-shadow:inset 1px 1px 3px #000c}@media(max-width:1100px)and (orientation:landscape){.revolver-cylinder{width:6vh;height:6vh}.revolver-cylinder .cylinder-body{border-width:.3vh}.revolver-cylinder .center-pin{width:1.2vh;height:1.2vh}.revolver-cylinder .chamber{width:1.5vh;height:1.5vh;margin-top:-.75vh;margin-left:-.75vh}.revolver-cylinder .chamber.chamber-0{transform:rotate(0) translate(1.8vh) rotate(0)}.revolver-cylinder .chamber.chamber-1{transform:rotate(60deg) translate(1.8vh) rotate(-60deg)}.revolver-cylinder .chamber.chamber-2{transform:rotate(120deg) translate(1.8vh) rotate(-120deg)}.revolver-cylinder .chamber.chamber-3{transform:rotate(180deg) translate(1.8vh) rotate(-180deg)}.revolver-cylinder .chamber.chamber-4{transform:rotate(240deg) translate(1.8vh) rotate(-240deg)}.revolver-cylinder .chamber.chamber-5{transform:rotate(300deg) translate(1.8vh) rotate(-300deg)}.revolver-cylinder .chamber.full .bullet-head{width:.9vh;height:.9vh}}.player-area{position:absolute;display:flex;flex-direction:column;align-items:center;color:#fff}.player-area .avatar-circle{width:80px;height:80px;border-radius:50%;background-color:#2c2c2c;border:4px solid #5d4037;display:flex;justify-content:center;align-items:center;font-size:32px;font-weight:700;color:#d7ccc8;box-shadow:0 4px 15px #0009;margin-bottom:8px;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.player-area .avatar-circle.dead{position:relative;filter:grayscale(100%) contrast(1.2);transform-origin:center bottom;animation:death-fall 1s cubic-bezier(.68,-.55,.265,1.55) forwards;border-color:#3e2723}.player-area .avatar-circle.dead:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#0009;border-radius:50%}.player-area .blood-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 30% 30%,transparent 0%,rgba(139,0,0,.4) 40%,rgba(139,0,0,.8) 100%);z-index:5;pointer-events:none;animation:blood-spread 2s ease-out forwards}.player-area .blood-overlay:before{content:"";position:absolute;top:50%;left:50%;width:120%;height:120%;background:radial-gradient(circle,#8b0000 10%,transparent 60%);transform:translate(-50%,-50%) scale(0);animation:blood-splatter .4s ease-out .2s forwards;opacity:.7}@keyframes death-fall{0%{transform:scale(1) rotate(0);filter:grayscale(0%)}20%{transform:scale(1.1) rotate(-10deg);filter:grayscale(0%)}40%{transform:scale(1.1) rotate(10deg);filter:grayscale(50%)}60%{transform:scale(.9) rotate(-5deg)}to{transform:scale(.8) rotate(25deg) translateY(10px);filter:grayscale(100%) brightness(.6);opacity:.7}}@keyframes blood-spread{0%{opacity:0}to{opacity:1}}@keyframes blood-splatter{0%{transform:translate(-50%,-50%) scale(0);opacity:.8}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.player-area .shooting-effect{position:absolute;top:-20px;left:-20px;width:140%;height:140%;pointer-events:none;z-index:20}.player-area .shooting-effect .gun-barrel{position:absolute;width:60px;height:18px;background:linear-gradient(to bottom,#555,#111);right:-35px;top:40px;border-radius:3px;transform-origin:right center;transform:rotate(10deg);box-shadow:6px 6px 12px #000000b3;border:1px solid #000;animation:recoil .4s cubic-bezier(.175,.885,.32,1.275) forwards}.player-area .shooting-effect .gun-barrel:after{content:"";position:absolute;right:-18px;top:3px;width:24px;height:32px;background:#3e2723;transform:rotate(-15deg);border-radius:5px;border:1px solid #1a1a1a}.player-area .shooting-effect .muzzle-flash{position:absolute;width:120px;height:120px;background:radial-gradient(circle,#fff 20%,#ffeb3b 40%,#ff5722 60%,transparent 70%);right:0;top:-10px;border-radius:50%;opacity:0;mix-blend-mode:screen;filter:blur(3px);animation:flash .3s ease-out forwards;z-index:25}.player-area .shooting-effect .smoke-puff{position:absolute;width:60px;height:60px;background:radial-gradient(circle,rgba(200,200,200,.8) 0%,transparent 70%);right:20px;top:5px;border-radius:50%;opacity:0;filter:blur(8px);animation:smoke 1.5s ease-out .1s forwards}@keyframes recoil{0%{transform:rotate(10deg) translate(0)}10%{transform:rotate(35deg) translate(10px)}to{transform:rotate(10deg) translate(0)}}@keyframes flash{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1.8)}to{opacity:0;transform:scale(.8)}}@keyframes smoke{0%{opacity:0;transform:scale(.5) translateY(0)}20%{opacity:.6;transform:scale(1.2) translateY(-10px)}to{opacity:0;transform:scale(2) translateY(-40px)}}.player-area .dead-badge{position:absolute;right:-12px;top:-12px;background:#b71c1c;color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 0 20px #b71c1ce6;border:3px solid #fff;z-index:10;animation:dead-pulse 2s infinite}@keyframes dead-pulse{0%{transform:scale(1);filter:grayscale(80%)}50%{transform:scale(1.06);filter:grayscale(100%)}to{transform:scale(1);filter:grayscale(80%)}}.player-area .player-info{background-color:#140a05d9;padding:4px 12px;border-radius:4px;text-align:center;border:1px solid #3e2723;box-shadow:0 2px 5px #00000080}.player-area .player-info .player-name{display:block;font-weight:700;font-size:14px;color:#d7ccc8;font-family:Courier New,Courier,monospace}.player-area .player-info .player-status{font-size:12px;color:#8d6e63;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.player-area .player-info .player-status .status-dot{width:6px;height:6px;border-radius:50%;background-color:#5d4037;box-shadow:0 0 2px #00000080}.player-area .player-info .player-status .status-dot.online{background-color:#2e7d32;box-shadow:0 0 5px #2e7d32}.player-area .player-hand-count{margin-top:16px}.player-area .player-hand-count .card-stack{position:relative;width:66px;height:90px}.player-area .player-hand-count .card-stack .mini-card-back{position:absolute;width:100%;height:100%;background:linear-gradient(135deg,#5d4037,#3e2723);border:2px solid #d7ccc8;border-radius:6px;box-shadow:3px 3px 8px #0009;transition:transform .3s ease}.player-area .player-hand-count .card-stack .mini-card-back:after{content:"";position:absolute;inset:4px;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.1) 0px,rgba(255,255,255,.1) 3px,transparent 3px,transparent 6px);border:1px solid rgba(215,204,200,.5);border-radius:3px}.player-area .player-hand-count .card-stack .card-count-badge{position:absolute;bottom:-12px;right:-12px;background:linear-gradient(135deg,#d32f2f,#b71c1c);color:#fff;font-size:18px;font-weight:800;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #0009;border:2px solid #fff;z-index:20;text-shadow:0 1px 2px rgba(0,0,0,.5)}@media(max-width:1100px)and (orientation:landscape){.player-area.position-top{top:5px}}.player-area.position-bottom{bottom:180px;left:50%;transform:translate(-50%)}@media(max-width:1100px)and (orientation:landscape){.player-area.position-bottom{bottom:26vh;transform:translate(-50%)}.player-area.position-bottom.is-self{left:2vw;bottom:2vh;transform:none;align-items:flex-start}.player-area.position-bottom.is-self .player-info{order:2;margin-top:1vh}.player-area.position-bottom.is-self .avatar-circle{order:1}}.player-area.position-left{left:20px;top:50%;transform:translateY(-50%)}@media(max-width:1100px)and (orientation:landscape){.player-area.position-left{left:2vw;transform:translateY(-50%)}}.player-area.position-right{right:20px;top:50%;transform:translateY(-50%)}@media(max-width:1100px)and (orientation:landscape){.player-area.position-right{right:2vw;transform:translateY(-50%)}}.player-area.position-top{top:20px;left:50%;transform:translate(-50%)}@media(max-width:1100px)and (orientation:landscape){.player-area.position-top{top:2vh}}@media(max-width:1100px)and (orientation:landscape){.player-area .avatar-circle{width:10vh;height:10vh;font-size:4vh;border-width:.5vh;margin-bottom:1vh}.player-area .player-info{padding:.5vh 1.5vw;border-radius:.8vh;border-width:.2vh}.player-area .player-info .player-name{font-size:2.5vh}.player-area .player-info .player-status{min-height:5vh;gap:1vw;font-size:2vh}.player-area .player-info .player-status .status-dot{width:1vh;height:1vh}.player-area .player-hand-count{margin-top:1vh}.player-area .player-hand-count .card-stack{width:6vh;height:8.4vh}.player-area .player-hand-count .card-stack .card-count-badge{width:3.5vh;height:3.5vh;font-size:2vh;bottom:-1vh;right:-1vh;border-width:.2vh}}.game-card{width:100px;height:140px;background:linear-gradient(135deg,#fff,#f8f9fa);border:2px solid #e9ecef;border-radius:12px;box-shadow:0 4px 8px #0000001a,0 2px 4px #0000000d,inset 0 1px #fffc;display:flex;flex-direction:column;justify-content:space-between;padding:10px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;transition:all .3s ease;font-family:Arial,sans-serif}.game-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.3) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(0,0,0,.05) 0%,transparent 50%);border-radius:10px;pointer-events:none}.game-card:hover{transform:translateY(-8px) scale(1.05);box-shadow:0 8px 16px #00000026,0 4px 8px #0000001a,inset 0 1px #ffffffe6}.game-card.red{color:#dc3545;border-color:#dc3545}.game-card.red .card-center-suit{text-shadow:0 0 8px rgba(220,53,69,.3)}.game-card.black{color:#212529;border-color:#6c757d}.game-card.black .card-center-suit{text-shadow:0 0 8px rgba(33,37,41,.2)}.game-card .card-top-left{display:flex;flex-direction:column;align-items:center;font-size:16px;font-weight:700;line-height:1;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.1)}.game-card .card-center-suit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;font-weight:700;z-index:1;opacity:.8;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.game-card .card-bottom-right{display:flex;flex-direction:column;align-items:center;font-size:16px;font-weight:700;line-height:1;transform:rotate(180deg);z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.1)}.game-card[data-rank=JOKER]{background:linear-gradient(135deg,#ff6b6b,#feca57,#48dbfb);border-color:#ff6b6b;color:#fff}.game-card[data-rank=JOKER]:before{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.4) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(0,0,0,.1) 0%,transparent 50%)}.game-card[data-rank=JOKER] .card-center-suit{opacity:1;text-shadow:0 0 12px rgba(255,255,255,.8)}.game-card[data-rank=A] .card-center-suit,.game-card[data-rank=K] .card-center-suit,.game-card[data-rank=Q] .card-center-suit{opacity:.6}@media(max-width:1100px)and (orientation:landscape){.game-card{width:7vw;height:20vh;border-radius:1.5vh;padding:1vh;border-width:.3vh}.game-card:before{border-radius:1.2vh}.game-card:hover{transform:translateY(-1vh) scale(1.05)}.game-card .card-top-left{font-size:2.5vh}.game-card .card-center-suit{font-size:8vh}.game-card .card-bottom-right{font-size:2.5vh}}.hand-cards-container{display:flex;flex-direction:column;align-items:center;gap:15px;height:180px;padding-bottom:20px;position:absolute;bottom:20px;right:40px;z-index:100}.hand-cards-container:before{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100%;height:40px;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.1) 100%);border-radius:50%;filter:blur(8px);z-index:0}.hand-cards-container .hand-cards-area{display:flex;justify-content:center;align-items:flex-end;flex:1;position:relative;z-index:1;gap:15px;padding:0 20px}.hand-cards-container .hand-card-wrapper{width:100px;height:140px;margin:0;padding:0;box-sizing:border-box;transition:transform .18s cubic-bezier(.4,0,.2,1),margin .18s;cursor:pointer;z-index:1;position:relative;transform:translateY(0) scale(1);border-radius:8px}.hand-cards-container .hand-card-wrapper:before{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:80px;height:20px;background:radial-gradient(ellipse,rgba(0,0,0,.2) 0%,transparent 70%);border-radius:50%;opacity:0;transition:opacity .3s ease;z-index:-1}.hand-cards-container .hand-card-wrapper:hover:not(.disabled){z-index:100}.hand-cards-container .hand-card-wrapper:hover:not(.disabled):before{opacity:1}.hand-cards-container .hand-card-wrapper.selected{transform:translateY(-20px) scale(1)}.hand-cards-container .hand-card-wrapper.selected:after{content:"";position:absolute;inset:-4px;border:3px solid #ffd700;border-radius:12px;box-shadow:0 0 15px #ffd70080;z-index:1;animation:pulse 2s infinite;pointer-events:none}.hand-cards-container .hand-card-wrapper.disabled{cursor:not-allowed;opacity:.55;filter:grayscale(.2);transform:translateY(0) scale(.9);pointer-events:none}.hand-cards-container .play-button-container{position:relative;z-index:10}.hand-cards-container .play-button-container .play-button{background:linear-gradient(135deg,gold,#ffed4e,gold);color:#2c1810;border:2px solid #b8860b;padding:14px 32px;font-size:16px;font-weight:700;border-radius:30px;cursor:pointer;box-shadow:0 6px 20px #ffd70066,inset 0 1px #ffffff4d,inset 0 -1px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.2);font-family:"serif",sans-serif;letter-spacing:.5px}.hand-cards-container .play-button-container .play-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s ease}.hand-cards-container .play-button-container .play-button:after{content:"";position:absolute;inset:4px;border-radius:26px;background:linear-gradient(135deg,#ffd700e6,#b8860bcc);z-index:-1}.hand-cards-container .play-button-container .play-button:hover:not(:disabled){transform:translateY(-3px) scale(1.05);box-shadow:0 8px 25px #ffd70099,inset 0 1px #fff6,inset 0 -1px #0003}.hand-cards-container .play-button-container .play-button:hover:not(:disabled):before{left:100%}.hand-cards-container .play-button-container .play-button:hover:not(:disabled):after{background:linear-gradient(135deg,gold,#b8860be6)}.hand-cards-container .play-button-container .play-button:active:not(:disabled){transform:translateY(-1px) scale(1.02);box-shadow:0 4px 15px #ffd70080,inset 0 2px 4px #0003}.hand-cards-container .play-button-container .play-button:disabled{opacity:.6;cursor:not-allowed;background:linear-gradient(135deg,#666,#999);box-shadow:0 4px 15px #0000004d,inset 0 1px #ffffff1a,inset 0 -1px #0000004d;transform:none}.hand-cards-container .play-button-container .play-button:disabled:after{background:linear-gradient(135deg,#666c,#9999)}.hand-cards-container .play-button-container .challenge-button{background:linear-gradient(135deg,#ff4757,#ff3838,#ff4757);color:#fff;border:2px solid #c44569;padding:14px 32px;font-size:16px;font-weight:700;border-radius:30px;cursor:pointer;box-shadow:0 6px 20px #ff475766,inset 0 1px #fff3,inset 0 -1px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.3);font-family:"serif",sans-serif;letter-spacing:.5px}.hand-cards-container .play-button-container .challenge-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.hand-cards-container .play-button-container .challenge-button:after{content:"";position:absolute;inset:4px;border-radius:26px;background:linear-gradient(135deg,#ff4757e6,#c44569cc);z-index:-1}.hand-cards-container .play-button-container .challenge-button:hover:not(:disabled){transform:translateY(-3px) scale(1.05);box-shadow:0 8px 25px #ff475799,inset 0 1px #ffffff4d,inset 0 -1px #0003}.hand-cards-container .play-button-container .challenge-button:hover:not(:disabled):before{left:100%}.hand-cards-container .play-button-container .challenge-button:hover:not(:disabled):after{background:linear-gradient(135deg,#ff4757,#c44569e6)}.hand-cards-container .play-button-container .challenge-button:active:not(:disabled){transform:translateY(-1px) scale(1.02);box-shadow:0 4px 15px #ff475780,inset 0 2px 4px #0003}.hand-cards-container .play-button-container .challenge-button:disabled{opacity:.6;cursor:not-allowed;background:linear-gradient(135deg,#666,#999);box-shadow:0 4px 15px #0000004d,inset 0 1px #ffffff1a,inset 0 -1px #0000004d;transform:none}.hand-cards-container .play-button-container .challenge-button:disabled:after{background:linear-gradient(135deg,#666c,#9999)}.hand-cards-container .turn-hint{color:#fff;font-size:16px;font-weight:500;text-align:center;padding:10px 20px;background:#0009;border-radius:20px;box-shadow:0 2px 10px #0000004d;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .5s ease}.hand-cards-container .waiting-cards{color:#6c757d;font-size:18px;font-weight:500;text-align:center;padding:20px;background:#fffc;border-radius:10px;box-shadow:0 2px 10px #0000001a;border:1px solid #e9ecef}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.7}to{transform:scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px)and (orientation:landscape){.hand-cards-container{height:25vh;bottom:0;right:2vw;gap:1vh;padding-bottom:2vh}.hand-cards-container .hand-cards-area{gap:1vw;padding:0 2vw}.hand-cards-container .hand-card-wrapper{width:7vw;height:20vh}.hand-cards-container .hand-card-wrapper.selected{transform:translateY(-3vh) scale(1)}.hand-cards-container .play-button-container{position:absolute;top:-8vh;width:100%;display:flex;justify-content:center;pointer-events:auto}.hand-cards-container .play-button-container .play-button,.hand-cards-container .play-button-container .challenge-button{padding:1vh 3vw;font-size:7px;border-radius:4vh;box-shadow:0 .5vh 1vh #0000004d}.hand-cards-container .turn-hint{font-size:2.5vh;padding:1vh 3vw;border-radius:2vh}}.challenge-reveal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10000;opacity:0;transition:opacity .2s ease;background:#0003}.challenge-reveal-overlay:not(:empty){opacity:1}.reveal-panel{background:#141414e6;border:1px solid rgba(255,255,255,.15);padding:24px 32px;border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px #00000080;transform:scale(.9);animation:pop-in .3s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes pop-in{to{transform:scale(1)}}.reveal-header{font-size:18px;color:#fff;margin-bottom:20px;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);font-family:Courier New,Courier,monospace;letter-spacing:1px}.card-reveal{display:flex;justify-content:center;gap:16px}.reveal-card{width:70px;height:100px;border-radius:8px;background:linear-gradient(150deg,#fefefe,#e6e6e6);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;border:1px solid #ccc;transform:rotateY(90deg);transition:transform .5s ease;box-shadow:0 4px 12px #0000004d}.reveal-card.flip{animation:flip-card .6s cubic-bezier(.4,0,.2,1) forwards}.reveal-card.red{color:#c62828}.reveal-card.black{color:#1a1a1a}.reveal-card .rank{font-size:26px}.reveal-card .suit{font-size:22px;margin-top:4px}@keyframes flip-card{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.your-turn-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20}.your-turn-container .screen-glow{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:inset 0 0 50px #ffd7004d,inset 0 0 20px #ffd70080;animation:glowPulse 2s infinite ease-in-out;pointer-events:none}.your-turn-container .turn-banner{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:bannerEnter .5s cubic-bezier(.175,.885,.32,1.275) forwards}.your-turn-container .turn-banner .turn-text{font-family:Impact,sans-serif;font-size:80px;color:gold;text-transform:uppercase;letter-spacing:10px;text-shadow:0 0 10px rgba(255,215,0,.8),0 0 20px rgba(255,165,0,.6),2px 2px 0px #000;white-space:nowrap}.your-turn-container .turn-banner .turn-line{width:0;height:4px;background:gold;margin-top:10px;box-shadow:0 0 10px #ffd700cc;animation:lineExpand .5s .3s forwards ease-out}@keyframes glowPulse{0%{box-shadow:inset 0 0 30px #ffd70033}50%{box-shadow:inset 0 0 80px #ffd70080}to{box-shadow:inset 0 0 30px #ffd70033}}@keyframes bannerEnter{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes lineExpand{0%{width:0}to{width:100%}}.game-stage-2d{width:100vw;height:100vh;background:radial-gradient(circle at center,#5d4037,#3e2723,#1a120b 80%,#000);position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center}.game-stage-2d:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(transparent 50%,#0009);pointer-events:none;z-index:5}.game-stage-2d .game-info-header{position:absolute;top:0;left:0;width:100%;height:0;z-index:15;pointer-events:none}.game-stage-2d .game-info-header .game-round-info{position:absolute;top:20px;right:20px;pointer-events:auto;display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:#0009;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 15px #0000004d}.game-stage-2d .game-info-header .game-round-info .round-number{font-size:20px;font-weight:800;color:gold;text-transform:uppercase;letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.8);font-family:Courier New,Courier,monospace}.game-stage-2d .game-info-header .game-round-info .target-card-display{display:flex;align-items:center;gap:10px;background:#0006;padding:5px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.game-stage-2d .game-info-header .game-round-info .target-card-display .label{font-size:14px;color:#aaa;font-weight:700;text-transform:uppercase}.game-stage-2d .game-info-header .game-round-info .target-card-display .target-card-visual{width:60px;height:84px;background:#e0e0e0;border-radius:6px;display:flex;justify-content:center;align-items:center;font-size:36px;font-weight:700;color:#333;box-shadow:0 0 15px #ffd70080;border:3px solid #ffd700;animation:targetPulse 2s infinite}.game-stage-2d .game-info-header .game-round-info .target-card-display .target-card-visual.card-A{color:#d32f2f}.game-stage-2d .game-info-header .game-round-info .target-card-display .target-card-visual.card-K{color:#1976d2}.game-stage-2d .game-info-header .game-round-info .target-card-display .target-card-visual.card-Q{color:#7b1fa2}.game-stage-2d .game-info-header .game-round-info .target-card-display .target-card-visual.card-J{color:#388e3c}@keyframes targetPulse{0%{transform:scale(1);box-shadow:0 0 10px #ffd70080}50%{transform:scale(1.1);box-shadow:0 0 20px #ffd700cc}to{transform:scale(1);box-shadow:0 0 10px #ffd70080}}.game-stage-2d .game-info-header .current-turn-info{position:absolute;top:20px;left:50%;transform:translate(-50%);pointer-events:auto;display:flex;align-items:center;gap:10px;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:6px 20px 6px 6px;border-radius:30px;border:1px solid rgba(255,215,0,.2);box-shadow:0 4px 20px #0006}.game-stage-2d .game-info-header .current-turn-info .turn-label{display:none}.game-stage-2d .game-info-header .current-turn-info .current-player{display:flex;align-items:center;gap:10px;background:transparent;padding:0;border:none}.game-stage-2d .game-info-header .current-turn-info .current-player .player-avatar-small{width:40px;height:40px;border-radius:50%;border:2px solid #ffd700;box-shadow:0 0 10px #ffd7004d}.game-stage-2d .game-info-header .current-turn-info .current-player .player-name{font-size:18px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}.game-stage-2d .game-info-header .current-turn-info .current-player .your-turn-badge{background:linear-gradient(45deg,#ff6b6b,gold);color:#000;font-size:12px;font-weight:700;padding:3px 8px;border-radius:12px;animation:pulse 2s infinite;text-shadow:none;white-space:nowrap}.game-stage-2d .game-info-header .current-turn-info .current-player .waiting-player{font-size:16px;color:#ccc;font-style:italic;padding:0 10px}.game-stage-2d .table-area{position:absolute;z-index:1}.game-stage-2d .players-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.game-stage-2d .players-layer>*{pointer-events:auto}.game-stage-2d .hand-cards-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.game-stage-2d .hand-cards-layer>*{pointer-events:auto}.flying-target-card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:60px;height:84px;background:#e0e0e0;border-radius:6px;display:flex;justify-content:center;align-items:center;font-size:36px;font-weight:700;color:#333;box-shadow:0 0 30px #ffd700cc;border:3px solid #ffd700;z-index:1000;pointer-events:none;animation:flyAndScale 1.5s cubic-bezier(.22,1,.36,1) forwards}.flying-target-card.card-A{color:#d32f2f}.flying-target-card.card-K{color:#1976d2}.flying-target-card.card-Q{color:#7b1fa2}.flying-target-card.card-J{color:#388e3c}@keyframes flyAndScale{0%{top:50%;left:50%;transform:translate(-50%,-50%) scale(0) rotate(-180deg);opacity:0}20%{top:50%;left:50%;transform:translate(-50%,-50%) scale(2.5) rotate(0);opacity:1}50%{top:50%;left:50%;transform:translate(-50%,-50%) scale(2.5) rotate(0);opacity:1}to{top:60px;left:calc(100% - 60px);transform:translate(-50%,-50%) scale(1) rotate(360deg);opacity:0}}@media(max-width:1100px)and (orientation:landscape){.flying-target-card{animation-name:flyAndScaleMobile}}@keyframes flyAndScaleMobile{0%{top:50%;left:50%;transform:translate(-50%,-50%) scale(0) rotate(-180deg);opacity:0}20%{top:50%;left:50%;transform:translate(-50%,-50%) scale(1.5) rotate(0);opacity:1}50%{top:50%;left:50%;transform:translate(-50%,-50%) scale(1.5) rotate(0);opacity:1}to{top:5vh;left:90vw;transform:translate(-50%,-50%) scale(.5) rotate(360deg);opacity:0}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}to{transform:scale(1);opacity:1}}@media(max-width:768px){.game-stage-2d .game-info-header{width:95%;padding:10px 15px;flex-direction:column;gap:10px}.game-stage-2d .game-info-header .game-round-info{align-items:center}.game-stage-2d .game-info-header .game-round-info .round-number{font-size:16px}.game-stage-2d .game-info-header .game-round-info .target-card{font-size:12px}.game-stage-2d .game-info-header .current-turn-info .turn-label{font-size:14px}.game-stage-2d .game-info-header .current-turn-info .current-player{padding:6px 12px}.game-stage-2d .game-info-header .current-turn-info .current-player .player-name{font-size:14px}.game-stage-2d .game-info-header .current-turn-info .current-player .your-turn-badge{font-size:10px;padding:2px 6px}}@media(max-width:1100px)and (orientation:landscape){.game-stage-2d .game-info-header .game-round-info{top:2vh;right:2vw;padding:1vh 2vw;gap:.5vh;border-radius:1.5vh}.game-stage-2d .game-info-header .game-round-info .round-number{font-size:3vh}.game-stage-2d .game-info-header .game-round-info .target-card-display{padding:.5vh 1vw;border-radius:1vh;gap:1vw}.game-stage-2d .game-info-header .game-round-info .target-card-display .label{font-size:2vh}.game-stage-2d .game-info-header .game-round-info .target-card-display .target-card-visual{width:4vh;height:5.6vh;font-size:3vh;border-width:.3vh;border-radius:.5vh}.game-stage-2d .game-info-header .current-turn-info{top:2vh;padding:.5vh 2vw .5vh .5vh;border-radius:4vh;gap:1vw}.game-stage-2d .game-info-header .current-turn-info .current-player{gap:1vw}.game-stage-2d .game-info-header .current-turn-info .current-player .player-avatar-small{width:5vh;height:5vh;border-width:.3vh}.game-stage-2d .game-info-header .current-turn-info .current-player .player-name{font-size:2.5vh}.game-stage-2d .game-info-header .current-turn-info .current-player .your-turn-badge{font-size:1.8vh;padding:.4vh 1.5vw;border-radius:2vh}}.turn-around-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#1a1a1a;z-index:9999;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;touch-action:none}.turn-around-overlay .phone-icon{width:60px;height:100px;border:4px solid #fff;border-radius:10px;position:relative;animation:rotate-phone 2s infinite ease-in-out;margin-bottom:30px}.turn-around-overlay .phone-icon:before{content:"";position:absolute;top:5px;left:50%;transform:translate(-50%);width:20px;height:4px;background-color:#fff;border-radius:2px}.turn-around-overlay .phone-icon:after{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:8px;height:8px;background-color:#fff;border-radius:50%}.turn-around-overlay .message{font-size:18px;font-weight:500;text-align:center;padding:0 20px}.turn-around-overlay .message p{margin:5px 0;color:#ccc;font-size:14px}@keyframes rotate-phone{0%{transform:rotate(0)}25%{transform:rotate(90deg)}75%{transform:rotate(90deg)}to{transform:rotate(0)}}
