huaanglimeng/pages/index/index.wxss

1603 lines
45 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

page {
background-color: #0f0f1b;
color: #e0e0e0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
.container {
min-height: 100vh;
background-color: #0f0f1b;
padding: 40rpx 30rpx 100rpx;
box-sizing: border-box;
color: #e0e0e0;
display: flex;
flex-direction: column;
position: relative;
}
/* 自定义返回按钮样式 */
.nav-back {
position: absolute;
top: 40rpx;
left: 30rpx;
display: flex;
align-items: center;
z-index: 100;
padding: 10rpx 20rpx;
border-radius: 30rpx;
background: rgba(255, 255, 255, 0.05);
}
.back-icon {
font-size: 32rpx;
margin-right: 8rpx;
color: #c9a0dc;
}
.back-text {
font-size: 26rpx;
color: #c9a0dc;
letter-spacing: 2rpx;
}
/* 标题通用样式 */
.title-area {
text-align: center;
margin-top: 40rpx;
margin-bottom: 60rpx;
}
.app-title {
font-size: 44rpx;
font-weight: 600;
color: #c9a0dc;
letter-spacing: 4rpx;
display: block;
margin-bottom: 16rpx;
}
.instruction {
font-size: 26rpx;
color: #8a8a9d;
letter-spacing: 1rpx;
}
/* 1. 牌阵选择 - 卡片式V2 */
/* 顶部标题区域 */
.spread-header {
text-align: center;
padding: 60rpx 0 40rpx;
}
.spread-title {
display: block;
font-size: 36rpx;
color: #c9a0dc;
font-weight: 500;
margin-bottom: 12rpx;
letter-spacing: 2rpx;
}
.spread-subtitle {
display: block;
font-size: 24rpx;
color: rgba(201, 160, 220, 0.7);
letter-spacing: 2rpx;
font-weight: 300;
}
/* 标签筛选条 */
.tags-area {
padding: 0 30rpx 30rpx;
}
.tags-scroll {
white-space: nowrap;
}
.tag-item {
display: inline-block;
padding: 12rpx 28rpx;
margin-right: 16rpx;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(201, 160, 220, 0.3);
border-radius: 30rpx;
font-size: 26rpx;
color: rgba(201, 160, 220, 0.8);
transition: all 0.3s ease;
}
.tag-item.active {
background: rgba(201, 160, 220, 0.2);
border-color: rgba(201, 160, 220, 0.6);
color: #ffffff;
transform: scale(1.05);
}
/* 两列卡片网格 */
.spread-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20rpx;
padding: 0 30rpx 40rpx;
}
.spread-card {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(201, 160, 220, 0.3);
border-radius: 20rpx;
padding: 30rpx 24rpx;
position: relative;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.3);
transition: all 0.3s ease;
min-height: 240rpx;
display: flex;
flex-direction: column;
}
.spread-card:active {
transform: translateY(-4rpx);
box-shadow: 0 8rpx 30rpx rgba(201, 160, 220, 0.3);
border-color: rgba(201, 160, 220, 0.5);
}
.card-badge {
position: absolute;
top: 12rpx;
right: 12rpx;
background: rgba(201, 160, 220, 0.3);
padding: 4rpx 12rpx;
border-radius: 8rpx;
font-size: 20rpx;
color: #c9a0dc;
}
.card-name {
display: block;
font-size: 30rpx;
color: #ffffff;
font-weight: 500;
margin-bottom: 12rpx;
padding-right: 60rpx;
}
.card-desc {
display: block;
font-size: 22rpx;
color: rgba(255, 255, 255, 0.6);
line-height: 1.5;
margin-bottom: 20rpx;
flex: 1;
}
.card-footer {
display: flex;
justify-content: space-between;
font-size: 20rpx;
color: rgba(201, 160, 220, 0.7);
padding-top: 16rpx;
border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.card-count {
opacity: 0.8;
}
.card-cost {
font-weight: 500;
}
/* 2. 洗牌仪式感 */
.ritual-area {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.shuffling-container {
position: relative;
width: 200rpx;
height: 300rpx;
margin-bottom: 80rpx;
}
.shuffling-card {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 12rpx;
box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.5);
animation: shuffle 1s infinite alternate ease-in-out;
}
@keyframes shuffle {
from { transform: translateX(-40rpx) rotate(-5deg); }
to { transform: translateX(40rpx) rotate(5deg); }
}
.ritual-hint {
font-size: 28rpx;
color: #c9a0dc;
opacity: 0.8;
animation: breathe 2s infinite ease-in-out;
}
@keyframes breathe {
0%, 100% { opacity: 0.4; }
50% { opacity: 1; }
}
/* 3. 抽牌区域 (槽位 + 扇形) */
.drawing-area {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 40rpx;
}
.slots-container {
display: flex;
flex-wrap: wrap; /* 允许换行 */
justify-content: center;
gap: 20rpx; /* 保持20rpx间距与计算一致 */
min-height: 240rpx; /* 改为最小高度 */
max-height: 480rpx; /* 最多两排的高度 */
margin-bottom: 60rpx;
width: 100%;
padding: 0 30rpx; /* 增加左右padding确保居中 */
}
.slot-item {
width: 100rpx; /* 与WXS计算的宽度一致 */
height: 160rpx; /* 与WXS计算的高度一致 */
position: relative;
flex-shrink: 0; /* 防止收缩 */
}
.slot-placeholder {
width: 100%;
height: 100%;
border: 2rpx dashed rgba(201, 160, 220, 0.3);
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.02);
}
.slot-num {
font-size: 40rpx;
color: rgba(201, 160, 220, 0.2);
font-family: serif;
}
.slot-card-wrapper {
width: 100%;
height: 100%;
animation: flyInSlot 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.slot-card-back {
width: 100%;
height: 100%;
border-radius: 12rpx;
box-shadow: 0 8rpx 20rpx rgba(0,0,0,0.6);
border: 1px solid rgba(255, 255, 255, 0.1);
}
@keyframes flyInSlot {
from {
transform: translateY(400rpx) scale(0.8) rotate(10deg);
opacity: 0;
}
to {
transform: translateY(0) scale(1) rotate(0);
opacity: 1;
}
}
.fan-deck {
position: relative;
height: 380rpx;
width: 100%;
margin-top: 20rpx;
perspective: 1000px;
overflow: visible; /* 允许卡牌飞出容器 */
}
.fan-card {
position: absolute;
left: 50%;
bottom: 0;
width: 150rpx;
height: 260rpx;
margin-left: -75rpx;
transform-origin: bottom center;
transition: transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
z-index: 10;
}
.card-back-sm {
width: 100%;
height: 100%;
border-radius: 10rpx;
box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.5);
border: 1px solid rgba(255, 255, 255, 0.05);
}
.fan-card.is-selected {
z-index: 100;
pointer-events: auto; /* 允许点击已抽出的牌返回 */
}
.draw-count {
text-align: center;
font-size: 36rpx;
color: #c9a0dc;
margin-top: 60rpx;
}
.confirm-draw-btn {
margin: 40rpx auto;
background: #c9a0dc;
color: #1a1a2e;
border-radius: 40rpx;
font-weight: 600;
width: 300rpx;
}
/* 4. 翻牌结果展示 */
.result-area {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
padding: 30rpx 20rpx;
overflow-y: auto;
}
.spread-display {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: flex-start;
gap: 12rpx;
padding: 20rpx 0;
margin: 0 auto;
}
/* 牌阵专属布局 - 传统排列方式 */
/* 1张牌 - 居中 */
.spread-display.one_card_guidance {
max-width: 130rpx;
}
/* 3张牌 - 横排 */
.spread-display.three_time_flow,
.spread-display.three_problem_solution,
.spread-display.love_spark {
display: grid;
grid-template-columns: repeat(3, 110rpx);
gap: 15rpx;
max-width: 375rpx;
}
/* 4张牌 - 2x2网格 */
.spread-display.two_choice_decision,
.spread-display.relationship_healing {
display: grid;
grid-template-columns: repeat(2, 110rpx);
gap: 15rpx;
max-width: 245rpx;
}
/* 5张牌 - 十字形 (现状分析) */
.spread-display.five_situation_analysis {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.five_situation_analysis .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.five_situation_analysis .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.five_situation_analysis .card-slot:nth-child(3) { grid-area: 3 / 2; }
.spread-display.five_situation_analysis .card-slot:nth-child(4) { grid-area: 2 / 1; }
.spread-display.five_situation_analysis .card-slot:nth-child(5) { grid-area: 2 / 3; }
/* 5张牌 - 关系洞察 */
.spread-display.relationship_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.relationship_spread .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.relationship_spread .card-slot:nth-child(2) { grid-area: 2 / 3; }
.spread-display.relationship_spread .card-slot:nth-child(3) { grid-area: 2 / 2; }
.spread-display.relationship_spread .card-slot:nth-child(4) { grid-area: 1 / 2; }
.spread-display.relationship_spread .card-slot:nth-child(5) { grid-area: 3 / 2; }
/* 5张牌 - 缘分探索 */
.spread-display.destiny_connection {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.destiny_connection .card-slot:nth-child(1) { grid-area: 1 / 2; }
.spread-display.destiny_connection .card-slot:nth-child(2) { grid-area: 2 / 2; }
.spread-display.destiny_connection .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.destiny_connection .card-slot:nth-child(4) { grid-area: 2 / 3; }
.spread-display.destiny_connection .card-slot:nth-child(5) { grid-area: 3 / 2; }
/* 5张牌 - 职场突破 */
.spread-display.career_breakthrough {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.career_breakthrough .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.career_breakthrough .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.career_breakthrough .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.career_breakthrough .card-slot:nth-child(4) { grid-area: 3 / 2; }
.spread-display.career_breakthrough .card-slot:nth-child(5) { grid-area: 2 / 1; }
/* 5张牌 - 横排 */
.spread-display.timeline_spread,
.spread-display.diamond_spread {
display: grid;
grid-template-columns: repeat(5, 110rpx);
gap: 12rpx;
max-width: 600rpx;
}
/* 6张牌 - 2x3网格 */
.spread-display.career_planning,
.spread-display.wealth_analysis {
display: grid;
grid-template-columns: repeat(3, 110rpx);
gap: 15rpx;
max-width: 375rpx;
}
/* 7张牌 - 马蹄铁形 */
.spread-display.horseshoe_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.horseshoe_spread .card-slot:nth-child(1) { grid-area: 4 / 1; }
.spread-display.horseshoe_spread .card-slot:nth-child(2) { grid-area: 3 / 1; }
.spread-display.horseshoe_spread .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.horseshoe_spread .card-slot:nth-child(4) { grid-area: 1 / 2; }
.spread-display.horseshoe_spread .card-slot:nth-child(5) { grid-area: 2 / 3; }
.spread-display.horseshoe_spread .card-slot:nth-child(6) { grid-area: 3 / 3; }
.spread-display.horseshoe_spread .card-slot:nth-child(7) { grid-area: 4 / 3; }
/* 7张牌 - 灵性指引 */
.spread-display.spiritual_guidance {
display: grid;
grid-template-columns: repeat(3, 110rpx);
gap: 15rpx;
max-width: 375rpx;
}
/* 10张牌 - 凯尔特十字 */
.spread-display.celtic_cross {
display: grid;
grid-template-columns: repeat(6, 104rpx);
grid-template-rows: repeat(4, auto);
gap: 8rpx;
max-width: 100%;
}
.spread-display.celtic_cross .card-slot { width: 104rpx; }
.spread-display.celtic_cross .flip-scene { width: 104rpx; height: 174rpx; }
.spread-display.celtic_cross .card-slot:nth-child(1) { grid-area: 2 / 3; }
.spread-display.celtic_cross .card-slot:nth-child(2) { grid-area: 2 / 3; transform: rotate(90deg); z-index: 1; }
.spread-display.celtic_cross .card-slot:nth-child(3) { grid-area: 3 / 3; }
.spread-display.celtic_cross .card-slot:nth-child(4) { grid-area: 2 / 2; }
.spread-display.celtic_cross .card-slot:nth-child(5) { grid-area: 1 / 3; }
.spread-display.celtic_cross .card-slot:nth-child(6) { grid-area: 2 / 4; }
.spread-display.celtic_cross .card-slot:nth-child(7) { grid-area: 1 / 5; }
.spread-display.celtic_cross .card-slot:nth-child(8) { grid-area: 2 / 5; }
.spread-display.celtic_cross .card-slot:nth-child(9) { grid-area: 3 / 5; }
.spread-display.celtic_cross .card-slot:nth-child(10) { grid-area: 4 / 5; }
/* 10张牌 - 生命之树 */
.spread-display.tree_of_life {
display: grid;
grid-template-columns: repeat(3, 104rpx);
grid-template-rows: repeat(5, auto);
gap: 10rpx;
max-width: 100%;
}
.spread-display.tree_of_life .card-slot { width: 104rpx; }
.spread-display.tree_of_life .flip-scene { width: 104rpx; height: 174rpx; }
.spread-display.tree_of_life .card-slot:nth-child(1) { grid-area: 1 / 2; }
.spread-display.tree_of_life .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.tree_of_life .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.tree_of_life .card-slot:nth-child(4) { grid-area: 3 / 1; }
.spread-display.tree_of_life .card-slot:nth-child(5) { grid-area: 3 / 3; }
.spread-display.tree_of_life .card-slot:nth-child(6) { grid-area: 3 / 2; }
.spread-display.tree_of_life .card-slot:nth-child(7) { grid-area: 4 / 1; }
.spread-display.tree_of_life .card-slot:nth-child(8) { grid-area: 4 / 3; }
.spread-display.tree_of_life .card-slot:nth-child(9) { grid-area: 4 / 2; }
.spread-display.tree_of_life .card-slot:nth-child(10) { grid-area: 5 / 2; }
/* 新增爱情牌阵布局 */
/* 恋人金字塔 - 4张牌 */
.spread-display.lover_pyramid {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.lover_pyramid .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.lover_pyramid .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.lover_pyramid .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.lover_pyramid .card-slot:nth-child(4) { grid-area: 1 / 2; }
/* 新爱牌阵 - 3张牌对角线 */
.spread-display.new_love {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.new_love .card-slot:nth-child(1) { grid-area: 1 / 1; }
.spread-display.new_love .card-slot:nth-child(2) { grid-area: 2 / 2; }
.spread-display.new_love .card-slot:nth-child(3) { grid-area: 3 / 3; }
/* 人际关系牌阵 - 3张牌倒三角 */
.spread-display.relationship_basic {
display: grid;
grid-template-columns: repeat(2, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 245rpx;
}
.spread-display.relationship_basic .card-slot:nth-child(1) { grid-area: 1 / 1; }
.spread-display.relationship_basic .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.relationship_basic .card-slot:nth-child(3) { grid-area: 2 / 1 / 2 / 3; justify-self: center; }
/* 爱情树牌阵 - 5张牌树形 */
.spread-display.love_tree_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.love_tree_spread .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.love_tree_spread .card-slot:nth-child(2) { grid-area: 1 / 1; }
.spread-display.love_tree_spread .card-slot:nth-child(3) { grid-area: 1 / 2; }
.spread-display.love_tree_spread .card-slot:nth-child(4) { grid-area: 1 / 3; }
.spread-display.love_tree_spread .card-slot:nth-child(5) { grid-area: 3 / 2; }
/* 爱情大十字 - 5张牌十字形 */
.spread-display.love_cross_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.love_cross_spread .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.love_cross_spread .card-slot:nth-child(2) { grid-area: 2 / 3; }
.spread-display.love_cross_spread .card-slot:nth-child(3) { grid-area: 1 / 2; }
.spread-display.love_cross_spread .card-slot:nth-child(4) { grid-area: 2 / 2; }
.spread-display.love_cross_spread .card-slot:nth-child(5) { grid-area: 3 / 2; }
/* 真命天子牌阵 - 5张牌菱形 */
.spread-display.mr_right {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.mr_right .card-slot:nth-child(1) { grid-area: 3 / 1; }
.spread-display.mr_right .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.mr_right .card-slot:nth-child(3) { grid-area: 1 / 2; }
.spread-display.mr_right .card-slot:nth-child(4) { grid-area: 2 / 3; }
.spread-display.mr_right .card-slot:nth-child(5) { grid-area: 3 / 3; }
/* 寻找对象牌阵 - 5张牌X形 */
.spread-display.search_lover {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.search_lover .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.search_lover .card-slot:nth-child(2) { grid-area: 1 / 1; }
.spread-display.search_lover .card-slot:nth-child(3) { grid-area: 1 / 3; }
.spread-display.search_lover .card-slot:nth-child(4) { grid-area: 3 / 1; }
.spread-display.search_lover .card-slot:nth-child(5) { grid-area: 3 / 3; }
/* 灵感对应牌阵 - 6张牌2x3网格 */
.spread-display.inspiration_correspondence {
display: grid;
grid-template-columns: repeat(3, 110rpx);
gap: 15rpx;
max-width: 375rpx;
}
/* 吉普赛牌阵 - 5张牌十字形 */
.spread-display.gypsy_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.gypsy_spread .card-slot:nth-child(1) { grid-area: 1 / 2; }
.spread-display.gypsy_spread .card-slot:nth-child(2) { grid-area: 3 / 2; }
.spread-display.gypsy_spread .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.gypsy_spread .card-slot:nth-child(4) { grid-area: 2 / 2; }
.spread-display.gypsy_spread .card-slot:nth-child(5) { grid-area: 2 / 3; }
/* 维纳斯牌阵 - 8张牌复杂菱形 */
.spread-display.venus_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.venus_spread .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.venus_spread .card-slot:nth-child(2) { grid-area: 2 / 3; }
.spread-display.venus_spread .card-slot:nth-child(3) { grid-area: 1 / 2; }
.spread-display.venus_spread .card-slot:nth-child(4) { grid-area: 2 / 2; }
.spread-display.venus_spread .card-slot:nth-child(5) { grid-area: 3 / 2; }
.spread-display.venus_spread .card-slot:nth-child(6) { grid-area: 4 / 2; }
.spread-display.venus_spread .card-slot:nth-child(7) { grid-area: 3 / 1; }
.spread-display.venus_spread .card-slot:nth-child(8) { grid-area: 3 / 3; }
/* 恋人之树牌阵 - 7张牌树形对称 */
.spread-display.lover_tree {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.lover_tree .card-slot:nth-child(1) { grid-area: 1 / 1; }
.spread-display.lover_tree .card-slot:nth-child(2) { grid-area: 1 / 3; }
.spread-display.lover_tree .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.lover_tree .card-slot:nth-child(4) { grid-area: 2 / 3; }
.spread-display.lover_tree .card-slot:nth-child(5) { grid-area: 3 / 1; }
.spread-display.lover_tree .card-slot:nth-child(6) { grid-area: 3 / 3; }
.spread-display.lover_tree .card-slot:nth-child(7) { grid-area: 4 / 2; }
/* 婚姻牌阵 - 7张牌六芒星形 */
.spread-display.marriage_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.marriage_spread .card-slot:nth-child(1) { grid-area: 4 / 2; }
.spread-display.marriage_spread .card-slot:nth-child(2) { grid-area: 3 / 1; }
.spread-display.marriage_spread .card-slot:nth-child(3) { grid-area: 3 / 3; }
.spread-display.marriage_spread .card-slot:nth-child(4) { grid-area: 2 / 2; }
.spread-display.marriage_spread .card-slot:nth-child(5) { grid-area: 1 / 1; }
.spread-display.marriage_spread .card-slot:nth-child(6) { grid-area: 1 / 3; }
.spread-display.marriage_spread .card-slot:nth-child(7) { grid-area: 1 / 2; }
/* 新增事业牌阵布局 */
/* 金三角牌阵 - 3张牌金字塔形 */
.spread-display.golden_triangle {
display: grid;
grid-template-columns: repeat(2, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 245rpx;
}
.spread-display.golden_triangle .card-slot:nth-child(1) { grid-area: 1 / 1 / 1 / 3; justify-self: center; }
.spread-display.golden_triangle .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.golden_triangle .card-slot:nth-child(3) { grid-area: 2 / 2; }
/* 成功之星牌阵 - 3张牌三角形 */
.spread-display.success_star {
display: grid;
grid-template-columns: repeat(2, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 245rpx;
}
.spread-display.success_star .card-slot:nth-child(1) { grid-area: 1 / 1; }
.spread-display.success_star .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.success_star .card-slot:nth-child(3) { grid-area: 1 / 2 / 3 / 3; align-self: center; }
/* 事业金字塔 - 4张牌金字塔形 */
.spread-display.career_pyramid {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.career_pyramid .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.career_pyramid .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.career_pyramid .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.career_pyramid .card-slot:nth-child(4) { grid-area: 1 / 2; }
/* 财富之树牌阵 - 5张牌十字树形 */
.spread-display.wealth_tree {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.wealth_tree .card-slot:nth-child(1) { grid-area: 3 / 2; }
.spread-display.wealth_tree .card-slot:nth-child(2) { grid-area: 2 / 2; }
.spread-display.wealth_tree .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.wealth_tree .card-slot:nth-child(4) { grid-area: 2 / 1; }
.spread-display.wealth_tree .card-slot:nth-child(5) { grid-area: 1 / 2; }
/* X时机牌阵 - 5张牌X形 */
.spread-display.x_opportunity {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.x_opportunity .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.x_opportunity .card-slot:nth-child(2) { grid-area: 1 / 1; }
.spread-display.x_opportunity .card-slot:nth-child(3) { grid-area: 1 / 3; }
.spread-display.x_opportunity .card-slot:nth-child(4) { grid-area: 3 / 1; }
.spread-display.x_opportunity .card-slot:nth-child(5) { grid-area: 3 / 3; }
/* 面试求职牌阵 - 5张牌十字形 */
.spread-display.job_interview {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.job_interview .card-slot:nth-child(1) { grid-area: 3 / 2; }
.spread-display.job_interview .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.job_interview .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.job_interview .card-slot:nth-child(4) { grid-area: 2 / 2; }
.spread-display.job_interview .card-slot:nth-child(5) { grid-area: 1 / 2; }
/* 工作问题牌阵 - 6张牌六边形 */
.spread-display.work_problems {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.work_problems .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.work_problems .card-slot:nth-child(2) { grid-area: 1 / 1; }
.spread-display.work_problems .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.work_problems .card-slot:nth-child(4) { grid-area: 2 / 3; }
.spread-display.work_problems .card-slot:nth-child(5) { grid-area: 1 / 3; }
.spread-display.work_problems .card-slot:nth-child(6) { grid-area: 3 / 2; }
/* 财富波浪牌阵 - 6张牌波浪形 */
.spread-display.turbulent_finances {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.turbulent_finances .card-slot:nth-child(1) { grid-area: 3 / 1; }
.spread-display.turbulent_finances .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.turbulent_finances .card-slot:nth-child(3) { grid-area: 2 / 2; }
.spread-display.turbulent_finances .card-slot:nth-child(4) { grid-area: 2 / 3; }
.spread-display.turbulent_finances .card-slot:nth-child(5) { grid-area: 3 / 3; }
.spread-display.turbulent_finances .card-slot:nth-child(6) { grid-area: 1 / 2; }
/* 期望的工作 - 6张牌对称形 */
.spread-display.desired_job {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.desired_job .card-slot:nth-child(1) { grid-area: 1 / 2; }
.spread-display.desired_job .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.desired_job .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.desired_job .card-slot:nth-child(4) { grid-area: 3 / 1; }
.spread-display.desired_job .card-slot:nth-child(5) { grid-area: 3 / 2; }
.spread-display.desired_job .card-slot:nth-child(6) { grid-area: 3 / 3; }
/* 新增决策牌阵布局 */
/* 二个选择牌阵 - 3张牌倒三角 */
.spread-display.two_options {
display: grid;
grid-template-columns: repeat(2, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 245rpx;
}
.spread-display.two_options .card-slot:nth-child(1) { grid-area: 1 / 1; }
.spread-display.two_options .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.two_options .card-slot:nth-child(3) { grid-area: 2 / 1 / 2 / 3; justify-self: center; }
/* 三个选择牌阵 - 3张牌正三角 */
.spread-display.three_options {
display: grid;
grid-template-columns: repeat(2, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 245rpx;
}
.spread-display.three_options .card-slot:nth-child(1) { grid-area: 1 / 1 / 1 / 3; justify-self: center; }
.spread-display.three_options .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.three_options .card-slot:nth-child(3) { grid-area: 2 / 2; }
/* 每日树牌阵 - 4张牌十字形 */
.spread-display.daily_tree {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.daily_tree .card-slot:nth-child(1) { grid-area: 3 / 2; }
.spread-display.daily_tree .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.daily_tree .card-slot:nth-child(3) { grid-area: 1 / 2; }
.spread-display.daily_tree .card-slot:nth-child(4) { grid-area: 2 / 3; }
/* 二选一牌阵 - 5张牌菱形 */
.spread-display.weigh_two {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.weigh_two .card-slot:nth-child(1) { grid-area: 3 / 2; }
.spread-display.weigh_two .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.weigh_two .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.weigh_two .card-slot:nth-child(4) { grid-area: 1 / 1; }
.spread-display.weigh_two .card-slot:nth-child(5) { grid-area: 1 / 3; }
/* 比较选择牌阵 - 6张牌3+3排列 */
.spread-display.comparing_choices {
display: grid;
grid-template-columns: repeat(3, 110rpx);
gap: 12rpx;
max-width: 375rpx;
}
/* 三选一牌阵 - 7张牌复杂对称形 */
.spread-display.weigh_three {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.weigh_three .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.weigh_three .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.weigh_three .card-slot:nth-child(3) { grid-area: 2 / 2; }
.spread-display.weigh_three .card-slot:nth-child(4) { grid-area: 3 / 2; }
.spread-display.weigh_three .card-slot:nth-child(5) { grid-area: 1 / 3; }
.spread-display.weigh_three .card-slot:nth-child(6) { grid-area: 2 / 3; }
.spread-display.weigh_three .card-slot:nth-child(7) { grid-area: 3 / 3; }
/* 新增深度探索牌阵布局 */
/* 身心灵牌阵 - 4张牌倒T形 */
.spread-display.mind_body_spirit {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.mind_body_spirit .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.mind_body_spirit .card-slot:nth-child(2) { grid-area: 2 / 2; }
.spread-display.mind_body_spirit .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.mind_body_spirit .card-slot:nth-child(4) { grid-area: 1 / 2; }
/* 四元素牌阵 - 4张牌2x2方形 */
.spread-display.four_elements {
display: grid;
grid-template-columns: repeat(2, 110rpx);
grid-template-rows: repeat(2, auto);
gap: 15rpx;
max-width: 245rpx;
}
.spread-display.four_elements .card-slot:nth-child(1) { grid-area: 1 / 1; }
.spread-display.four_elements .card-slot:nth-child(2) { grid-area: 2 / 1; }
.spread-display.four_elements .card-slot:nth-child(3) { grid-area: 2 / 2; }
.spread-display.four_elements .card-slot:nth-child(4) { grid-area: 1 / 2; }
/* 自我探索牌阵 - 4张牌箭头三角形 */
.spread-display.self_discovery {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.self_discovery .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.self_discovery .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.self_discovery .card-slot:nth-child(3) { grid-area: 3 / 1; }
.spread-display.self_discovery .card-slot:nth-child(4) { grid-area: 3 / 3; }
/* 认识你自己 - 5张牌十字形 */
.spread-display.know_yourself {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 15rpx;
max-width: 375rpx;
}
.spread-display.know_yourself .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.know_yourself .card-slot:nth-child(2) { grid-area: 1 / 2; }
.spread-display.know_yourself .card-slot:nth-child(3) { grid-area: 2 / 3; }
.spread-display.know_yourself .card-slot:nth-child(4) { grid-area: 3 / 2; }
.spread-display.know_yourself .card-slot:nth-child(5) { grid-area: 2 / 1; }
/* 你的突破牌阵 - 5张牌五角形 */
.spread-display.your_breakthrough {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.your_breakthrough .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.your_breakthrough .card-slot:nth-child(2) { grid-area: 2 / 3; }
.spread-display.your_breakthrough .card-slot:nth-child(3) { grid-area: 1 / 2; }
.spread-display.your_breakthrough .card-slot:nth-child(4) { grid-area: 3 / 1; }
.spread-display.your_breakthrough .card-slot:nth-child(5) { grid-area: 3 / 3; }
/* 元素十字牌阵 - 6张牌十字形 */
.spread-display.elemental_cross {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 12rpx;
max-width: 375rpx;
}
.spread-display.elemental_cross .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.elemental_cross .card-slot:nth-child(2) { grid-area: 2 / 3; }
.spread-display.elemental_cross .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.elemental_cross .card-slot:nth-child(4) { grid-area: 1 / 2; }
.spread-display.elemental_cross .card-slot:nth-child(5) { grid-area: 3 / 2; }
.spread-display.elemental_cross .card-slot:nth-child(6) { grid-area: 4 / 2; }
/* 车轮牌阵 - 7张牌圆形轮状 */
.spread-display.wheel_spread {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 10rpx;
max-width: 375rpx;
}
.spread-display.wheel_spread .card-slot:nth-child(1) { grid-area: 2 / 2; }
.spread-display.wheel_spread .card-slot:nth-child(2) { grid-area: 1 / 1; }
.spread-display.wheel_spread .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.wheel_spread .card-slot:nth-child(4) { grid-area: 3 / 1; }
.spread-display.wheel_spread .card-slot:nth-child(5) { grid-area: 1 / 3; }
.spread-display.wheel_spread .card-slot:nth-child(6) { grid-area: 2 / 3; }
.spread-display.wheel_spread .card-slot:nth-child(7) { grid-area: 3 / 3; }
/* 七行星牌阵 - 7张牌星形排列 */
.spread-display.seven_planets {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(4, auto);
gap: 10rpx;
max-width: 375rpx;
}
.spread-display.seven_planets .card-slot:nth-child(1) { grid-area: 4 / 1; }
.spread-display.seven_planets .card-slot:nth-child(2) { grid-area: 3 / 1; }
.spread-display.seven_planets .card-slot:nth-child(3) { grid-area: 2 / 1; }
.spread-display.seven_planets .card-slot:nth-child(4) { grid-area: 1 / 2; }
.spread-display.seven_planets .card-slot:nth-child(5) { grid-area: 2 / 3; }
.spread-display.seven_planets .card-slot:nth-child(6) { grid-area: 3 / 3; }
.spread-display.seven_planets .card-slot:nth-child(7) { grid-area: 4 / 3; }
/* 梦镜牌阵 - 7张牌金字塔形 */
.spread-display.dream_mirror {
display: grid;
grid-template-columns: repeat(3, 110rpx);
grid-template-rows: repeat(3, auto);
gap: 10rpx;
max-width: 375rpx;
}
.spread-display.dream_mirror .card-slot:nth-child(1) { grid-area: 2 / 1; }
.spread-display.dream_mirror .card-slot:nth-child(2) { grid-area: 3 / 1; }
.spread-display.dream_mirror .card-slot:nth-child(3) { grid-area: 2 / 2; }
.spread-display.dream_mirror .card-slot:nth-child(4) { grid-area: 3 / 2; }
.spread-display.dream_mirror .card-slot:nth-child(5) { grid-area: 2 / 3; }
.spread-display.dream_mirror .card-slot:nth-child(6) { grid-area: 3 / 3; }
.spread-display.dream_mirror .card-slot:nth-child(7) { grid-area: 1 / 2; }
.card-slot {
display: flex;
flex-direction: column;
align-items: center;
width: 124rpx;
margin-bottom: 8rpx;
}
.pos-info {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
min-height: 60rpx;
margin-bottom: 8rpx;
width: 140%; /* Allow spilling over slightly */
margin-left: -20%; /* Center the spill */
}
.pos-text-main {
font-size: 24rpx;
color: #8a8a9d;
text-align: center;
line-height: 1.2;
white-space: nowrap; /* Force single line if possible, or allow wrap controlling height */
}
.pos-seq {
font-size: 20rpx;
color: rgba(138, 138, 157, 0.6);
margin-top: 4rpx;
}
.flip-scene {
width: 124rpx;
height: 208rpx;
perspective: 1000rpx;
}
.flip-card {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.6s;
transform-style: preserve-3d;
}
.flip-card.flipped {
transform: rotateY(180deg);
}
.card-face {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
border-radius: 12rpx;
overflow: hidden;
}
.face-back { background: #2a2a3e; }
.face-front { background: #1a1a2e; transform: rotateY(180deg); }
.card-image { width: 100%; height: 100%; }
.card-image.reversed { transform: rotate(180deg); }
.card-name-sm {
margin-top: 12rpx;
font-size: 22rpx;
color: #c9a0dc;
text-align: center;
}
/* 5. 深度解读区域 */
.interpretation-area {
margin-top: 20rpx;
background: rgba(255, 255, 255, 0.03);
border-radius: 24rpx;
padding: 20rpx;
}
.theme-box {
text-align: center;
margin-bottom: 60rpx;
background: rgba(201, 160, 220, 0.08);
padding: 30rpx;
border-radius: 16rpx;
}
.label {
display: block;
font-size: 20rpx;
color: #c9a0dc;
text-transform: uppercase;
letter-spacing: 4rpx;
margin-bottom: 16rpx;
opacity: 0.6;
}
.theme-box .content {
font-size: 34rpx;
font-weight: 500;
color: #ffffff;
line-height: 1.4;
}
.info-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30rpx;
margin-bottom: 60rpx;
}
.info-item .content {
font-size: 26rpx;
line-height: 1.6;
color: #b0b0cf;
}
.pos-meanings {
border-top: 1px solid rgba(255, 255, 255, 0.05);
padding-top: 40rpx;
margin-bottom: 60rpx;
}
.pos-meaning-item {
margin-bottom: 40rpx;
}
.pos-title {
font-size: 24rpx;
color: #c9a0dc;
display: block;
margin-bottom: 12rpx;
font-weight: 500;
}
.pos-text {
font-size: 26rpx;
color: #b0b0cf;
line-height: 1.8;
}
.advice-box {
background: linear-gradient(135deg, rgba(201, 160, 220, 0.1), rgba(201, 160, 220, 0.03));
padding: 40rpx;
border-radius: 20rpx;
border-left: 4rpx solid #c9a0dc;
}
.advice-box .content {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
line-height: 1.6;
}
.reset-btn {
margin-top: 80rpx;
background: transparent;
color: #c9a0dc;
border: 1px solid rgba(201, 160, 220, 0.4);
font-size: 24rpx;
border-radius: 40rpx;
width: 240rpx;
}
/* AI Loading */
.loading-ai {
display: flex;
flex-direction: column;
align-items: center;
padding: 20rpx 0;
color: #c9a0dc;
font-size: 26rpx;
}
.loading-dot {
font-size: 60rpx;
margin-bottom: 30rpx;
animation: flash 1.5s infinite;
}
@keyframes flash {
0%, 100% { opacity: 0.3; transform: scale(0.9); }
50% { opacity: 1; transform: scale(1.1); }
}
/* 整体趋势故事框 */
.story-box {
background: linear-gradient(135deg, rgba(201, 160, 220, 0.1), rgba(138, 138, 157, 0.05));
padding: 30rpx;
border-radius: 16rpx;
margin-bottom: 30rpx;
border-left: 4rpx solid #c9a0dc;
}
.story-box .label {
display: block;
font-size: 24rpx;
color: #c9a0dc;
margin-bottom: 15rpx;
font-weight: 600;
letter-spacing: 2rpx;
}
.story-box .content {
font-size: 28rpx;
color: #e0e0e0;
line-height: 1.8;
}
/* 提问区域 - 沉浸式仪式感版本 */
.asking-area {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
padding: 80rpx 40rpx 60rpx;
background: linear-gradient(180deg, #0f0f1b 0%, #1a1a2e 50%, #16213e 100%);
position: relative;
}
/* 顶部引导语 */
.asking-title {
font-size: 24rpx;
color: rgba(201, 160, 220, 0.6);
letter-spacing: 4rpx;
text-align: center;
margin-bottom: 60rpx;
font-weight: 300;
}
/* 中央塔罗卡片式输入区 */
.input-card {
width: 100%;
background: rgba(201, 160, 220, 0.08);
backdrop-filter: blur(10px);
border: 2px solid rgba(201, 160, 220, 0.3);
border-radius: 40rpx;
padding: 40rpx;
margin-bottom: 50rpx;
position: relative;
box-shadow: 0 0 40rpx rgba(201, 160, 220, 0.2);
transition: all 0.4s ease;
}
.input-card:focus-within {
border-color: rgba(201, 160, 220, 0.6);
box-shadow: 0 0 60rpx rgba(201, 160, 220, 0.4);
background: rgba(201, 160, 220, 0.12);
}
.question-input {
width: 100%;
height: 280rpx;
font-size: 32rpx;
color: #ffffff;
line-height: 1.6;
background: transparent;
}
.placeholder-style {
color: rgba(255, 255, 255, 0.25);
font-size: 28rpx;
}
.char-count {
position: absolute;
bottom: 30rpx;
right: 40rpx;
font-size: 20rpx;
color: rgba(138, 138, 157, 0.5);
}
/* 质量评分指示器 - 精简版 */
.quality-indicator {
display: flex;
align-items: center;
justify-content: center;
margin-top: 24rpx;
padding: 12rpx 20rpx;
background: rgba(139, 233, 253, 0.08);
border-radius: 20rpx;
border: 1px solid rgba(139, 233, 253, 0.2);
}
.quality-icon {
font-size: 32rpx;
margin-right: 8rpx;
}
.quality-text {
font-size: 24rpx;
color: #8be9fd;
font-weight: 400;
opacity: 0.8;
}
/* 温和分割线 */
.divider {
width: 200rpx;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(201, 160, 220, 0.3), transparent);
margin: 30rpx 0 40rpx;
}
/* 塔罗低语区域 */
.whispers-area {
width: 100%;
margin-bottom: 60rpx;
}
.whispers-title {
display: block;
font-size: 24rpx;
color: rgba(201, 160, 220, 0.7);
text-align: center;
margin-bottom: 30rpx;
letter-spacing: 3rpx;
font-weight: 300;
}
.whispers-scroll {
width: 100%;
white-space: nowrap;
}
/* 塔罗低语卡片 */
.whisper-card {
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(201, 160, 220, 0.3);
border-radius: 20rpx;
padding: 28rpx 32rpx;
margin-right: 20rpx;
min-width: 260rpx;
max-width: 340rpx;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.3);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.whisper-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at center, rgba(201, 160, 220, 0.1), transparent);
opacity: 0;
transition: opacity 0.3s ease;
}
.whisper-card:active {
transform: scale(1.05);
}
.whisper-card.selected {
background: rgba(201, 160, 220, 0.15);
border-color: rgba(201, 160, 220, 0.6);
box-shadow: 0 0 30rpx rgba(201, 160, 220, 0.4);
}
.whisper-card.selected::before {
opacity: 1;
}
.whisper-text {
font-size: 28rpx;
color: #e0e0e0;
line-height: 1.5;
text-align: center;
word-wrap: break-word;
white-space: normal;
position: relative;
z-index: 1;
}
.whisper-card.selected .whisper-text {
color: #ffffff;
font-weight: 500;
}
/* 开启塔罗指引按钮 */
.start-btn {
background: linear-gradient(135deg, #c9a0dc 0%, #8b7ba8 100%);
color: #ffffff;
font-size: 32rpx;
font-weight: 600;
padding: 28rpx 120rpx;
border-radius: 50rpx;
box-shadow: 0 8rpx 30rpx rgba(201, 160, 220, 0.4);
transition: all 0.2s ease;
border: none;
letter-spacing: 2rpx;
}
.start-btn::after {
border: none;
}
.start-btn:active {
transform: scale(0.95);
box-shadow: 0 4rpx 20rpx rgba(201, 160, 220, 0.3);
}
/* =========================================
流式 AI 解读输出样式
========================================= */
.stream-result {
padding: 30rpx 20rpx;
animation: fadeIn 0.3s ease;
}
.stream-text {
display: block;
font-size: 28rpx;
color: #e8e0f0;
line-height: 1.8;
white-space: pre-wrap; /* 保留换行 */
word-break: break-all;
letter-spacing: 0.5rpx;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10rpx); }
to { opacity: 1; transform: translateY(0); }
}
/* 翻牌提示 */
.flip-hint {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
gap: 16rpx;
margin-top: 32rpx;
animation: hintPulse 2s ease-in-out infinite;
}
.flip-hint-text {
font-size: 26rpx;
color: #c9a0dc;
letter-spacing: 2rpx;
}
.flip-hint-icon {
font-size: 20rpx;
color: #c9a0dc;
}
@keyframes hintPulse {
0%, 100% { opacity: 0.5; }
50% { opacity: 1; }
}
/* AI 警示语精简版 */
.ai-warning {
margin-top: 40rpx;
text-align: center;
font-size: 22rpx;
color: rgba(201, 160, 220, 0.4);
letter-spacing: 1rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 40rpx;
}
/* 5. 分享引导模块 */
.share-guidance {
width: 100%;
max-width: 600rpx;
background: linear-gradient(135deg, rgba(201, 160, 220, 0.1) 0%, rgba(201, 160, 220, 0.05) 100%);
border: 1px solid rgba(201, 160, 220, 0.3);
border-radius: 20rpx;
padding: 30rpx;
margin: 40rpx 0;
text-align: center;
box-sizing: border-box;
}
.guidance-text {
font-size: 28rpx;
color: #c9a0dc;
margin-bottom: 24rpx;
font-style: italic;
letter-spacing: 2rpx;
text-shadow: 0 0 10rpx rgba(201, 160, 220, 0.3);
}
.share-btn {
background: linear-gradient(90deg, #ffd700, #daa520);
color: #1a1a2e;
font-size: 30rpx;
font-weight: 600;
border-radius: 40rpx;
padding: 0 40rpx;
line-height: 80rpx;
border: none;
box-shadow: 0 4rpx 16rpx rgba(218, 165, 32, 0.3);
transition: all 0.3s ease;
}
.share-btn:active {
transform: scale(0.96);
box-shadow: 0 2rpx 8rpx rgba(218, 165, 32, 0.3);
}
/* @import '../../styles/disclaimer.wxss'; */