/* 引导页面样式 */ .welcome-page { min-height: 100vh; background: linear-gradient(to bottom, #fafbff 0%, #ffffff 100%); padding: 40rpx 0; display: flex; flex-direction: column; position: relative; overflow: hidden; } /* 背景装饰 - 紫色圆圈 */ .welcome-page::before { content: ''; position: absolute; width: 500rpx; height: 500rpx; background: radial-gradient(circle, rgba(102, 126, 234, 0.06) 0%, transparent 70%); border-radius: 50%; top: -200rpx; right: -150rpx; animation: float 8s ease-in-out infinite; } .welcome-page::after { content: ''; position: absolute; width: 350rpx; height: 350rpx; background: radial-gradient(circle, rgba(240, 147, 251, 0.05) 0%, transparent 70%); border-radius: 50%; bottom: 150rpx; left: -100rpx; animation: float 10s ease-in-out infinite reverse; } /* 1. 顶部品牌区 */ .brand-section { text-align: center; padding: 80rpx 40rpx 50rpx; position: relative; z-index: 1; } .brand-section .slogan { font-size: 56rpx; font-weight: bold; background: linear-gradient(135deg, #667eea 0%, #764ba2 80%, #f093fb 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 24rpx; letter-spacing: 4rpx; animation: fadeInDown 0.8s ease-out; position: relative; } .brand-section .slogan::after { content: ''; position: absolute; bottom: -16rpx; left: 50%; transform: translateX(-50%); width: 120rpx; height: 6rpx; background: linear-gradient(90deg, transparent, #764ba2, transparent); border-radius: 3rpx; } .brand-section .sub-slogan { font-size: 28rpx; color: #666; letter-spacing: 2rpx; animation: fadeInUp 0.8s ease-out 0.2s both; line-height: 1.6; } /* 2. 核心功能轮播区 */ .swiper-section { margin: 40rpx 30rpx; position: relative; z-index: 1; animation: fadeInUp 0.8s ease-out 0.4s both; } .swiper-section .feature-swiper { height: 400rpx; border-radius: 32rpx; background: linear-gradient(135deg, #ffffff 0%, #fafbff 100%); box-shadow: 0 10rpx 40rpx rgba(118, 75, 162, 0.12), 0 2rpx 8rpx rgba(118, 75, 162, 0.08); overflow: hidden; border: 1rpx solid rgba(118, 75, 162, 0.08); position: relative; } .swiper-section .feature-swiper::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3rpx; background: linear-gradient(90deg, #667eea, #764ba2, #f093fb); opacity: 0.6; } .swiper-section .swiper-item-content { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40rpx; position: relative; } /* 轮播项不同颜色背景 */ .swiper-section .swiper-item-1 { background: linear-gradient(135deg, #f8f9ff 0%, #e8eaff 100%); } .swiper-section .swiper-item-1::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 220rpx; height: 220rpx; background: radial-gradient(circle, rgba(102, 126, 234, 0.08) 0%, transparent 70%); border-radius: 50%; } .swiper-section .swiper-item-2 { background: linear-gradient(135deg, #fff8fb 0%, #ffe8f5 100%); } .swiper-section .swiper-item-2::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 220rpx; height: 220rpx; background: radial-gradient(circle, rgba(240, 147, 251, 0.08) 0%, transparent 70%); border-radius: 50%; } .swiper-section .swiper-item-3 { background: linear-gradient(135deg, #f5fbff 0%, #e6f4ff 100%); } .swiper-section .swiper-item-3::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 220rpx; height: 220rpx; background: radial-gradient(circle, rgba(64, 169, 255, 0.08) 0%, transparent 70%); border-radius: 50%; } .swiper-section .swiper-item-4 { background: linear-gradient(135deg, #fcf8ff 0%, #f3e8ff 100%); } .swiper-section .swiper-item-4::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 220rpx; height: 220rpx; background: radial-gradient(circle, rgba(118, 75, 162, 0.1) 0%, transparent 70%); border-radius: 50%; } .swiper-section .swiper-item-content .feature-icon { font-size: 72rpx; margin-bottom: 24rpx; animation: iconFloat 2s ease-in-out infinite; filter: drop-shadow(0 6rpx 12rpx rgba(118, 75, 162, 0.15)); position: relative; z-index: 1; } .swiper-section .swiper-item-content .feature-title { font-size: 36rpx; font-weight: bold; color: #333; margin-bottom: 20rpx; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; position: relative; z-index: 1; } .swiper-section .swiper-item-content .feature-desc { text-align: center; color: #666; font-size: 26rpx; line-height: 44rpx; position: relative; z-index: 1; } .swiper-section .swiper-item-content .feature-desc text { display: block; } .swiper-section .swiper-item-content .ai-badge { margin-top: 28rpx; padding: 14rpx 36rpx; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 50rpx; display: flex; align-items: center; box-shadow: 0 6rpx 20rpx rgba(118, 75, 162, 0.35), inset 0 1rpx 2rpx rgba(255, 255, 255, 0.3); animation: pulse 2.5s ease-in-out infinite; position: relative; z-index: 1; overflow: hidden; } .swiper-section .swiper-item-content .ai-badge::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.2) 50%, transparent 70%); animation: shimmer 3s infinite; } .swiper-section .swiper-item-content .ai-badge .ai-badge-icon { font-size: 28rpx; margin-right: 10rpx; position: relative; z-index: 1; } .swiper-section .swiper-item-content .ai-badge .ai-badge-text { font-size: 26rpx; color: #ffffff; font-weight: bold; letter-spacing: 2rpx; position: relative; z-index: 1; } /* 3. 价值亮点卡片区 */ .value-section { margin: 35rpx 30rpx; position: relative; z-index: 1; animation: fadeInUp 0.8s ease-out 0.6s both; } .value-section .value-title { font-size: 36rpx; font-weight: bold; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-align: center; margin-bottom: 36rpx; letter-spacing: 3rpx; position: relative; } .value-section .value-title::before, .value-section .value-title::after { content: '✦'; position: absolute; top: 50%; transform: translateY(-50%); font-size: 24rpx; color: #764ba2; opacity: 0.4; } .value-section .value-title::before { left: 200rpx; } .value-section .value-title::after { right: 200rpx; } .value-section .value-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24rpx; } .value-section .value-cards .value-card { background: linear-gradient(135deg, #ffffff 0%, #fafbff 100%); border-radius: 28rpx; padding: 36rpx 14rpx; text-align: center; box-shadow: 0 6rpx 24rpx rgba(118, 75, 162, 0.10), 0 2rpx 8rpx rgba(118, 75, 162, 0.06); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; border: 1rpx solid rgba(118, 75, 162, 0.08); } .value-section .value-cards .value-card::before { content: ''; position: absolute; top: -2rpx; left: -2rpx; right: -2rpx; bottom: -2rpx; background: linear-gradient(135deg, rgba(102, 126, 234, 0.15) 0%, rgba(118, 75, 162, 0.15) 100%); opacity: 0; transition: opacity 0.4s; border-radius: 28rpx; z-index: 0; } .value-section .value-cards .value-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 50% 0%, rgba(118, 75, 162, 0.05) 0%, transparent 60%); opacity: 1; } .value-section .value-cards .value-card:active { transform: translateY(-10rpx) scale(1.02); box-shadow: 0 12rpx 36rpx rgba(118, 75, 162, 0.20), 0 4rpx 12rpx rgba(118, 75, 162, 0.12); } .value-section .value-cards .value-card:active::before { opacity: 1; } .value-section .value-cards .value-card .card-icon { font-size: 64rpx; margin-bottom: 20rpx; filter: drop-shadow(0 4rpx 10rpx rgba(118, 75, 162, 0.12)); position: relative; z-index: 1; animation: iconBounce 3s ease-in-out infinite; } .value-section .value-cards .value-card .card-title { font-size: 28rpx; color: #333; font-weight: 600; margin-bottom: 10rpx; position: relative; z-index: 1; } .value-section .value-cards .value-card .card-desc { font-size: 22rpx; color: #999; position: relative; z-index: 1; } /* 4. 操作按钮区 */ .action-section { margin: 60rpx 40rpx 40rpx; display: flex; flex-direction: column; align-items: center; position: relative; z-index: 1; animation: fadeInUp 0.8s ease-out 0.8s both; } .action-section .btn-primary { width: 100%; height: 104rpx; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; font-size: 36rpx; font-weight: bold; border-radius: 52rpx; display: flex; align-items: center; justify-content: center; box-shadow: 0 12rpx 36rpx rgba(118, 75, 162, 0.35), 0 4rpx 12rpx rgba(118, 75, 162, 0.20), inset 0 2rpx 4rpx rgba(255, 255, 255, 0.25); border: none; line-height: 104rpx; position: relative; overflow: hidden; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .action-section .btn-primary::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); animation: buttonShine 3s infinite; } .action-section .btn-primary::after { border: none; } .action-section .btn-primary:active { transform: scale(0.98); box-shadow: 0 8rpx 24rpx rgba(118, 75, 162, 0.30), 0 2rpx 8rpx rgba(118, 75, 162, 0.15); } .action-section .btn-primary .btn-icon { margin-right: 14rpx; font-size: 40rpx; position: relative; z-index: 1; animation: rocketFloat 2s ease-in-out infinite; } .action-section .btn-primary text { position: relative; z-index: 1; } .action-section .btn-skip { margin-top: 40rpx; font-size: 28rpx; color: #999; padding: 20rpx 40rpx; border-radius: 30rpx; transition: all 0.3s; position: relative; } .action-section .btn-skip::before { content: ''; position: absolute; inset: 0; border-radius: 30rpx; background: rgba(118, 75, 162, 0.05); opacity: 0; transition: opacity 0.3s; } .action-section .btn-skip:active::before { opacity: 1; } .action-section .btn-skip:active { color: #764ba2; } .action-section .help-link { margin-top: 28rpx; font-size: 26rpx; color: #764ba2; display: flex; align-items: center; padding: 18rpx 28rpx; border-radius: 30rpx; transition: all 0.3s; position: relative; background: rgba(118, 75, 162, 0.03); border: 1rpx solid rgba(118, 75, 162, 0.1); } .action-section .help-link:active { background: rgba(118, 75, 162, 0.08); border-color: rgba(118, 75, 162, 0.15); } .action-section .help-link .arrow { font-size: 32rpx; margin-left: 10rpx; font-weight: bold; animation: arrowMove 1.2s ease-in-out infinite; } /* 版本信息 */ .version-info { text-align: center; font-size: 22rpx; color: #ccc; margin-top: auto; padding: 30rpx 0; position: relative; z-index: 1; } /* ========== 动画效果 ========== */ /* 浮动动画 */ @keyframes float { 0%, 100% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(-40rpx) rotate(3deg); opacity: 0.8; } } /* 淡入下落 */ @keyframes fadeInDown { from { opacity: 0; transform: translateY(-40rpx); } to { opacity: 1; transform: translateY(0); } } /* 淡入上升 */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(40rpx); } to { opacity: 1; transform: translateY(0); } } /* 图标浮动 */ @keyframes iconFloat { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8rpx) scale(1.05); } } /* 图标弹跳 */ @keyframes iconBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6rpx); } } /* AI 徽章脉动 */ @keyframes pulse { 0%, 100% { transform: scale(1); box-shadow: 0 6rpx 20rpx rgba(118, 75, 162, 0.35), inset 0 1rpx 2rpx rgba(255, 255, 255, 0.3); } 50% { transform: scale(1.05); box-shadow: 0 8rpx 28rpx rgba(118, 75, 162, 0.45), inset 0 1rpx 2rpx rgba(255, 255, 255, 0.3); } } /* 光泽效果 */ @keyframes shimmer { 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); } 100% { transform: translateX(100%) translateY(100%) rotate(45deg); } } /* 按钮光泽 */ @keyframes buttonShine { 0% { left: -100%; } 50%, 100% { left: 100%; } } /* 火箭浮动 */ @keyframes rocketFloat { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4rpx) rotate(-3deg); } 75% { transform: translateY(-2rpx) rotate(3deg); } } /* 箭头移动 */ @keyframes arrowMove { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(8rpx); } }