
    @keyframes twinkleFast { 0%,100% { opacity: 0.1; } 50% { opacity: 0.9; } }
    @keyframes twinkleMedium { 0%,100% { opacity: 0.15; } 50% { opacity: 0.7; } }
    @keyframes twinkleSlow { 0%,100% { opacity: 0.2; } 50% { opacity: 0.5; } }
    @keyframes constellationGlow { 0%,100% { opacity: 0.3; stroke: rgba(200, 120, 140, 0.3); } 50% { opacity: 0.8; stroke: rgba(220, 140, 160, 0.7); } }
    @keyframes bloodMoonGlow {
        0%, 100% { filter: drop-shadow(0 0 6px rgba(160, 40, 40, 0.5)) drop-shadow(0 0 18px rgba(100, 20, 20, 0.4)); }
        50% { filter: drop-shadow(0 0 20px rgba(200, 60, 60, 0.8)) drop-shadow(0 0 40px rgba(140, 30, 30, 0.6)); }
    }
    /* 流星从左向右划过，速度加快 */
    @keyframes shootingStarLeftToRight {
        0% { transform: translateX(0) translateY(0) rotate(18deg); opacity: 1; }
        80% { opacity: 0.8; }
        100% { transform: translateX(500px) translateY(100px) rotate(18deg); opacity: 0; }
    }
    
    .shooting-star {
        position: absolute;
        top: 0;
        left: -60px;
        width: 140px;
        height: 2px;
        background: linear-gradient(90deg, rgba(255,160,120,0), rgba(255,160,120,0.9));
        border-radius: 2px;
        transform: rotate(18deg);
        animation: shootingStarLeftToRight 6s linear infinite;
        z-index: 30;
    }
    .shooting-star::before {
        content: '';
        position: absolute;
        top: -4px;
        right: 0;
        width: 9px;
        height: 9px;
        background: #ffaa88;
        border-radius: 50%;
        box-shadow: 0 0 12px 3px rgba(255,120,80,0.9);
    }
    
    .constellation-line { fill: none; stroke-width: 1.2; stroke-dasharray: 3 3; animation: constellationGlow 4s ease-in-out infinite; }
    .constellation-star { fill: #ffddcc; filter: blur(0.5px); animation: twinkleMedium 3s ease-in-out infinite; }
    .bright-star { fill: #ffeecc; filter: blur(0.5px); animation: twinkleFast 2s ease-in-out infinite; }
    .star-label { fill: rgba(200, 150, 170, 0.6); font-size: 10px; font-family: monospace; letter-spacing: 1px; }
    
    /* 血月满月容器 */
    .blood-moon {
        display: inline-block;
        position: relative;
        animation: bloodMoonGlow 5s ease-in-out infinite;
        cursor: pointer;
    }
    .blood-moon:hover {
        animation: bloodMoonGlow 2s ease-in-out infinite;
    }
    /* 真正的血月表面（暗红/深红/黑红） */
    .blood-moon-surface {
        width: 110px;
        height: 110px;
        background: radial-gradient(ellipse at 35% 30%, #6a2020, #3a0a0a, #1a0000, #0a0000);
        border-radius: 50%;
        box-shadow: inset -20px -15px 40px rgba(0, 0, 0, 0.7), inset 15px 12px 30px rgba(180, 60, 60, 0.1);
        position: relative;
        margin: 0 auto;
        overflow: hidden;
    }
    /* 环形山（深黑红） */
    .crater-blood {
        position: absolute;
        background: radial-gradient(ellipse at 30% 30%, #4a1010, #200000);
        border-radius: 50%;
        box-shadow: inset -2px -2px 5px rgba(0,0,0,0.5), 1px 1px 3px rgba(140, 40, 40, 0.1);
    }
    /* 月面暗区（黑红） */
    .moon-dark-area {
        position: absolute;
        background: radial-gradient(ellipse, rgba(50, 8, 8, 0.7), rgba(30, 3, 3, 0.5));
        border-radius: 50%;
        filter: blur(8px);
        pointer-events: none;
    }
    /* 血雾（暗红半透明） */
    .blood-mist {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: radial-gradient(ellipse at 30% 40%, rgba(100, 15, 15, 0.4), rgba(50, 8, 8, 0.1));
        border-radius: 50%;
        pointer-events: none;
        mix-blend-mode: screen;
    }
    .moon-shadow {
        position: absolute;
        top: 0;
        right: 0;
        width: 35%;
        height: 100%;
        background: radial-gradient(ellipse at 0% 50%, rgba(40, 8, 8, 0.5), rgba(15, 3, 3, 0.8));
        border-radius: 0 50% 50% 0;
        pointer-events: none;
    }
    .moon-highlight {
        position: absolute;
        top: 12%;
        left: 18%;
        width: 28%;
        height: 22%;
        background: radial-gradient(ellipse, rgba(180, 80, 80, 0.2), rgba(180, 80, 80, 0));
        border-radius: 50%;
        filter: blur(10px);
        pointer-events: none;
    }
