        * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
        :root {
            --primary: #D4AF37;
            --primary-dark: #8B5A2B;
            --gold: #FFD700;
            --gold-light: #FFF8DC;
            --card-bg: #2d1810;
            --bg-dark: #1a0a0a;
            --bg-warm: #3d2517;
            --accent-red: #C41E3A;
            --accent-purple: #6B3FA0;
        }
        html, body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background: linear-gradient(180deg, #1a0a0a 0%, #2d1810 50%, #1a0a0a 100%);
            width: 100vw;
            height: 100vh;
            min-height: 100vh;
            color: #fff;
            overflow: hidden;
            margin: 0;
            padding: 0;
            -ms-overflow-style: none;
            scrollbar-width: none;
            position: fixed;
            top: 0;
            left: 0;
        }

        body::-webkit-scrollbar, *::-webkit-scrollbar {
            display: none;
            width: 0;
            height: 0;
        }
        
        /* 顶部导航 */
        .top-nav {
            position: fixed;
            top: 44px;
            left: 0;
            right: 0;
            height: 44px;
            background: rgba(26,10,10,0.95);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 50;
            border-bottom: 1px solid rgba(212,175,55,0.2);
            padding-left: 50px;
        }
        .top-title {
            font-family:STKaiti, KaiTi, STSong, SimSun, serif;
            color: var(--primary);
            font-size: 16px;
            letter-spacing: 3px;
        }
        
        /* 返回按钮 */
        .back-btn {
            position: fixed;
            top: 48px;
            left: 6px;
            width: 36px;
            height: 36px;
            background: rgba(139,90,43,0.7);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            cursor: pointer;
            z-index: 100;
            border: 1.5px solid rgba(212,175,55,0.3);
            color: var(--gold);
        }
        
        /* 跑马灯 */
        .marquee-container {
            position: fixed;
            top: 88px;
            left: 0;
            right: 0;
            height: 32px;
            background: transparent;
            overflow: hidden;
            z-index: 40;
        }
        .marquee-content {
            display: flex;
            animation: marquee 20s linear infinite;
            white-space: nowrap;
        }
        .marquee-item {
            display: inline-flex;
            align-items: center;
            padding: 0 40px;
            font-size: 12px;
            color: var(--gold);
        }
        .marquee-item .avatar {
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: var(--primary);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 6px;
            font-size: 10px;
        }
        @keyframes marquee {
            0% { transform: translateX(100vw); }
            100% { transform: translateX(-100%); }
        }
        
        /* 游戏界面 */
        .game-screen {
            min-height: 100vh;
            padding-top: 130px;
            padding-bottom: 200px;
        }
        
        /* 当前关卡信息 */
        .level-info {
            text-align: center;
            padding: 10px 0;
            margin-bottom: 10px;
        }
        .level-name {
            font-family:STKaiti, KaiTi, STSong, SimSun, serif;
            font-size: 22px;
            color: var(--gold);
            text-shadow: 0 0 10px rgba(212,175,55,0.4);
            margin-bottom: 8px;
        }
        .prize-row {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 15px;
        }
        .prize-display {
            font-size: 14px;
            color: var(--gold);
            font-weight: bold;
        }
        .total-prize {
            font-size: 14px;
            color: #fff;
            background: linear-gradient(135deg, rgba(196,30,58,0.9), rgba(139,0,0,0.9));
            padding: 4px 10px;
            border-radius: 12px;
            border: 1px solid var(--gold);
            white-space: nowrap;
        }
        .total-prize .label {
            font-size: 11px;
            opacity: 0.9;
        }
        .total-prize .amount {
            font-weight: bold;
            color: var(--gold);
            margin: 0 2px;
        }
        .total-prize .prize-hint {
            font-size: 10px;
            color: #FFD700;
            margin-left: 6px;
            white-space: nowrap;
        }
        .level-progress {
            font-size: 11px;
            color: rgba(255,255,255,0.6);
            margin-top: 4px;
        }
        
        /* 牌堆区域 */
        .card-stack-area {
            padding: 10px 0;
            height: 360px;
            position: relative;
            display: block;
            margin: 0 auto;
            width: 100%;
            max-width: 375px;
        }
        .stacked-card {
            position: absolute;
            width: 42px;
            height: 58px;
            background: linear-gradient(135deg, var(--gold-light), #E8D5A8);
            border-radius: 6px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            cursor: pointer;
            transition: transform 0.12s ease-out, box-shadow 0.12s ease-out, filter 0.12s ease-out;
            box-shadow: 2px 2px 8px rgba(0,0,0,0.35);
            user-select: none;
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
            backface-visibility: hidden;
        }
        .stacked-card:hover {
            transform: scale(1.08);
            box-shadow: 0 4px 14px rgba(212,175,55,0.4);
        }
        .stacked-card.covered {
            cursor: not-allowed;
            filter: grayscale(70%) brightness(0.45);
            pointer-events: none;
        }
        .stacked-card.covered:hover {
            transform: none;
            box-shadow: 2px 2px 8px rgba(0,0,0,0.35);
        }
        .stacked-card.removing {
            animation: cardRemove 0.28s ease-out forwards;
        }
        @keyframes cardRemove {
            0% { transform: scale(1); opacity: 1; }
            50% { transform: scale(1.3); }
            100% { transform: scale(0); opacity: 0; }
        }
        
        /* 底部区域 */
        .bottom-area {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: transparent;
            padding: 12px;
            padding-bottom: calc(12px + env(safe-area-inset-bottom));
            z-index: 50;
            border-top: none;
        }
        
        /* 道具栏 - 放在卡槽上方 */
        .props-bar {
            display: flex;
            justify-content: center;
            gap: 20px;
            padding: 8px 0;
        }
        .prop-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 2px;
            cursor: pointer;
            transition: all 0.2s;
            min-width: 50px;
            filter: none;
        }
        .prop-item:hover {
            transform: scale(1.08);
        }
        .prop-item.disabled {
            opacity: 0.65;
            filter: none;
            cursor: not-allowed;
        }
        .prop-item.disabled:hover {
            transform: none;
        }
        .prop-icon {
            width: 36px;
            height: 36px;
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            border: 2px solid var(--gold);
        }
        .prop-name {
            font-size: 10px;
            color: rgba(255,255,255,0.7);
        }
        .prop-count {
            font-size: 9px;
            color: var(--gold);
        }
        
        /* 底部卡槽 */
        .bottom-slots {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }
        .slot-cell {
            width: 44px;
            height: 60px;
            background: linear-gradient(135deg, rgba(139,90,43,0.5), rgba(61,37,23,0.5));
            border: 2px solid rgba(212,175,55,0.4);
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 26px;
            position: relative;
            transition: all 0.2s;
        }
        .slot-cell.highlight {
            border-color: var(--gold);
            background: rgba(212,175,55,0.2);
            transform: scale(1.08);
        }
        .slot-cell.full {
            border-color: var(--accent-red);
            animation: shake 0.5s infinite;
        }
        .slot-cell.removable {
            border-color: var(--accent-red);
            background: rgba(255, 68, 68, 0.3);
            cursor: pointer;
            animation: pulse 0.8s infinite;
        }
        .slot-cell.removable:hover {
            background: rgba(255, 68, 68, 0.5);
            transform: scale(1.1);
        }
        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-3px); }
            75% { transform: translateX(3px); }
        }
        @keyframes pulse {
            0%, 100% { box-shadow: 0 0 5px rgba(255,68,68,0.5); }
            50% { box-shadow: 0 0 15px rgba(255,68,68,0.8); }
        }
        
        /* 引导提示 */
        .guide-tip {
            position: fixed;
            bottom: 180px;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(0,0,0,0.85);
            padding: 8px 20px;
            border-radius: 20px;
            font-size: 12px;
            color: var(--gold);
            z-index: 45;
            border: 1px solid var(--gold);
            white-space: nowrap;
            animation: tipBounce 2s infinite;
        }
        @keyframes tipBounce {
            0%, 100% { transform: translateX(-50%) translateY(0); }
            50% { transform: translateX(-50%) translateY(-5px); }
        }
        
        /* 加载提示 */
        .game-loading {
            position: fixed;
            inset: 0;
            background: linear-gradient(180deg, #1a0a0a 0%, #2d1810 50%, #1a0a0a 100%);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            z-index: 10001;
            transition: opacity 0.4s ease, visibility 0.4s ease;
        }
        .game-loading.hidden {
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
        }
        .loading-spinner {
            width: 50px;
            height: 50px;
            border: 3px solid rgba(212,175,55,0.2);
            border-top-color: var(--gold);
            border-radius: 50%;
            animation: spin 1s linear infinite;
            margin-bottom: 16px;
        }
        @keyframes spin {
            to { transform: rotate(360deg); }
        }
        .loading-text {
            color: var(--gold);
            font-size: 16px;
            font-weight: bold;
            letter-spacing: 2px;
            margin-bottom: 8px;
        }
        .loading-sub {
            color: rgba(255,255,255,0.5);
            font-size: 12px;
        }

        /* 弹窗 */
        .modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.88);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999999 !important;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s;
        }
        .modal-overlay.show {
            opacity: 1;
            visibility: visible;
        }
        .modal-content {
            background: linear-gradient(135deg, var(--bg-warm), var(--bg-dark));
            border: 3px solid var(--gold);
            border-radius: 20px;
            padding: 28px;
            max-width: 310px;
            width: 90%;
            text-align: center;
            transform: scale(0.8);
            transition: all 0.3s;
        }
        .modal-overlay.show .modal-content {
            transform: scale(1);
        }
        .modal-icon {
            font-size: 56px;
            margin-bottom: 14px;
        }
        .modal-title {
            font-family:STKaiti, KaiTi, STSong, SimSun, serif;
            font-size: 26px;
            color: var(--gold);
            margin-bottom: 10px;
        }
        .modal-text {
            font-size: 13px;
            color: rgba(255,255,255,0.8);
            margin-bottom: 18px;
            line-height: 1.6;
        }
        .modal-reward {
            font-size: 34px;
            font-weight: bold;
            color: var(--gold);
            font-family:STKaiti, KaiTi, STSong, SimSun, serif;
            margin-bottom: 18px;
        }
        .modal-btn {
            display: block;
            width: 100%;
            padding: 12px;
            background: linear-gradient(135deg, var(--gold), var(--primary-dark));
            border: none;
            border-radius: 22px;
            font-size: 15px;
            font-weight: bold;
            color: var(--bg-dark);
            cursor: pointer;
            margin-bottom: 8px;
            transition: all 0.2s;
        }
        .modal-btn:hover {
            transform: scale(1.02);
            box-shadow: 0 5px 20px rgba(212,175,55,0.4);
        }
        .modal-btn.secondary {
            background: transparent;
            border: 2px solid var(--gold);
            color: var(--gold);
        }
        
        /* 锦鲤弹窗 */
        .koi-modal .koi-animation {
            font-size: 72px;
            animation: koiJump 1s ease infinite;
        }
        @keyframes koiJump {
            0%, 100% { transform: translateY(0) rotate(-5deg); }
            50% { transform: translateY(-18px) rotate(5deg); }
        }
        
        /* 通关特效 */
        .coin-rain {
            position: fixed;
            inset: 0;
            pointer-events: none;
            z-index: 300;
        }
        .coin {
            position: absolute;
            width: 18px;
            height: 18px;
            background: var(--gold);
            border-radius: 50%;
            animation: coinFall 2s ease-out forwards;
        }
        @keyframes coinFall {
            0% { transform: translateY(-20px) rotate(0deg); opacity: 1; }
            100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
        }
        
        /* Toast提示 */
        .toast {
            position: fixed;
            top: 100px;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(0,0,0,0.88);
            padding: 10px 18px;
            border-radius: 20px;
            color: var(--gold);
            font-size: 13px;
            z-index: 300;
            border: 1px solid var(--gold);
        }

        /* 2026-08-05: 卡槽内容淡入动画, 消除闪现 */
        .slot-cell img, .slot-cell span {
            animation: slotFadeIn 0.15s ease-out;
        }
        @keyframes slotFadeIn {
            from { opacity: 0; transform: scale(0.8); }
            to { opacity: 1; transform: scale(1); }
        }
        /* 2026-08-05: 道具禁用样式修复 */
        .prop-item.disabled {
            opacity: 0.65;
            pointer-events: auto;
            filter: none;
        }

        .slot-cell img, .slot-cell span {
            animation: slotFadeIn 0.15s ease-out;
        }
        @keyframes slotFadeIn {
            from { opacity: 0; transform: scale(0.8); }
            to { opacity: 1; transform: scale(1); }
        }
