

        /* 游戏风格登录弹窗覆盖层 */
        .game-popup-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.85);
            z-index: 9998;
            justify-content: center;
            align-items: center;
        }
        .game-popup-dialog {
            position: relative;
            width: 85%;
            max-width: 460px;
            aspect-ratio: 480 / 220;
            --game-popup-art: url(/assets/img/game-popup-bg.png?v=20260920);
            background: var(--game-popup-art) no-repeat center;
            background-size: 100% 100%;
        }
        /* 弹窗标题：白色文字，内容与字号由用户自行设置 */
        .game-popup-title {
            position: absolute;
            left: 0;
            right: 0;
            top: 24.3%;                              /* 与原图标题的垂直中心对齐 */
            transform: translateY(-50%);
            padding: 0 6%;
            text-align: center;
            color: #fff;
            font-weight: 800;
            line-height: 1.15;
            letter-spacing: 0.02em;
            word-break: break-word;
            text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
            pointer-events: none;
            z-index: 3;
            /* 字号随弹窗宽度等比缩放：弹窗宽 = min(85vw, 460px)，460px 时等于设置值 */
            font-size: min(calc(var(--gp-title-size, 36) * 0.184783vw), calc(var(--gp-title-size, 36) * 1px));
        }
        .game-popup-close {
            position: absolute;
            top: 6px;
            right: 8px;
            width: 32px;
            height: 32px;
            cursor: pointer;
        }
        .game-popup-btn-wrap {
            position: absolute;
            bottom: 30px;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            gap: 16px;
        }
        .game-popup-btn {
             width: 126px;
             height: auto;
             cursor: pointer;
         }

         .game-popup-btn.disabled {
             pointer-events: none;
             opacity: 0.5;
         }

         .game-popup-loading-cover {
             display: none;
             position: absolute;
             top: 0;
             left: 0;
             width: 100%;
             height: 100%;
             background: transparent;
             border-radius: inherit;
             z-index: 10;
             flex-direction: column;
             justify-content: center;
             align-items: center;
         }
         /* 加载暗色只压在图案不透明的像素上，抠掉的区域保持透明（原来整块矩形压黑，会露黑块） */
         .game-popup-loading-cover::before {
             content: '';
             position: absolute;
             inset: 0;
             border-radius: inherit;
             pointer-events: none;
         }
         @supports (mask-image: url(x)) or (-webkit-mask-image: url(x)) {
             .game-popup-loading-cover::before {
                 background: rgba(0, 0, 0, 0.62);
                 -webkit-mask-image: var(--game-popup-art);
                         mask-image: var(--game-popup-art);
                 -webkit-mask-size: 100% 100%;
                         mask-size: 100% 100%;
                 -webkit-mask-repeat: no-repeat;
                         mask-repeat: no-repeat;
             }
         }
         .game-popup-loading-cover > * {
             position: relative;
             z-index: 1;
         }
         /* 扫码登录：二维码白底卡片（尺寸由 JS 内联控制）。禁止被 flex 压缩，否则窄屏下卡片会被挤扁 */
         .game-popup-loading-cover .qq-qr-card {
             flex: 0 0 auto;
         }

         .game-popup-loading-spinner {
             width: 36px;
             height: 36px;
             border: 3px solid rgba(255, 255, 255, 0.3);
             border-top-color: #fff;
             border-radius: 50%;
             animation: gp-spin 0.8s linear infinite;
         }

         @keyframes gp-spin {
             0% { transform: rotate(0deg); }
             100% { transform: rotate(360deg); }
         }

         .game-popup-loading-text {
             margin-top: 10px;
             font-size: 13px;
             color: #fff;
             font-weight: 500;
             letter-spacing: 0.5px;
         }