/* 综合火山 - 菱形交错 */
.comp-volcano {
    min-height: 100vh; padding: 12px;
    background: linear-gradient(180deg, #1a1a2e 0%, #2d2d44 30%, #3d1a1a 70%, #2a0a0a 100%);
    overflow-y: auto; -webkit-overflow-scrolling: touch; color: #eee;
}
.volcano-bg {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 0;
    background:
        radial-gradient(ellipse 50% 20% at 50% 100%, rgba(229,62,62,0.3) 0%, transparent 50%),
        radial-gradient(ellipse 30% 10% at 40% 95%, rgba(255,107,53,0.25) 0%, transparent 40%);
}
.volcano-glow {
    position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 200px; height: 100px;
    background: radial-gradient(ellipse, rgba(255,107,53,0.4) 0%, transparent 70%); z-index: 0;
}
.volcano-header {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 8px;
    padding: 8px 16px; margin-bottom: 14px;
}
.volcano-header .v-icon { font-size: 28px; }
.volcano-header .v-name { font-size: 20px; font-weight: 700; color: #ff6b35; }
.volcano-header .v-lv { font-size: 14px; font-weight: 600; color: #ff6b35; }
.volcano-grid {
    position: relative; z-index: 1;
    display: flex; flex-direction: column; gap: 10px; align-items: center;
}
.v-card {
    width: 85%; max-width: 340px;
    transform: rotate(-2deg);
    transition: all 0.2s;
    cursor: pointer;
}
.v-card:nth-child(even) { transform: rotate(2deg); margin-left: 15px; }
.v-card:nth-child(odd) { margin-right: 15px; }
.v-card:hover { transform: rotate(0deg) scale(1.03); }
.v-card.locked { opacity: 0.35; cursor: default; }
.v-card.locked:hover { transform: rotate(-2deg) scale(1); }
.v-card.locked:nth-child(even):hover { transform: rotate(2deg) scale(1); }
.v-card-inner {
    background: linear-gradient(135deg, rgba(229,62,62,0.15), rgba(255,107,53,0.1));
    border: 1px solid rgba(229,62,62,0.3); border-radius: 14px;
    padding: 16px; text-align: center;
}
.v-card:not(.locked) .v-card-inner {
    background: linear-gradient(135deg, rgba(229,62,62,0.25), rgba(255,107,53,0.15));
    border-color: rgba(229,62,62,0.5);
}
.v-num {
    font-size: 18px; font-weight: 700; color: #ff6b35; margin-bottom: 4px;
}
.v-title { font-size: 16px; font-weight: 600; color: #eee; margin-bottom: 6px; }
.v-stars { display: flex; justify-content: center; gap: 2px; }
.v-stars span { font-size: 15px; }
.v-stars .on { color: #ff6b35; }
.v-stars .off { color: #555; }
