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; flex-direction: column; align-items: center; justify-content: flex-start; padding-top: 120rpx; gap: 40px; box-sizing: border-box; } /* ========== 顶部栏 (已移除) ========== */ /* ========== 右上角积分徽章 ========== */ .points-badge { position: absolute; top: 30px; /* Restore original position */ 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; } /* ========== 星座入口 ========== */ .zodiac-entry { width: 80%; max-width: 320px; background: linear-gradient(90deg, #2a2a3e, #16213e); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 16px; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); z-index: 10; animation: float 6s ease-in-out infinite; margin-top: 120rpx; } .entry-hover { transform: scale(0.98); opacity: 0.9; } .zodiac-content { display: flex; flex-direction: column; gap: 4px; } .zodiac-title { color: #fff; font-size: 16px; font-weight: bold; letter-spacing: 1px; } .zodiac-subtitle { color: rgba(255, 255, 255, 0.6); font-size: 12px; } .zodiac-icon { font-size: 28px; filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.3)); } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } } .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 moved to .card-bg */ border-radius: 12px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6); transition: all 0.3s ease; /* overflow: hidden; Removed to allow glow to show outside */ } .card-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, #4a1942 0%, #8b3a62 50%, #e94560 100%); border-radius: 12px; z-index: 0; } /* 模糊光晕描边 */ .card-stack::after { content: ""; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; z-index: -1; background: linear-gradient(135deg, #7a5cff, #005bea); border-radius: 14px; filter: blur(2px); /* 微调模糊度 */ opacity: 1; /* 增强可见度 */ } /* Card Pattern Overlay */ .card-stack::before { content: ""; position: absolute; top: 10px; left: 10px; right: 10px; bottom: 10px; border: 1px solid rgba(255, 215, 0, 0.2); border-radius: 8px; } .card-pattern { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background-image: radial-gradient(circle at center, rgba(255,255,255,0.1) 0%, transparent 60%); } .card-symbol { font-size: 200rpx; /* 最大化视局冲击 */ font-weight: bold; background: linear-gradient(180deg, #FFD700 10%, #E0C3FC 50%, #8A2BE2 90%); /* 金色-淡紫-深紫渐变,增加神秘感 */ -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 20rpx rgba(255, 215, 0, 0.5)) drop-shadow(0 0 50rpx rgba(138, 43, 226, 0.7)); /* 静态综合光晕 */ animation: pulseMystic 4s infinite ease-in-out; display: flex; justify-content: center; align-items: center; line-height: 1; will-change: transform, opacity; /* 硬件加速优化 */ } @keyframes pulseMystic { 0%, 100% { transform: scale(1); opacity: 0.85; } 50% { transform: scale(1.15); opacity: 1; } } .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); /* Semi-transparent white */ border: 1px solid rgba(255, 255, 255, 0.15); /* Light border */ 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; top: 50%; transform: translateY(-50%); } .card-hover { transform: translateY(-5px); box-shadow: 0 12px 35px rgba(233, 69, 96, 0.3); } .energy-card { left: 10px; } .knowledge-card { right: 10px; } .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: 8px 10px 15px; display: flex; justify-content: space-around; z-index: 20; } .drawer-item { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px 8px; 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; } /* 积分浮层特有样式 */ .points-header { display: flex; flex-direction: column; align-items: center; margin-bottom: 25px; position: relative; } .points-big-icon { font-size: 40px; margin-bottom: 5px; filter: drop-shadow(0 0 10px rgba(233, 69, 96, 0.4)); animation: float 4s ease-in-out infinite; } .points-big-value { font-size: 48px; font-weight: bold; color: #fff; text-shadow: 0 0 20px rgba(233, 69, 96, 0.6); line-height: 1; margin-bottom: 5px; } .points-label { font-size: 14px; color: rgba(255, 255, 255, 0.6); letter-spacing: 2px; } .points-rules { background: rgba(0, 0, 0, 0.2); border-radius: 12px; padding: 15px; width: 100%; box-sizing: border-box; margin-bottom: 25px; border: 1px solid rgba(255, 255, 255, 0.05); } .rule-item { display: flex; align-items: center; margin-bottom: 15px; } .rule-item:last-child { margin-bottom: 0; } .rule-icon { font-size: 24px; margin-right: 15px; width: 30px; text-align: center; display: flex; justify-content: center; align-items: center; } .rule-text { display: flex; flex-direction: column; flex: 1; } .rule-title { color: #ffffff !important; font-size: 15px; font-weight: bold; margin-bottom: 4px; text-align: left; text-shadow: 0 1px 2px rgba(0,0,0,0.8); } .rule-desc { color: #eeeeee !important; font-size: 13px; text-align: left; opacity: 0.9; text-shadow: 0 1px 2px rgba(0,0,0,0.5); } .points-content { width: 70% !important; max-width: 300px !important; padding: 20px !important; }