    * { margin: 0; padding: 0; box-sizing: border-box; }

    body {
        font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
        margin: 0;
        background:
            radial-gradient(ellipse at 30% 20%, rgba(255, 100, 150, 0.15) 0%, transparent 50%),
            radial-gradient(ellipse at 70% 80%, rgba(100, 150, 255, 0.15) 0%, transparent 50%),
            linear-gradient(135deg, #2a0845 0%, #4a148c 30%, #1a237e 70%, #0d0d2b 100%);
        overflow-x: hidden;
        min-height: 100vh;
        position: relative;
    }

    /* 背景星光 */
    .starry-bg {
        position: fixed;
        inset: 0;
        z-index: 0;
        pointer-events: none;
    }
    .star {
        position: absolute;
        width: 3px; height: 3px;
        background: #fff;
        border-radius: 50%;
        box-shadow: 0 0 6px #fff, 0 0 12px rgba(255,255,255,0.6);
        animation: twinkle 3s ease-in-out infinite;
    }
    @keyframes twinkle {
        0%, 100% { opacity: 0.3; transform: scale(0.8); }
        50% { opacity: 1; transform: scale(1.2); }
    }

    /* 主内容区 */
    .container {
        position: relative;
        z-index: 10;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 100vh;
        padding: 5px 15px 20px;
    }

    /* 标题区（整体向上移，避免遮挡转盘内的图标） */
    .header {
        text-align: center;
        margin-bottom: 10px;
        padding-top: 0;
        margin-top: -5px;
        position: relative;
        z-index: 40;
    }
    .title {
        font-size: 26px;
        background: linear-gradient(135deg, #FFD700 0%, #FFA500 30%, #FF6347 60%, #FFD700 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        color: transparent;
        letter-spacing: 6px;
        font-weight: bold;
        text-shadow: 0 0 30px rgba(255, 215, 0, 0.5);
        margin-bottom: 4px;
        animation: titleGlow 2s ease-in-out infinite alternate;
    }
    @keyframes titleGlow {
        0% { filter: drop-shadow(0 0 10px #FFD700); }
        100% { filter: drop-shadow(0 0 25px #FF6347); }
    }
    .subtitle {
        font-size: 12px;
        color: rgba(255, 215, 0, 0.85);
        letter-spacing: 4px;
    }

    /* 转盘外围容器（和下方内容同步下移） */
    .wheel-outer {
        position: relative;
        width: 340px;
        height: 340px;
        max-width: 92vw;
        max-height: 92vw;
        aspect-ratio: 1 / 1;
        margin-top: 25px;
        margin-bottom: 25px;
    }

    /* 外环装饰（跑马灯光点） */
    .light-ring {
        position: absolute;
        inset: -8px;
        border-radius: 50%;
        background: conic-gradient(from 0deg,
            #FFD700, #FF6347, #FFD700, #FF6347,
            #FFD700, #FF6347, #FFD700, #FF6347,
            #FFD700, #FF6347, #FFD700, #FF6347,
            #FFD700, #FF6347, #FFD700, #FF6347, #FFD700);
        filter: blur(2px);
        opacity: 0.6;
        animation: lightRingRotate 8s linear infinite;
    }
    @keyframes lightRingRotate {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }

    /* 跑马灯光点（独立小圆点） */
    .marquee-dots {
        position: absolute;
        inset: -2px;
        border-radius: 50%;
        pointer-events: none;
    }
    .marquee-dot {
        position: absolute;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: #FFD700;
        box-shadow: 0 0 10px #FFD700, 0 0 20px #FFA500;
        top: 50%;
        left: 50%;
        transform-origin: 0 0;
        animation: dotBlink 1s ease-in-out infinite;
    }
    @keyframes dotBlink {
        0%, 100% { opacity: 1; box-shadow: 0 0 12px #FFD700, 0 0 24px #FFA500; }
        50% { opacity: 0.4; box-shadow: 0 0 4px #FFD700; }
    }

    /* 转盘主体 */
    .wheel {
        position: absolute;
        inset: 10px;
        border-radius: 50%;
        background: #fff;
        box-shadow:
            0 0 40px rgba(255, 215, 0, 0.4),
            0 10px 50px rgba(0, 0, 0, 0.5),
            inset 0 0 20px rgba(0, 0, 0, 0.1);
        overflow: hidden;
        transition: transform 6s cubic-bezier(0.17, 0.67, 0.21, 1);
    }

    /* 8个扇区 - 用 conic-gradient */
    .wheel-segments {
        position: absolute;
        inset: 0;
        border-radius: 50%;
        background: conic-gradient(
            from -22.5deg,
            #FF1744 0deg 45deg,
            #FFD700 45deg 90deg,
            #2979FF 90deg 135deg,
            #9C27B0 135deg 180deg,
            #FF1744 180deg 225deg,
            #FFD700 225deg 270deg,
            #2979FF 270deg 315deg,
            #9C27B0 315deg 360deg
        );
    }



    /* 扇区文字 */
    .wheel-labels {
        position: absolute;
        inset: 0;
        pointer-events: none;
    }
    .wheel-label {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 96px;
        height: 160px;
        margin-left: -48px;
        margin-top: -160px;
        transform-origin: 50% 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        padding-top: 8px;
        color: #fff;
        font-weight: bold;
        text-shadow: 0 2px 4px rgba(0,0,0,0.5), 0 0 8px rgba(0,0,0,0.3);
        letter-spacing: 1px;
    }
    .wheel-label .label-icon {
        font-size: 22px;
        margin-bottom: 2px;
        line-height: 1;
    }
    .wheel-label .label-text {
        font-size: 12px;
        text-align: center;
        line-height: 1.15;
    }
    .wheel-label .label-text small {
        font-size: 10px;
        opacity: 0.95;
    }

    /* 中心 GO 按钮 */
    .center-button {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 90px;
        height: 90px;
        margin-left: -45px;
        margin-top: -45px;
        border-radius: 50%;
        background:
            radial-gradient(circle at 30% 30%, #FFE066 0%, #FFD700 30%, #FFA500 70%, #FF6347 100%);
        border: 4px solid #fff;
        box-shadow:
            0 0 20px rgba(255, 215, 0, 0.8),
            0 6px 20px rgba(0, 0, 0, 0.4),
            inset 0 -4px 10px rgba(0, 0, 0, 0.2),
            inset 0 4px 10px rgba(255, 255, 255, 0.5);
        cursor: pointer;
        z-index: 20;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 28px;
        font-weight: bold;
        color: #fff;
        text-shadow:
            0 2px 4px rgba(0,0,0,0.5),
            0 0 10px rgba(255,255,255,0.8);
        letter-spacing: 2px;
        transition: transform 0.2s, opacity 0.2s;
        animation: laserPulse 2s ease-in-out infinite;
    }
    @keyframes laserPulse {
        0%, 100% {
            box-shadow:
                0 0 20px rgba(255, 215, 0, 0.8),
                0 6px 20px rgba(0, 0, 0, 0.4),
                inset 0 -4px 10px rgba(0, 0, 0, 0.2),
                inset 0 4px 10px rgba(255, 255, 255, 0.5);
        }
        50% {
            box-shadow:
                0 0 35px rgba(255, 100, 100, 1),
                0 0 50px rgba(255, 215, 0, 0.6),
                0 6px 20px rgba(0, 0, 0, 0.4),
                inset 0 -4px 10px rgba(0, 0, 0, 0.2),
                inset 0 4px 10px rgba(255, 255, 255, 0.7);
        }
    }
    .center-button:active:not(:disabled) {
        transform: scale(0.92);
    }
    .center-button:disabled {
        opacity: 0.6;
        cursor: not-allowed;
        animation: none;
        filter: grayscale(0.5);
    }

    /* 指针（固定在转盘顶部，指向下方）——整体向上移，不碰转盘内的图标 */
    .pointer {
        position: absolute;
        top: -35px;
        left: 50%;
        transform: translateX(-50%);
        width: 60px;
        height: 86px;
        z-index: 30;
        filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
        pointer-events: none;
    }
    .pointer-shape {
        width: 100%;
        height: 100%;
        position: relative;
    }
    .pointer-shape::before {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 52px;
        height: 52px;
        border-radius: 50%;
        background: radial-gradient(circle at 30% 30%, #FFE066 0%, #FFD700 40%, #FF6347 100%);
        border: 3px solid #fff;
        box-shadow: 0 0 15px rgba(255, 215, 0, 0.8);
    }
    .pointer-shape::after {
        content: '';
        position: absolute;
        top: 26px;
        left: 50%;
        transform: translateX(-50%);
        width: 0;
        height: 0;
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
        border-top: 44px solid #FFD700;
        filter: drop-shadow(0 2px 3px rgba(0,0,0,0.4));
    }

    /* 中奖扇区高亮 */
    .wheel.highlight-win {
        animation: wheelWinPulse 0.6s ease-in-out 3;
    }
    @keyframes wheelWinPulse {
        0%, 100% { box-shadow: 0 0 40px rgba(255, 215, 0, 0.4), 0 10px 50px rgba(0, 0, 0, 0.5), inset 0 0 20px rgba(0, 0, 0, 0.1); }
        50% { box-shadow: 0 0 80px rgba(255, 215, 0, 1), 0 0 100px rgba(255, 100, 100, 0.6), 0 10px 50px rgba(0, 0, 0, 0.5); }
    }

    /* 按钮区 */
    .action-area {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
        margin-top: 10px;
    }
    .status-text {
        color: rgba(255, 215, 0, 0.85);
        font-size: 14px;
        letter-spacing: 3px;
    }
    .info-chips {
        display: flex;
        gap: 12px;
        margin-top: 8px;
    }
    .info-chip {
        background: rgba(255, 215, 0, 0.12);
        border: 1px solid rgba(255, 215, 0, 0.35);
        border-radius: 18px;
        padding: 6px 14px;
        font-size: 12px;
        color: rgba(255, 215, 0, 0.9);
        letter-spacing: 1px;
    }
    .info-chip span {
        color: #FFD700;
        font-weight: bold;
    }

    /* 返回首页 */
    .back-home {
        position: fixed;
        bottom: 20px;
        left: 50%;
        transform: translateX(-50%);
        background: rgba(255, 215, 0, 0.12);
        border: 1px solid rgba(255, 215, 0, 0.3);
        color: rgba(255, 215, 0, 0.9);
        padding: 8px 20px;
        border-radius: 18px;
        font-size: 12px;
        cursor: pointer;
        z-index: 100;
        text-decoration: none;
        letter-spacing: 2px;
    }

    /* ========== 毛玻璃弹窗 ========== */
    .modal-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.55);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        z-index: 1000;
        display: none;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transition: opacity 0.4s;
    }
    .modal-overlay.show {
        display: flex;
        opacity: 1;
    }
    .modal {
        width: 88%;
        max-width: 340px;
        background: rgba(255, 255, 255, 0.18);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border: 1px solid rgba(255, 255, 255, 0.4);
        border-radius: 24px;
        padding: 35px 25px 28px;
        text-align: center;
        box-shadow:
            0 20px 60px rgba(0, 0, 0, 0.5),
            inset 0 1px 0 rgba(255, 255, 255, 0.6);
        transform: scale(0.6) translateY(40px);
        transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
        position: relative;
        overflow: hidden;
    }
    .modal-overlay.show .modal {
        transform: scale(1) translateY(0);
    }

    .modal::before {
        content: '';
        position: absolute;
        top: -50%;
        left: -50%;
        width: 200%;
        height: 200%;
        background: conic-gradient(from 0deg, transparent, rgba(255,215,0,0.15), transparent, rgba(255,100,150,0.1), transparent);
        animation: modalShine 6s linear infinite;
        pointer-events: none;
    }
    @keyframes modalShine {
        from { transform: rotate(0deg); }
        to { transform: rotate(360deg); }
    }

    .modal-emoji {
        font-size: 64px;
        margin-bottom: 10px;
        position: relative;
        z-index: 1;
        animation: emojiBounce 1.5s ease-in-out infinite;
    }
    @keyframes emojiBounce {
        0%, 100% { transform: translateY(0) rotate(-5deg); }
        50% { transform: translateY(-8px) rotate(5deg); }
    }
    .modal-title {
        font-size: 24px;
        font-weight: bold;
        background: linear-gradient(135deg, #FFD700, #FFA500, #FF6347);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        margin-bottom: 10px;
        letter-spacing: 4px;
        position: relative;
        z-index: 1;
    }
    .modal-title.lose {
        background: linear-gradient(135deg, #B0BEC5, #90A4AE);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }
    .modal-desc {
        font-size: 14px;
        color: rgba(255, 255, 255, 0.9);
        margin-bottom: 8px;
        letter-spacing: 1px;
        position: relative;
        z-index: 1;
    }
    .modal-prize {
        font-size: 28px;
        color: #FFD700;
        font-weight: bold;
        margin: 15px 0;
        text-shadow: 0 0 20px rgba(255, 215, 0, 0.7);
        position: relative;
        z-index: 1;
    }
    .modal-btn-row {
        display: flex;
        gap: 12px;
        justify-content: center;
        margin-top: 20px;
        position: relative;
        z-index: 1;
    }
    .modal-close-btn, .modal-share-btn {
        padding: 12px 24px;
        border-radius: 24px;
        font-size: 14px;
        font-weight: bold;
        cursor: pointer;
        letter-spacing: 2px;
        border: none;
        transition: transform 0.2s;
    }
    .modal-close-btn {
        background: rgba(255, 255, 255, 0.2);
        color: #fff;
        border: 1px solid rgba(255, 255, 255, 0.4);
        backdrop-filter: blur(10px);
    }
    .modal-share-btn {
        background: linear-gradient(135deg, #FFD700, #FF6347);
        color: #fff;
        box-shadow: 0 6px 20px rgba(255, 100, 100, 0.5);
    }
    .modal-close-btn:active, .modal-share-btn:active {
        transform: scale(0.94);
    }

    /* 中奖时的金光特效 */
    .win-glow {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(255,215,0,0.8) 0%, transparent 60%);
        z-index: 900;
        pointer-events: none;
        animation: winGlowAnim 2s ease-out forwards;
    }
    @keyframes winGlowAnim {
        0% { width: 20px; height: 20px; opacity: 1; }
        100% { width: 1500px; height: 1500px; opacity: 0; }
    }

    /* 五彩纸屑 */
    .confetti {
        position: fixed;
        inset: 0;
        pointer-events: none;
        z-index: 950;
        overflow: hidden;
    }
    .confetti-piece {
        position: absolute;
        width: 10px;
        height: 14px;
        top: -20px;
        animation: confettiFall linear forwards;
    }
    @keyframes confettiFall {
        0% { transform: translateY(0) rotate(0deg); opacity: 1; }
        100% { transform: translateY(110vh) rotate(720deg); opacity: 0.6; }
    }

    /* Toast 提示 */
    .toast {
        position: fixed;
        top: 32%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: rgba(139, 90, 43, 0.85);
        color: #FFD700;
        padding: 12px 28px;
        border-radius: 28px;
        font-size: 14px;
        letter-spacing: 2px;
        z-index: 1200;
        border: 1px solid rgba(255, 215, 0, 0.4);
        animation: toastIn 1.8s ease-out forwards;
        pointer-events: none;
    }
    @keyframes toastIn {
        0% { opacity: 0; transform: translate(-50%, -30%) scale(0.85); }
        15% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
        85% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
        100% { opacity: 0; transform: translate(-50%, -70%) scale(0.95); }
    }

    /* 小屏适配 */
    @media (max-width: 360px) {
        .wheel-outer { width: 300px; height: 300px; }
        .title { font-size: 26px; letter-spacing: 6px; }
        .wheel-label { width: 84px; height: 140px; margin-left: -42px; margin-top: -140px; padding-top: 6px; }
        .wheel-label .label-icon { font-size: 18px; }
        .wheel-label .label-text { font-size: 11px; }
        .wheel-label .label-text small { font-size: 9px; }
        .center-button { width: 78px; height: 78px; margin-left: -39px; margin-top: -39px; font-size: 24px; }
    }

    .back-btn {
        position: fixed;
        top: 48px;
        left: 12px;
        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: #FFD700;
    }

    /* ========== 实物奖品领奖表单 ========== */
    .gift-claim-form { padding: 0 4px; margin-top: 12px; }
    .gift-product-card {
        background: linear-gradient(135deg, rgba(184,134,11,0.12), rgba(212,175,55,0.06));
        border: 1.5px solid rgba(184,134,11,0.3);
        border-radius: 12px;
        padding: 14px;
        margin-bottom: 14px;
        display: flex;
        align-items: center;
        gap: 12px;
    }
    .gift-product-card .gp-icon {
        font-size: 40px;
        flex-shrink: 0;
        width: 56px; height: 56px;
        display: flex; align-items: center; justify-content: center;
        background: rgba(255,255,255,0.15);
        border-radius: 12px;
    }
    .gift-product-card .gp-info { flex: 1; text-align: left; }
    .gift-product-card .gp-name { font-size: 16px; font-weight: 700; color: #B8860B; }
    .gift-product-card .gp-value { font-size: 12px; color: #8B7355; margin-top: 4px; }
    .gift-product-card .gp-tag { display:inline-block; font-size:10px; color:#fff; background:#C04040; padding:2px 8px; border-radius:8px; margin-top:6px; }
    .gift-form-title { font-size: 13px; color: #4A3728; font-weight: 700; margin-bottom: 10px; text-align: left; }
    .gift-input {
        width: 100%;
        padding: 11px 14px;
        border: 1.5px solid rgba(184,134,11,0.3);
        border-radius: 10px;
        font-size: 14px;
        color: #4A3728;
        background: #FFF8EC;
        margin-bottom: 10px;
        box-sizing: border-box;
        font-family: inherit;
    }
    .gift-input:focus { outline: none; border-color: #D4A574; }
    .gift-textarea { min-height: 70px; resize: vertical; }
    .gift-claim-btn {
        width: 100%;
        padding: 13px;
        background: linear-gradient(135deg, #C04040, #E0584A);
        color: #fff;
        border: none;
        border-radius: 24px;
        font-size: 15px;
        font-weight: 700;
        letter-spacing: 2px;
        cursor: pointer;
        box-shadow: 0 4px 14px rgba(192,64,64,0.3);
        margin-top: 4px;
        font-family: inherit;
    }
    .gift-claim-btn:active { transform: scale(0.97); }
    .gift-claim-btn:disabled { opacity: 0.5; cursor: not-allowed; }
