page { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f0f23 100%); height: 100%; overflow: hidden; } /* ========== 主容器 ========== */ .tarot-table { width: 100%; height: 100vh; position: relative; display: flex; align-items: center; justify-content: center; } /* ========== 右上角积分徽章 ========== */ .points-badge { position: absolute; top: 30px; right: 20px; background: linear-gradient(135deg, rgba(233, 69, 96, 0.25), rgba(233, 69, 96, 0.15)); border: 1px solid rgba(233, 69, 96, 0.5); border-radius: 20px; padding: 8px 16px; display: flex; align-items: center; gap: 6px; box-shadow: 0 4px 15px rgba(233, 69, 96, 0.2); z-index: 2000; cursor: pointer; } .badge-icon { font-size: 16px; } .badge-value { color: #e94560; font-size: 18px; font-weight: bold; } /* ========== 中央主牌堆 ========== */ .main-deck { position: relative; display: flex; flex-direction: column; align-items: center; gap: 25px; z-index: 10; } .deck-cards { position: relative; width: 180px; height: 260px; } .card-stack { position: absolute; width: 180px; height: 260px; background: linear-gradient(135deg, #e94560 0%, #8b3a62 50%, #4a1942 100%); border-radius: 12px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); transition: all 0.3s ease; } .card-1 { left: 0; top: 0; transform: rotate(-3deg); z-index: 1; } .card-2 { left: 0; top: 0; transform: rotate(0deg); z-index: 2; } .card-3 { left: 0; top: 0; transform: rotate(3deg); z-index: 3; } .deck-hover .card-1 { transform: rotate(-5deg) translateY(-5px); } .deck-hover .card-2 { transform: rotate(0deg) translateY(-8px); } .deck-hover .card-3 { transform: rotate(5deg) translateY(-5px); } .deck-title { color: #fff; font-size: 20px; font-weight: bold; letter-spacing: 2px; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5); } /* ========== 侧边卡片 ========== */ .side-card { position: absolute; width: 90px; height: 120px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); transition: all 0.3s ease; z-index: 5; } .card-hover { transform: translateY(-5px); box-shadow: 0 12px 35px rgba(233, 69, 96, 0.3); } .energy-card { left: 30px; top: 50%; transform: translateY(-50%); } .knowledge-card { right: 30px; top: 50%; transform: translateY(-50%); } .card-icon { font-size: 32px; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3)); } .card-label { color: rgba(255, 255, 255, 0.9); font-size: 12px; letter-spacing: 1px; } /* ========== 底部功能抽屉 ========== */ .function-drawer { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(10px); border-top: 1px solid rgba(255, 255, 255, 0.1); padding: 15px 20px 25px; display: flex; justify-content: space-around; z-index: 20; } .drawer-item { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 10px 15px; border-radius: 12px; transition: all 0.3s ease; } .drawer-hover { background: rgba(255, 255, 255, 0.05); } .drawer-icon { font-size: 24px; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2)); } .drawer-text { color: rgba(255, 255, 255, 0.8); font-size: 12px; letter-spacing: 0.5px; } /* ========== 能量卡浮层 ========== */ .overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0); display: flex; align-items: center; justify-content: center; z-index: 1000; opacity: 0; pointer-events: none; transition: all 0.3s ease; } .overlay.show { background: rgba(0, 0, 0, 0.7); opacity: 1; pointer-events: auto; } .overlay-content { background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 20px; padding: 30px; width: 80%; max-width: 350px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); transform: scale(0.9); transition: all 0.3s ease; } .overlay.show .overlay-content { transform: scale(1); } .overlay-title { color: #fff; font-size: 20px; font-weight: bold; margin-bottom: 20px; display: block; text-align: center; } .overlay-text { color: rgba(255, 255, 255, 0.85); font-size: 15px; line-height: 1.8; display: block; margin-bottom: 25px; text-align: center; } .overlay-close { background: linear-gradient(135deg, #e94560, #8b3a62); color: #fff; padding: 12px 30px; border-radius: 25px; text-align: center; font-size: 14px; font-weight: bold; box-shadow: 0 4px 15px rgba(233, 69, 96, 0.3); } /* ========== 知识卡半屏 ========== */ .panel { position: fixed; left: 0; right: 0; bottom: 0; height: 60vh; background: rgba(0, 0, 0, 0); z-index: 1000; opacity: 0; pointer-events: none; transition: all 0.3s ease; } .panel.show { background: rgba(0, 0, 0, 0.7); opacity: 1; pointer-events: auto; } .panel-content { position: absolute; bottom: 0; left: 0; right: 0; height: 55vh; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-top-left-radius: 25px; border-top-right-radius: 25px; padding: 30px 25px; box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.5); transform: translateY(100%); transition: all 0.3s ease; } .panel.show .panel-content { transform: translateY(0); } .panel-title { color: #fff; font-size: 18px; font-weight: bold; margin-bottom: 20px; display: block; } .panel-article-title { color: #fff; font-size: 20px; font-weight: bold; margin-bottom: 15px; display: block; line-height: 1.4; } .panel-summary { color: rgba(255, 255, 255, 0.7); font-size: 14px; line-height: 1.7; display: block; margin-bottom: 30px; } .panel-actions { display: flex; gap: 12px; } .panel-btn { flex: 1; background: linear-gradient(135deg, #e94560, #8b3a62); color: #fff; padding: 14px; border-radius: 12px; text-align: center; font-size: 14px; font-weight: bold; box-shadow: 0 4px 15px rgba(233, 69, 96, 0.3); } .panel-btn.secondary { background: rgba(255, 255, 255, 0.1); box-shadow: none; }