/* 设计稿基准 750 x 1624 — 素材 assets/yxy/ */
@font-face {
    font-family: "GameFi";
    src: url("assets/gamefi/Baloo_2/static/Baloo2-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --design-w: 750;
    --design-h: 1624;
    --shell-scale: 1;
    --z-shell-bg: 8;
    --z-canvas: 10;
    --z-shell-ui: 20;
    --z-modal: 950;
    --z-wallet-login: 960;
    --z-loading: 1000;
    --z-toast: 1020;
    --gold-text: #412607;
    --header-bg-top: #fdf7dd;
    --header-label: #412607;
    --header-value: #412607;
    --header-balance: #9a7230;
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: #efd88c;
}

body {
    position: relative !important;
    display: block !important;
}

#shell-viewport {
    position: fixed;
    inset: 0;
    overflow: hidden;
    /* 主题背景由 #game-shell-bg 提供；UI 在 #game-shell（透明，仅按钮可点） */
    background-color: #efd88c;
}

body.game-boot-loading #shell-viewport {
    visibility: hidden;
    pointer-events: none;
}

body.game-boot-ready #shell-viewport {
    visibility: visible;
}

#game-boot-loader {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #fff5c9 0%, #efd88c 100%);
    transition: opacity 0.32s ease, visibility 0.32s ease;
}

body.game-boot-ready #game-boot-loader {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.game-boot-card {
    width: min(560px, calc(100vw - 96px));
    padding: 44px 42px 40px;
    border-radius: 36px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 18px 44px rgba(122, 91, 23, 0.16);
    box-sizing: border-box;
}

.game-boot-title {
    margin-bottom: 26px;
    font-family: "GameFi", Arial, sans-serif;
    font-size: 36px;
    line-height: 1;
    color: #412607;
    text-align: center;
}

.game-boot-track {
    width: 100%;
    height: 22px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(154, 114, 48, 0.18);
}

.game-boot-bar {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f2a91d 0%, #ffe267 52%, #ffb21a 100%);
    transition: width 0.18s ease;
}

.game-boot-percent {
    margin-top: 18px;
    font-family: "GameFi", Arial, sans-serif;
    font-size: 26px;
    color: #8b6117;
    text-align: center;
}

#shell-viewport button,
#shell-viewport a[href],
#shell-viewport [role="button"] {
    touch-action: manipulation;
}

body.shell-modal-open #game-shell .nav-btn,
body.shell-modal-open #game-shell .claim-btn,
body.shell-modal-open #game-shell .shell-whatsapp-btn,
body.shell-modal-open #game-shell .shell-guide-btn {
    pointer-events: none !important;
}

/* 背景装饰层：在画布之下 */
#game-shell-bg {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    overflow: hidden;
    pointer-events: none;
    z-index: 8;
    background-image: url("assets/yxy/bg.png");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    contain: strict;
}

/* UI 层：透明，不挡游戏画布；按钮 pointer-events: auto */
#game-shell {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    overflow: hidden;
    pointer-events: none;
    z-index: var(--z-shell-ui);
    background: transparent;
}

/* 游戏画布：位置由 ui-shell.js 通过 CSS 变量设置 */
#canvasDiv {
    position: fixed;
    left: var(--canvas-left, 0);
    top: var(--canvas-top, 0);
    width: var(--canvas-width, 720px);
    height: var(--canvas-height, 1160px);
    z-index: var(--z-canvas);
    pointer-events: auto;
    background: transparent;
    transform: none;
    overflow: hidden;
}

#canvasDiv canvas,
#GameCanvas {
    background: transparent !important;
    display: block;
    width: 100% !important;
    height: 100% !important;
}

#block-Box {
    display: none !important;
}

/* 底部底座装饰（assets/bottom.png）：层级在画布之下，金币叠在底座上方 */
.shell-bottom-base {
    position: fixed;
    left: var(--shell-bottom-left, 0);
    bottom: calc(var(--safe-bottom, 0px) + var(--shell-bottom-inset, 0px));
    top: auto;
    width: var(--shell-bottom-width, 750px);
    height: var(--shell-bottom-height, 160px);
    z-index: 8;
    pointer-events: none;
    display: block;
    object-fit: fill;
    object-position: center bottom;
    user-select: none;
    -webkit-user-drag: none;
}

#Cocos2dGameContainer {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    display: block !important;
    -webkit-box-align: unset !important;
    -webkit-box-pack: unset !important;
}

/* 底部控制栏 */
.shell-footer {
    position: absolute;
    left: 0;
    bottom: 28px;
    width: 750px;
    height: 96px;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    box-sizing: border-box;
    pointer-events: none;
}

.footer-btn {
    position: relative;
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    cursor: pointer;
    pointer-events: auto;
    touch-action: manipulation;
    height: 96px;
    flex-shrink: 0;
}

.footer-btn img {
    display: block;
    height: 96px;
    width: auto;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.footer-btn.music {
    width: 182px;
}

.footer-btn.tip {
    width: 294px;
}

.footer-btn.pause {
    width: 186px;
}

.footer-label {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-weight: 700;
    pointer-events: none;
    white-space: nowrap;
}

.footer-btn.music .footer-label {
    left: 88px;
    font-size: 22px;
    letter-spacing: 0.2px;
}

.footer-btn.tip .footer-label {
    left: 72px;
    font-size: 17px;
    line-height: 1.25;
    white-space: normal;
    width: 200px;
}

.footer-btn.pause .footer-label {
    left: 88px;
    font-size: 22px;
}

#loadingText,
#loadingImg {
    display: none !important;
}

/* 顶部信息栏 — 设计稿 750 坐标系 */
.shell-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 750px;
    height: 460px;
    z-index: 25;
    pointer-events: none;
}

.header-bg-slice {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

.header-bg-slice img {
    display: block;
    width: 750px;
    height: 1624px;
    object-fit: none;
    object-position: 0 0;
}

.profile-card {
    position: absolute;
    left: 16px;
    top: 16px;
    width: 718px;
    height: 128px;
    z-index: 2;
    filter: drop-shadow(0 8px 18px rgba(196, 150, 60, 0.16));
}

.profile-card .card-frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.profile-inner {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    padding: 20px;
    box-sizing: border-box;
}

.profile-left {
    grid-column: 1;
    justify-self: start;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.profile-inner .avatar {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.profile-meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.profile-score-wrap {
    grid-column: 2;
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    pointer-events: none;
}

.username {
    color: var(--header-value);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.balance-badge {
    position: relative;
    width: 141px;
    height: 37px;
}

.balance-badge .badge-bg {
    display: block;
    width: 100%;
    height: 100%;
}

.balance-badge .badge-text {
    position: absolute;
    left: 44px;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--header-balance);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 120px;
    text-align: center;
}

.stat-score {
    flex: 0 0 auto;
}

.stat-divider {
    width: 1px;
    height: 56px;
    background: rgba(160, 136, 88, 0.35);
    flex-shrink: 0;
}

.stat-label {
    color: var(--header-label);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.6px;
    line-height: 1;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 100%;
}

.stat-label img {
    height: 26px;
    object-fit: cover;
    flex-shrink: 0;
}

.stat-value {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    color: var(--header-value);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.claim-btn {
    grid-column: 3;
    justify-self: end;
    position: relative;
    border: none;
    background: transparent;
    padding: 0;
    width: 112px;
    height: 88px;
    cursor: pointer;
    pointer-events: auto;
    touch-action: manipulation;
    z-index: 2;
}

.claim-btn img {
    display: block;
    width: 100%;
    height: 100%;
}

.claim-btn span {
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    color: var(--header-value);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    pointer-events: none;
    white-space: nowrap;
}

.nav-row {
    position: absolute;
    left: auto;
    right: 16px;
    top: 154px;
    width: auto;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0;
    box-sizing: border-box;
    pointer-events: none;
}

.nav-btn {
    position: relative;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    border: none;
    background: transparent;
    padding: 6px 16px;
    box-sizing: border-box;
    height: 72px;
    width: auto;
    flex: 0 0 auto;
    cursor: pointer;
    pointer-events: auto;
    touch-action: manipulation;
}

.nav-btn-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    z-index: 0;
}

.nav-btn-icon {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    height: 28px;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.nav-btn>span {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.2px;
    pointer-events: none;
    white-space: nowrap;
}

.nav-energy {
    overflow: visible;
}

.nav-energy .nav-energy-icon {
    height: 40px;
    object-fit: cover;
}

.nav-energy-mult {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.2px;
    pointer-events: none;
    white-space: nowrap;
}

.shell-whatsapp-btn {
    position: absolute;
    right: 24px;
    top: 230px;
    z-index: 3;
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 18px;
    box-shadow: 0 6px 14px rgba(196, 150, 60, 0.16);
    pointer-events: auto;
    touch-action: manipulation;
    padding: 12px;
    box-sizing: border-box;
    cursor: pointer;
    background-clip: text;
}

.shell-whatsapp-btn img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.shell-guide-btn {
    position: absolute;
    right: 104px;
    top: 232px;
    z-index: 3;
    height: 72px;
    padding: 6px 24px;
    pointer-events: auto;
}

.shell-guide-btn .shell-guide-icon {
    height: 32px;
    width: auto;
    object-fit: contain;
}

/* 游戏区内 Great Merge 分数 — 对齐设计稿图三 */
.game-score-badge {
    position: absolute;
    left: 50%;
    top: 430px;
    transform: translateX(-50%);
    z-index: 22;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 220px;
    pointer-events: none;
    filter: drop-shadow(0 2px 6px rgba(255, 255, 255, 0.35));
}

.game-score-star {
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    object-fit: contain;
}

.game-score-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.game-score-title {
    color: #e07a18;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 30px;
    font-weight: 800;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0.2px;
}

.game-score-value {
    color: #3a2208;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 40px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.5px;
}

/* ── Game Over / SUMMARY（assets/yxjs，设计稿 750×1624）── */
.game-over-layer[hidden] {
    display: none !important;
}

.game-over-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.game-over-layer:not([hidden]) {
    pointer-events: auto;
}

.go-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: auto;
}

.game-over-panel {
    position: absolute;
    left: 40px;
    top: 348px;
    width: 670px;
    height: 836px;
    z-index: 1;
    overflow: visible;
}

.go-panel-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.go-close-btn {
    position: absolute;
    top: 150px;
    right: -20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 4;
    pointer-events: auto;
}

.go-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.go-score-caption {
    position: absolute;
    left: 0;
    right: 0;
    top: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    pointer-events: none;
}

.go-score-caption-line {
    width: 150px;
    height: 2px;
    border-radius: 1px;
    flex-shrink: 0;
    background: linear-gradient(90deg, rgba(205, 93, 0, 0) 0%, #cd5d00 100%);
}

.go-score-caption-line.is-reverse {
    background: linear-gradient(270deg, rgba(205, 93, 0, 0) 0%, #cd5d00 100%);
}

.go-score-caption-text {
    color: #cd5d00;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    text-transform: uppercase;
}

.go-gradient-text {
    position: relative;
    display: inline-block;
    font-family: "GameFi", "Baloo 2", sans-serif;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.go-gradient-text-stroke {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    z-index: 0;
    color: transparent;
    white-space: nowrap;
    pointer-events: none;
}

.go-main-score .go-gradient-text-stroke,
.reward-main-val .go-gradient-text-stroke,
.withdraw-main-val .go-gradient-text-stroke,
.claim-main-val .go-gradient-text-stroke,
.cd-main-val .go-gradient-text-stroke,
.ws-main-val .go-gradient-text-stroke {
    -webkit-text-stroke: 12px #ffffff;
}

.go-stat-delta .go-gradient-text-stroke {
    -webkit-text-stroke: 6px #ffffff;
}

.go-gradient-text-fill {
    position: relative;
    z-index: 1;
    background: linear-gradient(180deg, #fbb346 0%, #ed8729 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    white-space: nowrap;
}

.go-main-score {
    position: absolute;
    left: 0;
    right: 0;
    top: 342px;
    text-align: center;
    font-size: 110px;
    line-height: 1;
    letter-spacing: -1px;
    pointer-events: none;
}

.go-stats-box {
    position: absolute;
    left: 32px;
    top: 464px;
    width: 606px;
    height: 146px;
}

.go-stats-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.go-stat-row {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0 40px;
    box-sizing: border-box;
}

.go-stat-brand {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    flex: 0 0 auto;
}

.go-stat-coin {
    width: 48px;
    height: 48px;
    object-fit: contain;
    flex-shrink: 0;
    pointer-events: none;
}

.go-stat-label {
    color: #3a2208;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    letter-spacing: 0.8px;
    line-height: 1;
    text-align: left;
    text-transform: uppercase;
    text-shadow: none;
    white-space: nowrap;
}

.go-stat-score-side,
.go-stat-line {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 10px;
    flex: 0 0 auto;
    margin-left: auto;
    text-align: right;
}

.go-stat-val {
    color: #3a2208;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 36px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2px;
    text-shadow: none;
    display: inline-flex;
    align-items: baseline;
}

.go-odo-digit {
    display: inline-block;
    min-width: 0.58em;
    text-align: center;
    overflow: hidden;
    height: 1em;
    line-height: 1;
    vertical-align: bottom;
}

.go-odo-face {
    display: block;
}

.go-odo-digit.is-changing .go-odo-face {
    animation: goDigitRoll 0.11s linear infinite;
    filter: blur(2px);
}

.go-odo-comma {
    display: inline-block;
    min-width: 0.28em;
    text-align: center;
}

@keyframes goDigitRoll {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-75%);
    }
}

.go-stat-delta {
    font-size: 32px;
    line-height: 1;
    opacity: 0;
    transform: translateY(8px) scale(0.94);
    transition:
        opacity 0.45s ease,
        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.go-stat-delta.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.go-actions {
    position: absolute;
    left: 50%;
    bottom: 82px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    z-index: 3;
}

.go-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
    box-sizing: border-box;
    pointer-events: auto;
    overflow: hidden;
    padding-bottom: 10px;
}

.go-btn-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.go-btn-content {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 100%;
    padding: 0 18px;
    box-sizing: border-box;
    white-space: nowrap;
    pointer-events: none;
}

.go-btn-icon {
    width: 44px;
    height: 44px;
    object-fit: contain;
    flex-shrink: 0;
    pointer-events: none;
}

.go-btn-content>span {
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    pointer-events: none;
}

.go-btn-home {
    width: 271px;
    height: 109px;
}

.go-btn-home .go-btn-content>span {
    color: var(--gold-text);
}

.go-btn-play {
    width: 323px;
    height: 109px;
}

.go-btn-play .go-btn-content>span {
    color: #ffffff;
    text-shadow: 0 2px 0 rgba(140, 55, 0, 0.35);
}

/* ── Reward 弹窗（assets/jjhtx，设计稿 750×1624）── */
.reward-layer[hidden] {
    display: none !important;
}

.reward-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.reward-layer.is-open {
    pointer-events: auto;
}

.reward-backdrop {
    position: absolute;
    inset: 0;
    z-index: 1;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.38);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.reward-layer.is-open .reward-backdrop {
    opacity: 1;
}

.reward-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 920px;
    z-index: 2;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.reward-layer.is-open .reward-sheet {
    transform: translateY(0);
}

.reward-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.reward-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.reward-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 0 6px;
    box-sizing: border-box;
}

.reward-header-art {
    position: relative;
    height: 160px;
    object-fit: cover;
    object-position: center top;
    flex-shrink: 0;
    pointer-events: none;
}

.shell-panel-subtitle {
    position: absolute;
    left: 230px;
    bottom: 40px;
    flex-shrink: 0;
    width: 100%;
    padding: 0 40px;
    box-sizing: border-box;
    text-align: left;
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.1px;
    pointer-events: none;
}

.reward-header .shell-panel-subtitle,
.invite-header .shell-panel-subtitle,
.rank-header .shell-panel-subtitle,
.settings-header .shell-panel-subtitle {
    margin-top: 2px;
}

.language-header,
.rules-header {
    align-items: flex-start;
    padding: 38px 96px 6px 20px;
}

.language-header-art,
.rules-header-art {
    width: 520px;
    height: 118px;
    object-fit: contain;
    object-position: left top;
}

.language-header .shell-panel-subtitle,
.rules-header .shell-panel-subtitle {
    position: relative;
    left: 120px;
    bottom: 26px;
    width: 520px;
    max-width: calc(100% - 120px);
    margin-top: -2px;
    padding: 0;
    text-align: left;
}

.reward-close-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 30;
    pointer-events: auto;
    touch-action: manipulation;
}

.reward-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.reward-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    pointer-events: none;
}

.reward-caption {
    flex-shrink: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    pointer-events: none;
}

.reward-caption-line {
    width: 150px;
    height: 2px;
    border-radius: 1px;
    flex-shrink: 0;
    background: linear-gradient(90deg, rgba(205, 93, 0, 0) 0%, #cd5d00 100%);
}

.reward-caption-line.is-reverse {
    background: linear-gradient(270deg, rgba(205, 93, 0, 0) 0%, #cd5d00 100%);
}

.reward-caption-text {
    color: #cd5d00;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    /* text-transform: uppercase; */
}

.reward-main-val {
    flex-shrink: 0;
    width: 100%;
    margin-top: 10px;
    text-align: center;
    font-size: 84px;
    line-height: 1;
    letter-spacing: -1px;
    pointer-events: none;
}

.reward-list-shell {
    position: relative;
    flex: 1;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.reward-list {
    flex: 1;
    min-height: 0;
    width: 686px;
    max-width: calc(100% - 64px);
    margin: 12px auto 0;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0 0 20px;
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
}

.reward-list::-webkit-scrollbar {
    width: 4px;
}

.reward-list::-webkit-scrollbar-thumb {
    background: rgba(107, 74, 26, 0.35);
    border-radius: 4px;
}

.reward-list-empty {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 686px;
    max-width: calc(100% - 64px);
    margin: 12px auto 0;
    min-height: 200px;
    padding: 32px 24px;
    box-sizing: border-box;
    color: rgba(65, 38, 7, 0.5);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
}

.reward-row {
    position: relative;
    width: 100%;
    height: 144px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 32px;
    box-sizing: border-box;
    overflow: hidden;
}

.reward-row-bg {
    display: none;
}

.reward-row-icon {
    position: relative;
    z-index: 1;
    height: 90px;
    object-fit: cover;
    flex-shrink: 0;
    pointer-events: none;
}

.reward-row-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: 0;
    text-align: left;
    pointer-events: none;
}

.reward-row-game {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 6px;
}

.reward-row-score {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.1;
}

.reward-row-prize {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    pointer-events: none;
}

.reward-row-prize img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    flex-shrink: 0;
}

.reward-row-prize span {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

/* ── Claim 弹窗（assets/jjhtx）── */
.claim-layer[hidden] {
    display: none !important;
}

.claim-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.claim-layer.is-open {
    pointer-events: auto;
}

.claim-layer:not(.is-open) .claim-backdrop,
.claim-layer:not(.is-open) .claim-sheet {
    pointer-events: none !important;
}

.claim-backdrop {
    position: absolute;
    inset: 0;
    z-index: 1;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.38);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.claim-layer.is-open .claim-backdrop {
    opacity: 1;
}

.claim-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    z-index: 2;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.claim-layer.is-open .claim-sheet {
    transform: translateY(0);
}

.claim-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.claim-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.claim-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 4;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 0 6px;
    box-sizing: border-box;
}

.claim-header-art {
    position: relative;
    height: 160px;
    object-fit: cover;
    object-position: center top;
    flex-shrink: 0;
    pointer-events: none;
}

.claim-header .shell-panel-subtitle {
    margin-top: 2px;
}

.claim-close-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    pointer-events: auto;
}

.claim-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.claim-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    pointer-events: none;
}

.claim-body .reward-caption {
    flex-shrink: 0;
    width: 100%;
    margin-top: 8px;
}

.claim-main-val {
    flex-shrink: 0;
    width: 100%;
    margin-top: 14px;
    text-align: center;
    font-size: 84px;
    line-height: 1;
    letter-spacing: -1px;
    pointer-events: none;
}

.claim-body .withdraw-sol-badge {
    flex-shrink: 0;
    border: 1px solid #ffffff50;
}

.claim-cards {
    flex-shrink: 0;
    width: 100%;
    margin-top: 18px;
    padding: 0 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    pointer-events: auto;
}

.claim-card {
    position: relative;
    width: 686px;
    height: 136px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    padding: 12px 24px;
    box-sizing: border-box;
    border-radius: 20px;
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: hidden;
}

.claim-card-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.claim-card-icon {
    position: relative;
    z-index: 1;
    width: 80px;
    height: 80px;
    object-fit: contain;
    flex-shrink: 0;
    pointer-events: none;
}

.claim-card-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin: 0 12px;
    pointer-events: none;
    text-align-last: left;
}

.claim-card-title {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 6px;
}

.claim-card-desc {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
    word-break: break-all;
}

.claim-mini-btn {
    position: relative;
    z-index: 1;
    width: 199px;
    height: 69px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    pointer-events: auto;
    display: block;
}

.claim-mini-btn-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.claim-mini-btn-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -52%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 17px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
    padding-bottom: 6px;
}

.claim-mini-btn-content img {
    height: 32px;
    object-fit: cover;
    flex-shrink: 0;
}

.claim-footer-wrap {
    position: relative;
    flex-shrink: 0;
    width: 100%;
    min-height: 170px;
    margin-top: 32px;
    padding: 0 32px 20px;
    box-sizing: border-box;
    pointer-events: auto;
}

.claim-footer-bg {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 170px;
    object-fit: fill;
    pointer-events: none;
}

.claim-footer {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    width: 100%;
    min-height: 170px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
    pointer-events: auto;
}

.claim-chest {
    height: 190px;
    object-fit: cover;
    object-position: left bottom;
    flex-shrink: 0;
    pointer-events: none;
    margin-left: -8px;
}

.claim-connect-btn {
    position: relative;
    width: 389px;
    height: 109px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    margin-left: auto;
    pointer-events: auto;
    display: block;
    margin-top: 50px;
}

.claim-connect-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.claim-connect-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -52%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
}

.claim-connect-content img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

/* ── 正式服提现页（assets/zsftx）── */
.withdraw-layer {
    overflow: hidden;
}

.withdraw-layer.is-open {
    pointer-events: auto;
}

.withdraw-page {
    --withdraw-inset: 32px;
    --withdraw-content-width: 686px;
    position: absolute;
    inset: 0;
    width: 750px;
    /* 高度跟随外层（由 JS 设为视口高度），使滚动区 flex:1 贴合可视区域 */
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.32s ease, transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
}

.withdraw-layer.is-open .withdraw-page {
    opacity: 1;
    transform: translateX(0);
}

.withdraw-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    pointer-events: none;
    z-index: 0;
}

.withdraw-nav {
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 88px;
    padding: 0 var(--withdraw-inset);
    box-sizing: border-box;
    pointer-events: none;
}

.withdraw-back-btn {
    position: absolute;
    left: var(--withdraw-inset);
    top: 50%;
    transform: translateY(-50%);
    width: 64px;
    height: 64px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
}

.withdraw-back-btn img {
    width: 64px;
    height: 64px;
    display: block;
    pointer-events: none;
}

.withdraw-title {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 36px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.1px;
    pointer-events: none;
}

.withdraw-scroll {
    position: relative;
    z-index: 1;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
}

.withdraw-main {
    width: var(--withdraw-content-width);
    max-width: calc(100% - var(--withdraw-inset) * 2);
    margin: 0 auto;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
}

.withdraw-reward-block {
    text-align: center;
    padding-top: 8px;
    flex-shrink: 0;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.withdraw-reward-block .reward-caption {
    width: 100%;
}

.withdraw-main-val {
    margin-top: 14px;
    text-align: center;
    font-size: 84px;
    line-height: 1;
    letter-spacing: -1px;
    pointer-events: none;
}

.withdraw-sol-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding: 8px 16px;
    border-radius: 999px;
    background: linear-gradient(180deg, #FFD57B 0%, #FFD375 100%);
    border: 1px solid #ffffff50;
}

.withdraw-sol-text {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.withdraw-sol-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 12px;
    border-radius: 999px;
}

.withdraw-sol-icon {
    height: 28px;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}

.withdraw-light-card {
    width: 100%;
    margin: 18px auto 0;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255, 248, 220, 0.96) 0%, rgba(255, 236, 188, 0.92) 100%);
    border: 1px solid rgba(255, 204, 128, 0.55);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        0 2px 8px rgba(170, 120, 50, 0.08);
    box-sizing: border-box;
}

.withdraw-form {
    width: 100%;
    margin: 32px 0 0;
    flex-shrink: 0;
    overflow: hidden;
}

.withdraw-section-title {
    width: 100%;
    margin: 0 0 12px;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.2;
    text-align: left;
    box-sizing: border-box;
}

.withdraw-history .withdraw-section-title {
    margin-bottom: 16px;
    flex-shrink: 0;
}

.withdraw-card-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.shell-list-row-bg,
.withdraw-history-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.withdraw-account-card {
    position: relative;
    width: 100%;
    height: 144px;
    display: flex;
    align-items: center;
    padding: 0 32px;
    box-sizing: border-box;
    pointer-events: none;
}

.withdraw-account-icon {
    position: relative;
    z-index: 1;
    height: 100px;
    object-fit: cover;
    flex-shrink: 0;
    pointer-events: none;
}

.withdraw-account-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
    gap: 3px;
}

.withdraw-account-title {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 6px;
}

.withdraw-account-addr {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.2px;
}

.withdraw-amount-card {
    position: relative;
    width: 100%;
    height: 144px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-top: 12px;
    padding: 0 32px;
    box-sizing: border-box;
    pointer-events: auto;
}

.withdraw-amount-field {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
}

.withdraw-amount-prefix {
    flex-shrink: 0;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 40px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.3px;
    margin-right: 8px;
    pointer-events: none;
    user-select: none;
}

.withdraw-amount-input {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    width: 100%;
    border: none;
    background: transparent;
    outline: none;
    text-align: left;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 40px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.3px;
    padding: 0;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
}

.withdraw-amount-input::placeholder {
    color: rgba(65, 38, 7, 0.45);
}

.withdraw-pct-row {
    width: 100%;
    margin: 12px 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    box-sizing: border-box;
    pointer-events: auto;
}

.withdraw-pct-btn {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    height: 97px;
    padding: 0;
    border: none;
    background: transparent;
    border-radius: 20px;
    cursor: pointer;
    overflow: hidden;
    pointer-events: auto;
    touch-action: manipulation;
}

.withdraw-pct-btn.is-active {
    height: 97px;
    border-radius: 0;
}

.withdraw-pct-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.withdraw-pct-btn span {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

.withdraw-pct-btn.is-active span {
    color: #ffffff;
    font-weight: 800;
    text-shadow: 0 2px 0 rgba(140, 55, 0, 0.35);
}

.withdraw-receive-row {
    width: 100%;
    margin: 14px 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
    pointer-events: none;
}

.withdraw-receive-row span:last-child {
    font-weight: 800;
    font-size: 26px;
}

.withdraw-submit-btn {
    position: relative;
    display: block;
    width: 611px;
    height: 117px;
    margin: 16px auto 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
}

.withdraw-submit-btn:disabled {
    cursor: not-allowed;
    opacity: 0.72;
    pointer-events: none;
}

.withdraw-submit-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.withdraw-submit-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 2px 0 rgba(140, 55, 0, 0.35);
    pointer-events: none;
}

.withdraw-submit-content img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.withdraw-history {
    width: 100%;
    margin: 32px 0 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    pointer-events: auto;
}

.withdraw-history-list {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 40px;
    box-sizing: border-box;
}

.withdraw-history-empty {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 160px;
    padding: 32px 24px;
    color: rgba(65, 38, 7, 0.5);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
}

.withdraw-history-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    height: 144px;
    flex-shrink: 0;
    padding: 16px 32px;
    box-sizing: border-box;
    overflow: hidden;
}

.withdraw-history-icon {
    position: relative;
    z-index: 1;
    width: 80px;
    height: 80px;
    object-fit: contain;
    flex-shrink: 0;
}

.withdraw-history-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: 0;
    text-align: left;
}

.withdraw-history-account {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.15;
}

.withdraw-history-date {
    margin-top: 6px;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
}

.withdraw-history-side {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
    flex-shrink: 0;
}

.withdraw-history-amount {
    position: relative;
    z-index: 1;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
}

.withdraw-history-status {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
}

/* ── Invite 弹窗（assets/sgrk + jjhtx）── */
.invite-layer[hidden] {
    display: none !important;
}

.invite-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.invite-layer.is-open {
    pointer-events: auto;
}

.invite-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.38);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.invite-layer.is-open .invite-backdrop {
    opacity: 1;
}

.invite-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 920px;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.invite-layer.is-open .invite-sheet {
    transform: translateY(0);
}

.invite-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.invite-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.invite-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 0 6px;
    box-sizing: border-box;
}

.invite-header-art {
    position: relative;
    height: 160px;
    object-fit: cover;
    object-position: center top;
    flex-shrink: 0;
    pointer-events: none;
}

.invite-close-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    pointer-events: auto;
}

.invite-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.invite-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    pointer-events: none;
}

.invite-list {
    flex: 1;
    min-height: 0;
    width: 100%;
    margin-top: 12px;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0 32px 12px;
    box-sizing: border-box;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
}

.invite-list-empty {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 200px;
    padding: 32px 24px;
    color: rgba(65, 38, 7, 0.5);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
}

.invite-list::-webkit-scrollbar {
    width: 4px;
}

.invite-list::-webkit-scrollbar-thumb {
    background: rgba(107, 74, 26, 0.35);
    border-radius: 4px;
}

.invite-row {
    position: relative;
    width: 100%;
    height: 144px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 32px;
    box-sizing: border-box;
    overflow: hidden;
}

.invite-row-avatar {
    position: relative;
    z-index: 1;
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    flex-shrink: 0;
    pointer-events: none;
    background: #f3d4c8;
}

.invite-row-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: 0;
    text-align: left;
    pointer-events: none;
}

.invite-row-name {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 8px;
}

.invite-row-time {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.1;
}

.invite-row-reward {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
    flex-shrink: 0;
    pointer-events: none;
}

.invite-row-amount {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.invite-row-amount img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

.invite-row-amount span {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.invite-row-bonus {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.invite-row-bonus img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    flex-shrink: 0;
}

.invite-row-bonus span {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.invite-footer-wrap {
    position: relative;
    flex-shrink: 0;
    width: 100%;
    min-height: 170px;
    padding: 0 32px 20px;
    box-sizing: border-box;
    pointer-events: auto;
}

.invite-footer-bg {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 170px;
    object-fit: fill;
    pointer-events: none;
}

.invite-footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 170px;
    padding: 0 4px;
    box-sizing: border-box;
}

.invite-footer-text {
    flex: 1;
    min-width: 0;
    margin: 0;
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 700;
    pointer-events: none;
    text-align-last: left;
}

.invite-action-btn {
    position: relative;
    width: 207px;
    height: 85px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    pointer-events: auto;
    display: block;
}

.invite-action-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.invite-action-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -52%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
}

.invite-action-content img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
}

/* ── Rank 弹窗（assets/sgrk + jjhtx）── */
.rank-layer[hidden] {
    display: none !important;
}

.rank-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.rank-layer.is-open {
    pointer-events: auto;
}

.rank-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.38);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.rank-layer.is-open .rank-backdrop {
    opacity: 1;
}

.rank-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 920px;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.rank-layer.is-open .rank-sheet {
    transform: translateY(0);
}

.rank-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.rank-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.rank-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 0 6px;
    box-sizing: border-box;
}

.rank-header-art {
    position: relative;
    height: 160px;
    object-fit: cover;
    object-position: center top;
    flex-shrink: 0;
    pointer-events: none;
}

.rank-close-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    pointer-events: auto;
}

.rank-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.rank-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    pointer-events: none;
}

.rank-list-shell {
    position: relative;
    flex: 1;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.rank-list {
    flex: 1;
    min-height: 0;
    width: 100%;
    margin-top: 12px;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0 32px 12px;
    box-sizing: border-box;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
}

.rank-list::-webkit-scrollbar {
    width: 4px;
}

.rank-list::-webkit-scrollbar-thumb {
    background: rgba(107, 74, 26, 0.35);
    border-radius: 4px;
}

.rank-list-empty {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 200px;
    padding: 32px 24px;
    color: rgba(65, 38, 7, 0.5);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
}

.rank-row {
    position: relative;
    width: 100%;
    height: 144px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 32px;
    box-sizing: border-box;
    overflow: hidden;
}

.rank-row-avatar {
    position: relative;
    z-index: 1;
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    flex-shrink: 0;
    pointer-events: none;
    background: #f3d4c8;
    align-self: center;
}

.rank-row-rank {
    flex-shrink: 0;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    line-height: 1.1;
    pointer-events: none;
}

.rank-row-rank.rank-top-1 {
    color: #FF7700;
}

.rank-row-rank.rank-top-2 {
    color: #FF9D00;
}

.rank-row-rank.rank-top-3 {
    color: #FFA64C;
}

.rank-row-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    text-align: left;
    pointer-events: none;
    gap: 4px;
}

.rank-row-name {
    display: flex;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
    margin: 0;
    pointer-events: none;
}

.rank-row-name-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    line-height: 1.1;
}

.rank-row-score {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.1;
    margin: 6px 0 0;
}

.rank-row-prize {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-shrink: 0;
    align-self: center;
    pointer-events: none;
}

.rank-row-prize img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}

.rank-row-prize span {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.rank-footer-wrap {
    position: relative;
    flex-shrink: 0;
    width: 100%;
    min-height: 170px;
    pointer-events: none;
}

.rank-footer-bg {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 170px;
    object-fit: fill;
    pointer-events: none;
}

.rank-self-bar {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    width: calc(100% - 64px);
    max-width: 686px;
    min-height: 170px;
    margin: 0 auto;
    padding: 16px 20px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    background: transparent;
    border: none;
    box-shadow: none;
    pointer-events: none;
}

.rank-self-avatar {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    flex-shrink: 0;
    background: #f3d4c8;
    align-self: center;
}

.rank-self-meta {
    flex: 1;
    min-width: 0;
    margin-left: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    text-align: left;
    gap: 4px;
}

.rank-self-name {
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.1;
    margin: 0;
}

.rank-self-score {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.1;
    margin: 6px 0 0;
}

.rank-self-pos.rank-top-1,
.rank-self-pos.rank-top-2,
.rank-self-pos.rank-top-3 {
    color: #e8a010;
}

.rank-self-pos {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 72px;
    color: var(--gold-text);
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
    pointer-events: none;
    align-self: center;
}

.settings-layer[hidden] {
    display: none !important;
}

.settings-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.settings-layer.is-open {
    pointer-events: auto;
}

.settings-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.38);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.settings-layer.is-open .settings-backdrop {
    opacity: 1;
}

.settings-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 750px;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.settings-layer.is-open .settings-sheet {
    transform: translateY(0);
}

.settings-panel {
    position: relative;
    width: 750px;
    height: 750px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.settings-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.settings-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 0 6px;
    box-sizing: border-box;
}

.settings-header-art {
    position: relative;
    height: 160px;
    object-fit: cover;
    object-position: center top;
    flex-shrink: 0;
    pointer-events: none;
}

.settings-close-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    pointer-events: auto;
}

.settings-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.settings-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
    pointer-events: none;
    padding: 50px 0 24px;
    box-sizing: border-box;
}

.settings-menu {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    pointer-events: auto;
}

.settings-menu-item {
    position: relative;
    width: 686px;
    height: 144px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.settings-menu-bg {
    position: absolute;
    inset: 0;
    width: 686px;
    height: 144px;
    display: block;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.settings-menu-label {
    position: relative;
    z-index: 1;
    margin-left: 132px;
    color: #2e1f0f;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2px;
    pointer-events: none;
}

.language-layer[hidden] {
    display: none !important;
}

.language-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.language-layer.is-open {
    pointer-events: auto;
}

.language-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
}

.language-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 920px;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.language-layer.is-open .language-sheet {
    transform: translateY(0);
}

.language-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.language-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.language-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    box-sizing: border-box;
}

.language-header-art {
    position: relative;
    flex-shrink: 0;
    pointer-events: none;
}

.language-back-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    pointer-events: auto;
}

.language-back-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.language-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    pointer-events: none;
    padding: 0;
    box-sizing: border-box;
}

.language-list {
    flex: 1;
    min-height: 0;
    width: 100%;
    margin-top: 12px;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 0 32px 20px;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
}

.language-list::-webkit-scrollbar {
    width: 4px;
}

.language-list::-webkit-scrollbar-thumb {
    background: rgba(107, 74, 26, 0.35);
    border-radius: 4px;
}

.language-row {
    position: relative;
    width: 686px;
    height: 144px;
    padding: 0 64px 0 36px;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    border-radius: 20px;
    background: transparent;
    box-shadow: none;
}

.language-row::after {
    content: "";
    position: absolute;
    right: 44px;
    top: 50%;
    width: 20px;
    height: 32px;
    transform: translateY(-50%);
    background-image: url("assets/sgrk/Frame2010.png");
    background-repeat: no-repeat;
    background-size: 686px 144px;
    background-position: -622px -54px;
    pointer-events: none;
    z-index: 2;
}

.language-row.is-active .language-row-label {
    color: #c85a10;
}

.language-row-label {
    position: relative;
    z-index: 1;
    color: #2e1f0f;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2px;
    pointer-events: none;
}

.rules-layer[hidden],
.support-layer[hidden],
.about-layer[hidden] {
    display: none !important;
}

.rules-layer,
.support-layer,
.about-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    pointer-events: none;
    overflow: visible;
}

.rules-layer {
    z-index: var(--z-modal);
}

.support-layer {
    z-index: var(--z-modal);
}

.about-layer {
    z-index: var(--z-modal);
}

.rules-layer.is-open,
.support-layer.is-open,
.about-layer.is-open {
    pointer-events: auto;
}

.rules-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
}

.rules-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 920px;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.rules-layer.is-open .rules-sheet,
.support-layer.is-open .rules-sheet,
.about-layer.is-open .rules-sheet {
    transform: translateY(0);
}

.rules-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.rules-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.rules-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    box-sizing: border-box;
}

.rules-header-art {
    position: relative;
    flex-shrink: 0;
    pointer-events: none;
}

.rules-back-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    pointer-events: auto;
}

.rules-back-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.rules-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 196px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    pointer-events: none;
    padding: 0;
    box-sizing: border-box;
    min-width: 0;
}

.rules-content {
    flex: 1;
    min-width: 0;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 14px 52px 40px;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
    text-align: left;
}

.rules-content::-webkit-scrollbar {
    width: 4px;
}

.rules-content::-webkit-scrollbar-thumb {
    background: rgba(107, 74, 26, 0.35);
    border-radius: 4px;
}

.rules-main-title {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 20px;
    text-align: left;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.rules-intro {
    color: #3d2914;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.58;
    margin: 0 0 22px;
    text-align: left;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: normal;
}

.rules-section {
    margin-bottom: 22px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    text-align: left;
}

.rules-section:last-child {
    margin-bottom: 0;
}

.rules-section-title {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.35;
    margin: 0 0 10px;
    text-align: left;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.rules-section-body {
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.58;
    margin: 0;
    text-align: left;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: normal;
}

/* —— Mobile —— */
html {
    touch-action: manipulation;
    -webkit-text-size-adjust: 100%;
}

html,
body {
    height: 100%;
    height: 100dvh;
    overscroll-behavior: none;
}

#shell-viewport {
    box-sizing: border-box;
}

#canvasDiv,
#canvasDiv canvas,
#GameCanvas {
    touch-action: none;
}

.reward-list,
.invite-list,
.rank-list,
.language-list,
.rules-content,
.withdraw-history-list {
    overscroll-behavior: contain;
}

/* 正式版 Solana 登录遮罩（遮罩全屏，按钮对齐游戏区） */
.wallet-login-layer {
    position: fixed;
    inset: 0;
    z-index: var(--z-wallet-login);
    pointer-events: none;
}

.wallet-login-layer:not([hidden]) {
    pointer-events: auto;
}

.wallet-login-mask {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    pointer-events: auto;
}

.wallet-login-panel {
    position: absolute;
    left: var(--canvas-left, 0);
    top: var(--canvas-top, 0);
    width: var(--canvas-width, 720px);
    height: var(--canvas-height, 1160px);
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 0;
    pointer-events: none;
}

.wallet-login-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    pointer-events: none;
}

.wallet-promo-btn {
    min-width: 168px;
}

.wallet-login-layer[hidden] {
    display: none !important;
}

.wallet-login-btn {
    position: relative;
    z-index: 1;
    pointer-events: auto;
    touch-action: manipulation;
    min-width: 168px;
    height: 52px;
    padding: 0 28px;
    border: none;
    border-radius: 26px;
    background: linear-gradient(180deg, #ffd978 0%, #f5a623 100%);
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.65);
    color: #3d2914;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: 0.4px;
    cursor: pointer;
}

.wallet-login-btn:disabled {
    opacity: 0.72;
    cursor: wait;
}

/* 正式版：登录后 / 结算关闭后在游戏区显示的开始按钮 */
.shell-start-game-layer {
    position: fixed;
    left: var(--canvas-left, 0);
    top: var(--canvas-top, 0);
    width: var(--canvas-width, 720px);
    height: var(--canvas-height, 1160px);
    z-index: 12;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.shell-start-game-layer:not([hidden]) {
    pointer-events: auto;
}

.shell-start-game-layer[hidden] {
    display: none !important;
}

.shell-start-game-btn {
    min-width: 132px;
    height: 42px;
    padding: 0 22px;
    font-size: 18px;
    border-radius: 21px;
}

/* 全屏加载态（账本 / 邀请 / 排行 / 提现等弹层接口请求） */
.shell-fullscreen-loading {
    --shell-loading-color: #ffd978;
    position: fixed;
    inset: 0;
    z-index: var(--z-loading);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: auto;
    touch-action: none;
}

.shell-fullscreen-loading-blocker {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: auto;
}

.shell-fullscreen-loading[hidden] {
    display: none !important;
    pointer-events: none !important;
}

.shell-fullscreen-loading-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.shell-fullscreen-loading-spinner {
    position: relative;
    width: 56px;
    height: 56px;
}

.shell-fullscreen-loading-bar {
    position: absolute;
    top: 0;
    left: 50%;
    width: 5px;
    height: 14px;
    margin-left: -2.5px;
    border-radius: 3px;
    background: var(--shell-loading-color);
    transform-origin: 50% 28px;
    opacity: 0.18;
    animation: shell-fullscreen-bar-fade 1s linear infinite;
}

.shell-fullscreen-loading-bar:nth-child(1) {
    transform: rotate(0deg);
    animation-delay: -0.9167s;
}

.shell-fullscreen-loading-bar:nth-child(2) {
    transform: rotate(30deg);
    animation-delay: -0.8333s;
}

.shell-fullscreen-loading-bar:nth-child(3) {
    transform: rotate(60deg);
    animation-delay: -0.75s;
}

.shell-fullscreen-loading-bar:nth-child(4) {
    transform: rotate(90deg);
    animation-delay: -0.6667s;
}

.shell-fullscreen-loading-bar:nth-child(5) {
    transform: rotate(120deg);
    animation-delay: -0.5833s;
}

.shell-fullscreen-loading-bar:nth-child(6) {
    transform: rotate(150deg);
    animation-delay: -0.5s;
}

.shell-fullscreen-loading-bar:nth-child(7) {
    transform: rotate(180deg);
    animation-delay: -0.4167s;
}

.shell-fullscreen-loading-bar:nth-child(8) {
    transform: rotate(210deg);
    animation-delay: -0.3333s;
}

.shell-fullscreen-loading-bar:nth-child(9) {
    transform: rotate(240deg);
    animation-delay: -0.25s;
}

.shell-fullscreen-loading-bar:nth-child(10) {
    transform: rotate(270deg);
    animation-delay: -0.1667s;
}

.shell-fullscreen-loading-bar:nth-child(11) {
    transform: rotate(300deg);
    animation-delay: -0.0833s;
}

.shell-fullscreen-loading-bar:nth-child(12) {
    transform: rotate(330deg);
    animation-delay: 0s;
}

@keyframes shell-fullscreen-bar-fade {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0.18;
    }
}

.shell-toast {
    position: fixed;
    left: 50%;
    bottom: calc(28px + var(--safe-bottom, 0px));
    z-index: var(--z-toast);
    max-width: min(88vw, 520px);
    padding: 14px 22px;
    border-radius: 14px;
    background: rgba(24, 24, 24, 0.88);
    color: #fff;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    transform: translate(-50%, 16px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.24s ease, transform 0.24s ease;
}

.shell-toast[hidden] {
    display: none !important;
}

.shell-toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.shell-toast.is-success {
    background: rgba(28, 74, 42, 0.92);
}

.shell-toast.is-error {
    background: rgba(92, 28, 28, 0.92);
}

/* ── Reward Guide / Play Guide 全屏页 ── */
.reward-guide-layer[hidden],
.play-guide-layer[hidden] {
    display: none !important;
}

.reward-guide-layer,
.play-guide-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: hidden;
}

.reward-guide-layer.is-open {
    pointer-events: auto;
}

.play-guide-layer.is-open {
    pointer-events: auto;
}

.reward-guide-page {
    width: 750px;
    /* 高度跟随外层（由 JS 设为视口高度），使滚动区 flex:1 贴合可视区域可滚动 */
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: #f5c21c;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 750px 1624px;
    overflow: hidden;
}

.reward-guide-header {
    position: relative;
    flex-shrink: 0;
    height: 116px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 96px;
    box-sizing: border-box;
}

.reward-guide-back-btn {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 72px;
    height: 72px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 2;
}

.reward-guide-back-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.reward-guide-header-title {
    margin: 0;
    color: #2b2b2b;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    letter-spacing: 0.2px;
}

.reward-guide-scroll {
    flex: 1;
    min-height: 0;
    /* margin: 0 28px 40px; */
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* border-radius: 24px; */
    /* box-shadow: 0 10px 28px rgba(62, 42, 8, 0.12); */
}

.reward-guide-scroll::-webkit-scrollbar {
    width: 4px;
}

.reward-guide-scroll::-webkit-scrollbar-thumb {
    background: rgba(107, 74, 26, 0.35);
    border-radius: 4px;
}

.reward-guide-media {
    margin: 24px 28px 22px;
    height: 286px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(220, 210, 190, 0.45);
    box-shadow: 0 4px 14px rgba(62, 42, 8, 0.06);
    flex-shrink: 0;
}

.reward-guide-content {
    padding: 72px 40px 72px;
    text-align: left;
    box-sizing: border-box;
}

.reward-guide-content .rules-main-title {
    font-size: 36px;
    font-weight: 900;
    color: #1f1f1f;
    margin: 0 0 18px;
    line-height: 1.25;
}

.reward-guide-content .rules-intro {
    font-size: 22px;
    font-weight: 500;
    color: #333333;
    line-height: 1.58;
    margin: 0 0 28px;
}

.reward-guide-content .rules-section {
    margin-bottom: 24px;
}

.reward-guide-content .rules-section:last-child {
    margin-bottom: 0;
}

.reward-guide-content .rules-section-title {
    font-size: 26px;
    font-weight: 800;
    color: #1f1f1f;
    line-height: 1.35;
    margin: 0 0 8px;
}

.reward-guide-content .rules-section-body {
    font-size: 22px;
    font-weight: 500;
    color: #3a3a3a;
    line-height: 1.58;
}

/* ── Claim Download 弹窗（assets/dol + jjhtx + sgrk）── */
.claim-download-layer[hidden] {
    display: none !important;
}

.claim-download-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.claim-download-layer.is-open {
    pointer-events: auto;
    z-index: calc(var(--z-modal) + 2);
}

.claim-download-layer:not(.is-open) .claim-download-backdrop,
.claim-download-layer:not(.is-open) .claim-download-panel {
    pointer-events: none !important;
}

.claim-download-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.48);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.claim-download-layer.is-open .claim-download-backdrop {
    opacity: 1;
}

.claim-download-panel {
    position: absolute;
    left: 40px;
    top: 342px;
    width: 670px;
    height: 940px;
    overflow: visible;
    z-index: 2;
    pointer-events: auto;
    transform: scale(0.94);
    opacity: 0;
    transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.34s ease;
}

.claim-download-layer.is-open .claim-download-panel {
    transform: scale(1);
    opacity: 1;
}

.cd-panel-bg {
    position: absolute;
    inset: 0;
    width: 670px;
    height: 940px;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.cd-close-btn {
    position: absolute;
    top: 190px;
    right: -24px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 4;
    pointer-events: auto;
}

.cd-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.cd-reward-block {
    position: absolute;
    left: 0;
    right: 0;
    top: 238px;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
}

.cd-reward-block .reward-caption {
    width: 100%;
    margin-top: 50px;
}

.cd-main-val {
    width: 100%;
    margin-top: 14px;
    text-align: center;
    font-size: 84px;
    line-height: 1;
    letter-spacing: -1px;
    pointer-events: none;
}

.cd-reward-block .withdraw-sol-badge {
    margin-top: 14px;
}

.cd-wallet-card {
    position: absolute;
    left: 32px;
    top: 500px;
    width: 606px;
    display: flex;
    align-items: center;
    padding: 24px 32px 32px;
    box-sizing: border-box;
    pointer-events: none;
}

.cd-wallet-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    border-radius: 20px;
    pointer-events: none;
}

.cd-wallet-icon {
    position: relative;
    z-index: 1;
    height: 90px;
    object-fit: cover;
    flex-shrink: 0;
    pointer-events: none;
}

.cd-wallet-meta {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    margin-left: 12px;
    text-align: left;
}

.cd-wallet-title {
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 6px;
}

.cd-wallet-desc {
    color: #8a6230;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
}

.cd-steps-row {
    position: absolute;
    left: 24px;
    right: 24px;
    top: 654px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    pointer-events: none;
}

.cd-step {
    width: 140px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.cd-step-icon {
    height: 100px;
    object-fit: cover;
    display: block;
}

.cd-step-label {
    margin-top: 10px;
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: 0.1px;
    white-space: pre-line;
}

.cd-step-arrow {
    width: 14px;
    height: 100px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.cd-step-arrow img {
    width: 14px;
    height: 80px;
    object-fit: contain;
    display: block;
}

.cd-download-btn {
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    /* 背景图 Frame2145.png 原始 464×112（≈4.14:1），按此比例设定宽高，避免拉伸压扁 */
    width: 500px;
    height: 121px;
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
    z-index: 3;
    pointer-events: auto;
}

.cd-download-btn-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.cd-download-btn-content {
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    z-index: 1;
    white-space: nowrap;
    pointer-events: none;
}

.cd-download-btn-content img {
    height: 44px;
    object-fit: cover;
    flex-shrink: 0;
}

.cd-download-btn-content span {
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 2px 0 rgba(140, 55, 0, 0.35);
}

/* ── 提现成功弹窗（zsftx + txcgtc + no-energyTc）── */
.withdraw-success-layer[hidden] {
    display: none !important;
}

.withdraw-success-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.withdraw-success-layer.is-open {
    pointer-events: auto;
}

.ws-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.52);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.withdraw-success-layer.is-open .ws-backdrop {
    opacity: 1;
}

.ws-panel {
    position: absolute;
    left: 40px;
    top: 302px;
    width: 670px;
    height: 726px;
    overflow: visible;
    z-index: 2;
    pointer-events: auto;
    transform: scale(0.94);
    opacity: 0;
    transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.34s ease;
}

.withdraw-success-layer.is-open .ws-panel {
    transform: scale(1);
    opacity: 1;
}

.ws-panel-bg {
    position: absolute;
    inset: 0;
    width: 670px;
    height: 726px;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.ws-close-btn {
    position: absolute;
    top: 204px;
    right: -12px;
    width: 68px;
    height: 68px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 4;
    pointer-events: auto;
}

.ws-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.ws-sent-heading {
    position: absolute;
    left: 0;
    right: 0;
    top: 272px;
    width: 100%;
    padding: 0 36px;
    box-sizing: border-box;
    pointer-events: none;
}

.ws-main-val {
    position: absolute;
    left: 24px;
    right: 24px;
    top: 310px;
    text-align: center;
    font-size: 100px;
    line-height: 1;
    letter-spacing: -1px;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ws-wallet-row {
    position: absolute;
    left: 50%;
    top: 432px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 72px);
    max-width: 520px;
    pointer-events: none;
}

.ws-wallet-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    max-width: 100%;
    min-height: 56px;
    padding: 6px 12px 6px 20px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffd57b 0%, #ffd375 100%);
    box-sizing: border-box;
    border: 1px solid #ffffff50;
}

.ws-wallet-addr {
    flex: 1 1 auto;
    min-width: 0;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ws-wallet-chip .ws-sol-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    height: 36px;
    padding: 0 10px;
    border-radius: 999px;
    background: #2f2418;
}

.ws-wallet-chip .ws-sol-icon {
    height: 28px;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}

.ws-more-btn {
    position: absolute;
    left: 50%;
    top: 508px;
    transform: translateX(-50%);
    width: 460px;
    height: 112px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
}

.ws-more-btn-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.ws-more-btn-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 2px 0 rgba(140, 55, 0, 0.35);
    pointer-events: none;
    white-space: nowrap;
}

.ws-more-btn-content img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    flex-shrink: 0;
}

.ws-footer {
    position: absolute;
    left: 36px;
    right: 36px;
    top: 640px;
    margin: 0;
    padding: 0;
    text-align: center;
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 600;
    pointer-events: none;
}

.ws-footer-line {
    margin: 0;
    padding: 0;
}

.ws-footer-line+.ws-footer-line {
    margin-top: 6px;
}

.ws-footer-line--support {
    pointer-events: auto;
}

.ws-support-link {
    display: inline;
    padding: 0;
    border: none;
    background: transparent;
    color: #412607;
    font-family: inherit;
    font-size: inherit;
    font-weight: 800;
    line-height: inherit;
    cursor: pointer;
    pointer-events: auto;
    text-decoration: none;
}

.ws-support-link:hover {
    text-decoration: underline;
}

/* ── WhatsApp 社群弹窗（底部抽屉，背景同账本 jjhtx/BG.png）── */
.whatsapp-layer[hidden] {
    display: none !important;
}

.whatsapp-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.whatsapp-layer.is-open {
    pointer-events: auto;
}

.wa-backdrop {
    position: absolute;
    inset: 0;
    z-index: 1;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.38);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.whatsapp-layer.is-open .wa-backdrop {
    opacity: 1;
}

.wa-sheet {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 750px;
    height: 920px;
    z-index: 2;
    transform: translateY(100%);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: auto;
    overflow: hidden;
}

.whatsapp-layer.is-open .wa-sheet {
    transform: translateY(0);
}

.wa-panel {
    position: relative;
    width: 750px;
    height: 920px;
    overflow: hidden;
    -webkit-mask-image: url("assets/jjhtx/BG.png");
    mask-image: url("assets/jjhtx/BG.png");
    -webkit-mask-size: 750px 920px;
    mask-size: 750px 920px;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

.wa-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    height: 920px;
    object-fit: fill;
    pointer-events: none;
    z-index: 0;
}

.wa-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 750px;
    z-index: 3;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 40px 0 6px;
    box-sizing: border-box;
}

.wa-header-art {
    position: relative;
    height: 160px;
    object-fit: contain;
    object-position: center top;
    flex-shrink: 0;
    pointer-events: none;
}

.wa-subtitle {
    margin-top: -44px;
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    pointer-events: none;
}

.wa-close-btn {
    position: absolute;
    top: 60px;
    right: 20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 30;
    pointer-events: auto;
    touch-action: manipulation;
}

.wa-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.wa-body {
    position: absolute;
    left: 0;
    right: 0;
    top: 220px;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    pointer-events: none;
}

.wa-qr {
    width: 470px;
    object-fit: cover;
    border-radius: 24px;
    flex-shrink: 0;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    margin-top: 36px;
}

.wa-copy-btn {
    position: relative;
    margin-top: 50px;
    width: 500px;
    height: 112px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
    touch-action: manipulation;
    flex-shrink: 0;
}

.wa-copy-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.wa-copy-content {
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 30px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
}

.wa-copy-icon {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex-shrink: 0;
    pointer-events: none;
}

/* ── 能量不足弹窗（no-energyTc + txcgtc + zsftx）── */
.no-energy-layer[hidden] {
    display: none !important;
}

.no-energy-layer {
    position: fixed;
    left: 0;
    top: 0;
    width: 750px;
    height: 1624px;
    transform-origin: top left;
    z-index: var(--z-modal);
    pointer-events: none;
    overflow: visible;
}

.no-energy-layer.is-open {
    pointer-events: auto;
}

.ne-backdrop {
    position: absolute;
    inset: 0;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(18, 10, 4, 0.52);
    opacity: 0;
    transition: opacity 0.32s ease;
    cursor: pointer;
    pointer-events: auto;
}

.no-energy-layer.is-open .ne-backdrop {
    opacity: 1;
}

/* 遮罩高度（及宽度）自适应：弹层是 750×1624 缩放层，按顶对齐/居中/底对齐定位，
   inset:0 的遮罩只覆盖设计层范围。这里把遮罩向设计层上下左右各扩展一屏(共 3×)，
   保证任意屏幕比例下遮罩都能铺满整个视口（弹层均为 overflow:visible，扩展不会被裁切）。 */
/* 弹层内：遮罩 < 面板 < 关闭按钮，保证可点 */
.claim-backdrop,
.invite-backdrop,
.rank-backdrop,
.settings-backdrop,
.language-backdrop,
.rules-backdrop,
.support-backdrop,
.about-backdrop,
.claim-download-backdrop,
.ws-backdrop,
.ne-backdrop,
.go-backdrop {
    z-index: 1;
}

.claim-sheet,
.invite-sheet,
.rank-sheet,
.settings-sheet,
.language-sheet,
.wa-sheet {
    z-index: 2;
}

.claim-close-btn,
.invite-close-btn,
.rank-close-btn,
.settings-close-btn,
.cd-close-btn,
.wa-close-btn,
.ws-close-btn,
.ne-close-btn,
.go-close-btn,
.withdraw-back-btn {
    z-index: 30;
    touch-action: manipulation;
}

.reward-backdrop,
.claim-backdrop,
.invite-backdrop,
.rank-backdrop,
.settings-backdrop,
.language-backdrop,
.rules-backdrop,
.claim-download-backdrop,
.wa-backdrop,
.ws-backdrop,
.ne-backdrop {
    top: -100%;
    right: -100%;
    bottom: -100%;
    left: -100%;
}

.ne-panel {
    position: absolute;
    left: 40px;
    top: 348px;
    width: 670px;
    height: 836px;
    overflow: visible;
    z-index: 2;
    pointer-events: auto;
    transform: scale(0.94);
    opacity: 0;
    transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.34s ease;
}

.no-energy-layer.is-open .ne-panel {
    transform: scale(1);
    opacity: 1;
}

.ne-panel-bg {
    position: absolute;
    inset: 0;
    width: 670px;
    height: 836px;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.ne-close-btn {
    position: absolute;
    top: 150px;
    right: -20px;
    width: 79px;
    height: 79px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 4;
    pointer-events: auto;
}

.ne-close-btn img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.ne-hero-icon {
    position: absolute;
    left: 50%;
    top: 272px;
    transform: translateX(-50%);
    width: 224px;
    height: 224px;
    object-fit: contain;
    pointer-events: none;
}

.ne-title {
    position: absolute;
    left: 0;
    right: 0;
    top: 512px;
    text-align: center;
    color: #412607;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 36px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0.2px;
    pointer-events: none;
}

.ne-desc {
    position: absolute;
    left: 48px;
    right: 48px;
    top: 576px;
    text-align: center;
    color: #6b4a1a;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 20px;
    font-weight: 800;
    pointer-events: none;
}

.ne-action-btn {
    position: absolute;
    left: 50%;
    top: 672px;
    transform: translateX(-50%);
    width: 457px;
    height: 109px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
}

.ne-action-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.ne-action-content {
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #FDEBB0;
    font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 2px 0 rgba(140, 55, 0, 0.35);
    pointer-events: none;
    white-space: nowrap;
}

.ne-action-content img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
}