superlishunqin 89a98739b1 homepage
2025-09-22 07:11:00 +08:00

4129 lines
92 KiB
CSS

/* 全局样式 */
:root {
--primary-color: #4a90e2;
--secondary-color: #7b68ee;
--success-color: #28a745;
--warning-color: #ffc107;
--danger-color: #dc3545;
--info-color: #17a2b8;
--light-color: #f8f9fa;
--dark-color: #343a40;
--pink-color: #e91e63;
/* === Kid-Friendly Colors === */
--kid-primary: #FFC107; /* Amber */
--kid-secondary: #00BCD4; /* Cyan */
--kid-accent: #FF5722; /* Deep Orange */
--kid-bg: #F0F8FF; /* AliceBlue */
--kid-text: #5D4037; /* Brown */
/* === Dashboard鲜艳颜色 - 蓝绿活力版 === */
--rainbow-red: #FF6B6B;
--rainbow-orange: #FFB347;
--rainbow-yellow: #FFD93D;
--rainbow-green: #6BCF7F;
--rainbow-blue: #4D96FF;
--rainbow-purple: #9B59B6;
--rainbow-pink: #FF69B4;
/* 场景主题色 */
--social-color: #FF6B6B;
--daily-color: #4ECDC4;
--fun-color: #FFD93D;
--learning-color: #9B59B6;
--nature-color: #6BCF7F;
--creative-color: #FF69B4;
}
body {
font-family: 'Helvetica Neue', 'Arial', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
background-color: #ffffff;
color: #444;
display: flex;
flex-direction: column;
min-height: 100vh;
}
main {
flex-grow: 1;
}
/* 导航栏 */
.navbar-brand {
font-size: 1.5rem;
font-weight: 700;
}
.navbar-brand i {
color: var(--primary-color);
}
/* === Kid-Friendly Auth Styles === */
.auth-page-container {
background-color: var(--kid-bg);
background-image:
radial-gradient(circle at 20% 20%, rgba(0, 188, 212, 0.1) 8%, transparent 0),
radial-gradient(circle at 80% 70%, rgba(255, 193, 7, 0.1) 8%, transparent 0);
background-size: 250px 250px;
}
.kid-auth-card {
border: none;
border-radius: 20px;
overflow: hidden;
background-color: #ffffff;
}
.kid-auth-header {
background: linear-gradient(135deg, var(--kid-primary), #FFD54F);
color: white;
padding: 2rem 1.5rem;
text-align: center;
border-bottom: 5px solid #ffb300;
position: relative;
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
margin-bottom: -2rem;
}
.kid-auth-header .icon {
font-size: 3.5rem;
margin-bottom: 0.5rem;
transform: rotate(-10deg) scale(1.1);
display: inline-block;
color: white;
text-shadow: 2px 2px 5px rgba(0,0,0,0.25);
}
.kid-auth-header h2 {
font-weight: 900;
font-size: 2rem;
margin: 0;
letter-spacing: 1px;
}
.kid-auth-card .card-body {
padding-top: 3rem !important;
}
.kid-auth-card .form-label {
font-weight: 600;
color: var(--kid-text);
margin-bottom: 0.25rem;
}
.kid-auth-card .form-control, .kid-auth-card .form-select {
border-radius: 30px;
padding-left: 20px;
padding-top: .6rem;
padding-bottom: .6rem;
border: 2px solid #e0e0e0;
transition: all 0.3s ease;
}
.kid-auth-card .form-control:focus, .kid-auth-card .form-select:focus {
border-color: var(--kid-secondary);
box-shadow: 0 0 0 0.2rem rgba(0,188,212, 0.2);
}
.kid-auth-card .input-group-text {
border-radius: 30px 0 0 30px;
background-color: #f5f5f5;
border: 2px solid #e0e0e0; border-right: none;
color: var(--kid-secondary);
}
.kid-auth-card .input-group .form-control { border-radius: 0 30px 30px 0; }
.kid-auth-card .input-group .btn {
border-radius: 0 30px 30px 0 !important;
border-color: #e0e0e0;
box-shadow: none;
}
.kid-auth-card .btn-primary, .btn-kid-accent {
background: linear-gradient(45deg, var(--kid-accent), #FF8A65);
border: none;
border-radius: 30px;
font-weight: 700;
padding: 12px 24px;
font-size: 1.1rem;
box-shadow: 0 4px 12px rgba(255, 87, 34, 0.3);
text-transform: uppercase;
letter-spacing: 1px;
color: white !important;
}
.kid-auth-card .btn-primary:hover, .btn-kid-accent:hover {
transform: translateY(-2px);
box-shadow: 0 6px 15px rgba(255, 87, 34, 0.45);
}
.kid-auth-card a {
color: var(--kid-secondary);
text-decoration: none !important;
transition: color .2s;
}
.kid-auth-card a:hover { color: var(--kid-accent); }
/* === Dashboard容器 - 蓝绿活力版 === */
.dashboard-container {
min-height: 100vh;
background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
background-attachment: fixed;
position: relative;
overflow-x: hidden;
}
/* 彩虹背景装饰 - 增强版 */
.rainbow-bg {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 15% 25%, rgba(0, 188, 212, 0.15) 12%, transparent 25%),
radial-gradient(circle at 85% 15%, rgba(76, 175, 80, 0.15) 18%, transparent 30%),
radial-gradient(circle at 45% 75%, rgba(33, 150, 243, 0.12) 22%, transparent 35%),
radial-gradient(circle at 90% 85%, rgba(0, 150, 136, 0.18) 28%, transparent 40%),
radial-gradient(circle at 20% 80%, rgba(102, 187, 106, 0.15) 15%, transparent 28%);
z-index: -1;
animation: backgroundShift 25s ease-in-out infinite, backgroundPulse 8s ease-in-out infinite;
}
@keyframes backgroundShift {
0%, 100% { opacity: 1; }
50% { opacity: 0.8; }
}
@keyframes backgroundPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
/* 欢迎卡片 - 更活泼 */
.welcome-card-kid {
background: linear-gradient(135deg, var(--rainbow-pink), var(--rainbow-purple));
border-radius: 25px;
padding: 2rem;
color: white;
position: relative;
overflow: hidden;
box-shadow: 0 15px 40px rgba(0,0,0,0.15);
}
/* 漂浮装饰形状 - 增强版 */
.floating-shapes {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.shape {
position: absolute;
font-size: 1.5rem;
animation: enhancedFloat 8s ease-in-out infinite;
}
.shape-1 { top: 15%; left: 10%; animation-delay: 0s; }
.shape-2 { top: 20%; right: 15%; animation-delay: 2s; }
.shape-3 { bottom: 25%; left: 20%; animation-delay: 4s; }
.shape-4 { bottom: 15%; right: 10%; animation-delay: 6s; }
@keyframes enhancedFloat {
0%, 100% {
transform: translateY(0px) scale(1) rotate(0deg);
opacity: 0.8;
}
25% {
transform: translateY(-20px) scale(1.1) rotate(5deg);
opacity: 1;
}
50% {
transform: translateY(-10px) scale(0.9) rotate(-3deg);
opacity: 0.9;
}
75% {
transform: translateY(-25px) scale(1.05) rotate(8deg);
opacity: 1;
}
}
.welcome-title {
font-size: 2.5rem;
font-weight: 900;
margin-bottom: 1rem;
text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
position: relative;
overflow: hidden;
}
.welcome-title::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
animation: titleShine 6s ease-in-out infinite;
}
@keyframes titleShine {
0% { left: -100%; }
20%, 80% { left: 100%; }
100% { left: 100%; }
}
.welcome-title .wave {
display: inline-block;
animation: wave 2s ease-in-out infinite;
}
@keyframes wave {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(20deg); }
75% { transform: rotate(-10deg); }
}
.welcome-title .highlight {
background: linear-gradient(45deg, #FFD700, #FFA500);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.welcome-subtitle {
font-size: 1.2rem;
opacity: 0.95;
line-height: 1.6;
}
.welcome-mascot {
text-align: center;
}
.welcome-mascot i {
font-size: 5rem;
color: rgba(255,255,255,0.3);
animation: bounce 3s ease-in-out infinite;
}
@keyframes bounce {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
/* 区域标题 */
.section-header {
text-align: center;
margin-bottom: 2rem;
}
.section-title {
font-size: 2.2rem;
font-weight: 900;
color: white;
margin-bottom: 0.5rem;
text-shadow: 2px 2px 8px rgba(0,0,0,0.3);
position: relative;
overflow: hidden;
}
.section-title::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
animation: titleShine 6s ease-in-out infinite;
}
.section-subtitle {
font-size: 1.1rem;
color: rgba(255,255,255,0.9);
margin-bottom: 0;
}
/* 徽章样式 - 增强版 */
.bg-gradient-fun {
background: linear-gradient(45deg, var(--rainbow-orange), var(--rainbow-yellow)) !important;
animation: badgeGlow 3s ease-in-out infinite;
}
.bg-gradient-voice {
background: linear-gradient(45deg, var(--rainbow-blue), var(--rainbow-purple)) !important;
animation: badgeGlow 3s ease-in-out infinite;
}
@keyframes badgeGlow {
0%, 100% { box-shadow: 0 0 10px rgba(255,193,7,0.3); }
50% { box-shadow: 0 0 20px rgba(255,193,7,0.6); }
}
/* 场景卡片 - 全新设计增强版 */
.scenario-card-kid {
background: white;
border-radius: 20px;
padding: 0;
overflow: hidden;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
transition: all 0.3s ease;
height: 100%;
animation: cardBreathe 4s ease-in-out infinite;
}
.scenario-card-kid:hover {
transform: translateY(-8px) scale(1.02);
box-shadow: 0 20px 50px rgba(0,0,0,0.2);
}
@keyframes cardBreathe {
0%, 100% { box-shadow: 0 10px 30px rgba(0,0,0,0.1); }
50% { box-shadow: 0 15px 40px rgba(0,0,0,0.15); }
}
.scenario-header {
padding: 1.5rem;
position: relative;
}
.social-card .scenario-header { background: linear-gradient(135deg, var(--social-color), #FF8E53); }
.daily-card .scenario-header { background: linear-gradient(135deg, var(--daily-color), #44A08D); }
.fun-card .scenario-header { background: linear-gradient(135deg, var(--fun-color), #FFCC02); }
.learning-card .scenario-header { background: linear-gradient(135deg, var(--learning-color), #8E44AD); }
.nature-card .scenario-header { background: linear-gradient(135deg, var(--nature-color), #4CAF50); }
.creative-card .scenario-header { background: linear-gradient(135deg, var(--creative-color), #E91E63); }
.scenario-icon-big {
width: 60px;
height: 60px;
background: rgba(255,255,255,0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1rem;
}
.scenario-icon-big i {
font-size: 2rem;
color: white;
transition: transform 0.3s ease;
}
.scenario-card-kid:hover .scenario-icon-big i {
transform: rotate(360deg) scale(1.1);
}
.difficulty-badge {
position: absolute;
top: 1rem;
right: 1rem;
padding: 0.3rem 0.8rem;
border-radius: 15px;
font-size: 0.75rem;
font-weight: 700;
text-transform: uppercase;
}
.difficulty-badge.easy { background: #28a745; color: white; }
.difficulty-badge.medium { background: #ffc107; color: #333; }
.difficulty-badge.fun { background: #17a2b8; color: white; }
.scenario-content {
padding: 1.5rem;
}
.scenario-title {
font-size: 1.3rem;
font-weight: 800;
color: var(--kid-text);
margin-bottom: 1rem;
}
.scenario-desc {
color: #666;
font-size: 0.95rem;
line-height: 1.5;
margin-bottom: 1rem;
}
.scenario-tags {
margin-bottom: 1rem;
}
.tag {
display: inline-block;
padding: 0.3rem 0.8rem;
border-radius: 15px;
font-size: 0.75rem;
font-weight: 600;
margin: 0.2rem;
}
.tag-social { background: #FFE5E5; color: var(--social-color); }
.tag-daily { background: #E0F7FA; color: var(--daily-color); }
.tag-fun { background: #FFF8E1; color: #F57F17; }
.tag-learning { background: #F3E5F5; color: var(--learning-color); }
.tag-nature { background: #E8F5E8; color: var(--nature-color); }
.tag-creative { background: #FCE4EC; color: var(--creative-color); }
.tag-basic { background: #F5F5F5; color: #666; }
.tag-polite { background: #E3F2FD; color: #1976D2; }
.tag-cooperation { background: #FFF3E0; color: #F57C00; }
.tag-reading { background: #F1F8E9; color: #689F38; }
.tag-environment { background: #E0F2F1; color: #00695C; }
.tag-art { background: #FAF0E6; color: #8D6E63; }
.tag-new { background: linear-gradient(45deg, #FF6B6B, #4ECDC4); color: white; }
.scenario-footer {
padding: 1rem 1.5rem;
border-top: 1px solid #f0f0f0;
display: flex;
justify-content: space-between;
align-items: center;
}
.scenario-stats {
display: flex;
flex-direction: column;
gap: 0.3rem;
}
.scenario-stats span {
font-size: 0.8rem;
color: #666;
}
.btn-scenario-play {
background: linear-gradient(45deg, #4ECDC4, #44A08D);
border: none;
color: white;
padding: 0.5rem 1rem;
border-radius: 20px;
font-weight: 700;
font-size: 0.9rem;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.btn-scenario-play:hover {
transform: scale(1.05);
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
color: white;
}
.btn-scenario-play::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
transition: left 0.6s;
}
.btn-scenario-play:hover::before {
left: 100%;
}
/* 语音克隆卡片 - 增强版 */
.voice-clone-card {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 20px;
padding: 2rem;
color: white;
box-shadow: 0 15px 40px rgba(0,0,0,0.15);
}
.voice-clone-visual {
text-align: center;
}
.voice-wave-container {
display: flex;
justify-content: center;
align-items: center;
gap: 4px;
height: 60px;
animation: containerPulse 3s ease-in-out infinite;
}
@keyframes containerPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.voice-wave {
width: 4px;
height: 20px;
background: white;
border-radius: 2px;
animation: voiceWave 1.5s ease-in-out infinite;
}
.voice-wave:nth-child(2) { animation-delay: 0.2s; }
.voice-wave:nth-child(3) { animation-delay: 0.4s; }
.voice-wave:nth-child(4) { animation-delay: 0.6s; }
@keyframes voiceWave {
0%, 100% { height: 20px; opacity: 0.3; }
50% { height: 40px; opacity: 1; }
}
.voice-clone-actions {
display: flex;
gap: 1rem;
margin-top: 1.5rem;
}
.btn-voice-main {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
border: none;
color: white;
padding: 0.8rem 1.5rem;
border-radius: 25px;
font-weight: 700;
transition: all 0.3s ease;
flex: 1;
position: relative;
overflow: hidden;
}
.btn-voice-main:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(0,0,0,0.3);
color: white;
}
.btn-voice-main::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
transition: left 0.6s;
}
.btn-voice-main:hover::before {
left: 100%;
}
.btn-voice-secondary {
background: rgba(255,255,255,0.2);
border: 2px solid rgba(255,255,255,0.3);
color: white;
padding: 0.8rem 1.5rem;
border-radius: 25px;
font-weight: 700;
transition: all 0.3s ease;
}
.btn-voice-secondary:hover:not(:disabled) {
background: rgba(255,255,255,0.3);
color: white;
}
/* 语音提示卡片 */
.voice-tips-card {
background: white;
border-radius: 15px;
padding: 1.5rem;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
height: 100%;
}
.tips-title {
font-weight: 800;
color: var(--kid-text);
margin-bottom: 1rem;
}
.tips-list {
list-style: none;
padding: 0;
margin: 0;
}
.tips-list li {
padding: 0.5rem 0;
font-size: 0.9rem;
color: #666;
}
/* 快速操作卡片 - 增强版 */
.quick-action-card-kid {
background: white;
border-radius: 20px;
padding: 2rem;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
transition: all 0.3s ease;
height: 100%;
position: relative;
animation: cardBreathe 4s ease-in-out infinite;
}
.quick-action-card-kid:hover {
transform: translateY(-5px);
box-shadow: 0 20px 50px rgba(0,0,0,0.15);
}
.action-icon-container {
width: 70px;
height: 70px;
border-radius: 50%;
margin: 0 auto 1.5rem;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
color: white;
}
.action-icon-container i {
transition: transform 0.3s ease;
}
.quick-action-card-kid:hover .action-icon-container i {
transform: rotate(360deg) scale(1.1);
}
.test-card .action-icon-container { background: linear-gradient(45deg, #17a2b8, #20c997); }
.record-card .action-icon-container { background: linear-gradient(45deg, #FF6B6B, #FF8E53); }
.chat-card .action-icon-container { background: linear-gradient(45deg, #28a745, #20c997); }
.progress-card .action-icon-container { background: linear-gradient(45deg, #ffc107, #fd7e14); }
.action-title {
font-size: 1.2rem;
font-weight: 800;
color: var(--kid-text);
margin-bottom: 0.8rem;
}
.action-desc {
color: #666;
font-size: 0.9rem;
margin-bottom: 1.5rem;
}
.btn-action-test { background: linear-gradient(45deg, #17a2b8, #20c997); }
.btn-action-record { background: linear-gradient(45deg, #FF6B6B, #FF8E53); }
.btn-action-chat { background: linear-gradient(45deg, #28a745, #20c997); }
.btn-action-progress { background: linear-gradient(45deg, #ffc107, #fd7e14); }
.btn-action-test, .btn-action-record, .btn-action-chat, .btn-action-progress {
border: none;
color: white;
padding: 0.7rem 1.3rem;
border-radius: 20px;
font-weight: 700;
font-size: 0.9rem;
transition: all 0.3s ease;
width: 100%;
position: relative;
overflow: hidden;
}
.btn-action-test:hover, .btn-action-record:hover {
transform: scale(1.05);
color: white;
}
.btn-action-test::before, .btn-action-record::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
transition: left 0.6s;
}
.btn-action-test:hover::before, .btn-action-record:hover::before {
left: 100%;
}
.coming-soon {
position: absolute;
top: 1rem;
right: 1rem;
background: #6c757d;
color: white;
padding: 0.3rem 0.8rem;
border-radius: 10px;
font-size: 0.7rem;
font-weight: 600;
}
/* 成就卡片 - 增强版 */
.achievement-card {
background: white;
border-radius: 15px;
padding: 1.5rem;
text-align: center;
box-shadow: 0 8px 25px rgba(0,0,0,0.08);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
animation: cardBreathe 4s ease-in-out infinite;
}
.achievement-card:hover {
transform: translateY(-3px);
box-shadow: 0 15px 35px rgba(0,0,0,0.12);
}
.achievement-icon {
width: 50px;
height: 50px;
border-radius: 50%;
margin: 0 auto 1rem;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
color: white;
}
.time-card .achievement-icon { background: linear-gradient(45deg, #667eea, #764ba2); }
.conversation-card .achievement-icon { background: linear-gradient(45deg, #4ECDC4, #44A08D); }
.star-card .achievement-icon { background: linear-gradient(45deg, #FFD93D, #FFCC02); }
.medal-card .achievement-icon { background: linear-gradient(45deg, #FF6B6B, #FF8E53); }
.achievement-number {
font-size: 2rem;
font-weight: 900;
color: var(--kid-text);
margin-bottom: 0.5rem;
animation: numberGlow 4s ease-in-out infinite;
}
@keyframes numberGlow {
0%, 100% { text-shadow: 0 0 5px rgba(91, 64, 55, 0.3); }
50% { text-shadow: 0 0 15px rgba(91, 64, 55, 0.6); }
}
.achievement-label {
font-size: 0.9rem;
color: #666;
margin-bottom: 1rem;
}
.achievement-progress {
height: 4px;
background: #f0f0f0;
border-radius: 2px;
overflow: hidden;
}
.achievement-progress .progress-bar {
height: 100%;
border-radius: 2px;
transition: width 0.5s ease;
}
.time-card .progress-bar { background: linear-gradient(45deg, #667eea, #764ba2); }
.conversation-card .progress-bar { background: linear-gradient(45deg, #4ECDC4, #44A08D); }
.star-card .progress-bar { background: linear-gradient(45deg, #FFD93D, #FFCC02); }
.medal-card .progress-bar { background: linear-gradient(45deg, #FF6B6B, #FF8E53); }
/* === 页面加载和动效增强 === */
/* 页面元素渐入动画 */
.fade-in-up {
opacity: 0;
transform: translateY(30px);
animation: fadeInUp 0.8s ease forwards;
}
@keyframes fadeInUp {
to {
opacity: 1;
transform: translateY(0);
}
}
/* 加载状态类 */
.page-loading .fade-in-up:nth-child(1) { animation-delay: 0.1s; }
.page-loading .fade-in-up:nth-child(2) { animation-delay: 0.2s; }
.page-loading .fade-in-up:nth-child(3) { animation-delay: 0.3s; }
.page-loading .fade-in-up:nth-child(4) { animation-delay: 0.4s; }
.page-loading .fade-in-up:nth-child(5) { animation-delay: 0.5s; }
.page-loading .fade-in-up:nth-child(6) { animation-delay: 0.6s; }
/* 自定义图标动画 */
.icon-bubble {
width: 60px;
height: 60px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.icon-bubble i {
font-size: 1.5rem;
}
/* 响应式设计 */
@media (max-width: 768px) {
.welcome-title {
font-size: 2rem;
}
.section-title {
font-size: 1.8rem;
}
.scenario-card-kid:hover {
transform: translateY(-5px) scale(1.01);
}
.voice-clone-actions {
flex-direction: column;
}
.achievement-number {
font-size: 1.5rem;
}
}
.text-pink {
color: var(--pink-color) !important;
}
/* === 首页样式修复 === */
/* === 修复后的轮播图样式 === */
.hero-carousel-fixed {
position: relative;
overflow: hidden;
}
.hero-carousel-fixed .carousel-item {
height: 70vh;
min-height: 500px;
position: relative;
}
.hero-carousel-fixed .carousel-item img {
object-fit: cover;
width: 100%;
height: 100%;
}
.carousel-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.4);
z-index: 1;
}
/* 漂浮装饰元素 */
.floating-decorations {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2;
pointer-events: none;
}
.float-emoji {
position: absolute;
font-size: 2.5rem;
animation: floatAnimation 4s ease-in-out infinite;
}
.float-emoji:nth-child(1) { top: 15%; left: 10%; animation-delay: 0s; }
.float-emoji:nth-child(2) { top: 25%; right: 15%; animation-delay: 1s; }
.float-emoji:nth-child(3) { bottom: 30%; left: 15%; animation-delay: 2s; }
.float-emoji:nth-child(4) { bottom: 20%; right: 10%; animation-delay: 3s; }
@keyframes floatAnimation {
0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.7; }
50% { transform: translateY(-20px) rotate(5deg); opacity: 1; }
}
/* 轮播内容样式 */
.hero-carousel-fixed .carousel-caption {
position: absolute;
bottom: 20%;
left: 50%;
transform: translateX(-50%);
z-index: 10;
color: white;
text-align: center;
max-width: 800px;
width: 90%;
}
.hero-badge {
display: inline-block;
background: rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
padding: 8px 20px;
border-radius: 25px;
font-size: 0.9rem;
font-weight: 600;
margin-bottom: 1.5rem;
border: 1px solid rgba(255, 255, 255, 0.3);
}
.hero-title {
font-size: 3.5rem;
font-weight: 900;
line-height: 1.1;
margin-bottom: 1.5rem;
text-shadow: 2px 2px 10px rgba(0,0,0,0.5);
}
.hero-title .highlight {
background: linear-gradient(45deg, #FFD700, #FFA500);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
}
.hero-subtitle {
font-size: 1.25rem;
line-height: 1.6;
margin-bottom: 2.5rem;
opacity: 0.95;
text-shadow: 1px 1px 5px rgba(0,0,0,0.5);
}
.btn-hero {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
border: none;
padding: 15px 35px;
border-radius: 50px;
color: white;
font-size: 1.1rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
box-shadow: 0 8px 25px rgba(0,0,0,0.3);
transition: all 0.3s ease;
text-decoration: none !important;
}
.btn-hero:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 12px 35px rgba(0,0,0,0.4);
color: white;
}
/* 轮播指示器和控制器 */
.hero-carousel-fixed .carousel-indicators {
bottom: 30px;
z-index: 15;
}
.hero-carousel-fixed .carousel-indicators button {
width: 15px !important;
height: 15px !important;
border-radius: 50% !important;
margin: 0 10px !important;
background: rgba(255, 255, 255, 0.5) !important;
border: 2px solid white !important;
transition: all 0.3s ease;
}
.hero-carousel-fixed .carousel-indicators .active {
background: white !important;
transform: scale(1.2);
}
.hero-carousel-fixed .carousel-control-prev,
.hero-carousel-fixed .carousel-control-next {
z-index: 15;
width: 60px;
opacity: 0.8;
}
.hero-carousel-fixed .carousel-control-prev:hover,
.hero-carousel-fixed .carousel-control-next:hover {
opacity: 1;
}
/* 波浪分隔符 */
.wavy-divider {
height: 100px;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3e%3cpath fill='%23ffffff' fill-opacity='1' d='M0,192L80,176C160,160,320,128,480,133.3C640,139,800,181,960,186.7C1120,192,1280,160,1360,144L1440,128L1440,0L1360,0C1280,0,1120,0,960,0C800,0,640,0,480,0C320,0,160,0,80,0L0,0Z'%3e%3c/path%3e%3c/svg%3e");
background-repeat: no-repeat;
background-size: cover;
margin-top: -100px;
position: relative;
z-index: 10;
}
/* 页面区块通用样式 */
.page-section {
padding: 80px 0;
}
.bg-light-kid {
background-color: #fefcfa;
}
.section-title {
text-align: center;
margin-bottom: 50px;
}
.section-title h2 {
font-size: 2.5rem;
font-weight: 800;
color: var(--kid-text);
position: relative;
display: inline-block;
padding-bottom: 10px;
}
.section-title h2::after {
content: '';
display: block;
width: 60px;
height: 5px;
background: linear-gradient(to right, var(--kid-primary), var(--kid-accent));
border-radius: 5px;
margin: 10px auto 0;
}
.section-title p {
color: #777;
font-size: 1.1rem;
}
/* 新特色卡片 */
.kid-feature-card {
background: #fff;
border-radius: 15px;
padding: 30px;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.05);
transition: all 0.3s ease;
height: 100%;
}
.kid-feature-card:hover {
transform: translateY(-8px);
box-shadow: 0 15px 40px rgba(0,0,0,0.1);
}
.kid-feature-card .icon-bubble {
width: 80px;
height: 80px;
border-radius: 50%;
margin: 0 auto 20px;
display: flex;
align-items: center;
justify-content: center;
}
.kid-feature-card .icon-bubble i {
font-size: 2.5rem;
}
.kid-feature-card h5 {
font-size: 1.25rem;
font-weight: 700;
color: var(--kid-text);
margin-bottom: 10px;
}
.kid-feature-card p {
font-size: 0.9rem;
color: #666;
}
/* 新场景卡片 */
.scenario-card-new {
background-color: #fff;
border-radius: 20px;
padding: 2rem;
text-align: center;
box-shadow: 0 8px 25px rgba(0,0,0,0.07);
transition: all 0.3s ease-in-out;
}
.scenario-card-new:hover {
transform: scale(1.05);
box-shadow: 0 12px 35px rgba(0,0,0,0.12);
}
.scenario-card-new .scenario-icon {
width: 70px;
height: 70px;
border-radius: 50%;
margin: 0 auto 1.5rem;
background-color: #e3f2fd;
color: #2196F3;
display: flex;
justify-content: center;
align-items: center;
font-size: 2rem;
}
.scenario-card-new h5 {
font-weight: 700;
margin-bottom: 1rem;
}
.scenario-card-new p {
color: #777;
font-size: 0.95rem;
min-height: 60px;
}
.scenario-card-new .tags {
margin-top: 1rem;
}
.scenario-card-new .tag {
background-color: #eee;
color: #555;
padding: 5px 12px;
border-radius: 20px;
font-size: 0.8rem;
margin: 0 5px;
display: inline-block;
}
/* 新CTA区块 */
.cta-section-kid {
background: linear-gradient(135deg, var(--kid-secondary), var(--kid-primary));
color: white;
padding: 100px 0;
}
.cta-section-kid h2 {
font-size: 2.8rem;
font-weight: 800;
text-shadow: 1px 1px 3px rgba(0,0,0,0.2);
}
.cta-section-kid p {
font-size: 1.2rem;
opacity: 0.9;
}
/* 首页响应式设计 */
@media (max-width: 768px) {
.hero-carousel-fixed .carousel-item {
height: 60vh;
min-height: 400px;
}
.hero-title {
font-size: 2.5rem;
}
.hero-subtitle {
font-size: 1.1rem;
}
.float-emoji {
font-size: 1.8rem;
}
.btn-hero {
padding: 12px 25px;
font-size: 1rem;
}
.hero-carousel-fixed .carousel-caption {
bottom: 15%;
width: 95%;
}
}
/* === 语音克隆页面专用样式 - 儿童友好版 === */
/* 语音克隆页面容器 */
.voice-clone-page {
background: linear-gradient(135deg, #FF9A9E 0%, #FECFEF 50%, #FECFEF 100%);
min-height: 100vh;
position: relative;
overflow-x: hidden;
}
/* 语音克隆页面背景装饰 */
.voice-clone-page::before {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 30%, rgba(255, 182, 193, 0.3) 15%, transparent 30%),
radial-gradient(circle at 80% 20%, rgba(135, 206, 250, 0.2) 20%, transparent 35%),
radial-gradient(circle at 40% 80%, rgba(255, 218, 185, 0.25) 18%, transparent 32%),
radial-gradient(circle at 90% 70%, rgba(152, 251, 152, 0.2) 22%, transparent 40%);
z-index: -1;
animation: voicePageFloat 20s ease-in-out infinite;
}
@keyframes voicePageFloat {
0%, 100% { transform: translateY(0px) scale(1); opacity: 0.8; }
50% { transform: translateY(-10px) scale(1.02); opacity: 1; }
}
/* 页面标题区域增强 */
.voice-clone-header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 25px;
padding: 2rem;
margin-bottom: 2rem;
color: white;
position: relative;
overflow: hidden;
box-shadow: 0 15px 35px rgba(102, 126, 234, 0.3);
}
.voice-clone-header::before {
content: '🎤✨🎵';
position: absolute;
top: 15px;
right: 20px;
font-size: 1.5rem;
animation: headerEmoji 3s ease-in-out infinite;
}
@keyframes headerEmoji {
0%, 100% { transform: rotate(0deg) scale(1); opacity: 0.7; }
50% { transform: rotate(10deg) scale(1.1); opacity: 1; }
}
.text-kid-primary {
background: linear-gradient(45deg, #FFD700, #FFA500);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}
/* 状态卡片增强 */
.voice-status-card {
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
border-radius: 20px;
border: none !important;
box-shadow: 0 10px 30px rgba(168, 237, 234, 0.4);
transition: all 0.3s ease;
animation: cardFloat 4s ease-in-out infinite;
}
@keyframes cardFloat {
0%, 100% { transform: translateY(0px); box-shadow: 0 10px 30px rgba(168, 237, 234, 0.4); }
50% { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(168, 237, 234, 0.6); }
}
/* 录制卡片样式 */
.voice-record-card {
background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
border-radius: 20px;
border: none !important;
box-shadow: 0 15px 35px rgba(255, 154, 158, 0.4);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.voice-record-card::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
animation: recordShine 6s linear infinite;
pointer-events: none;
}
@keyframes recordShine {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.voice-record-card .card-body {
position: relative;
z-index: 2;
}
/* 生成卡片样式 */
.voice-generate-card {
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
border-radius: 20px;
border: none !important;
box-shadow: 0 15px 35px rgba(168, 237, 234, 0.4);
transition: all 0.3s ease;
}
/* 儿童友好按钮样式 */
.btn-kid-primary {
background: linear-gradient(45deg, #ff6b6b, #ee5a52);
border: none;
border-radius: 25px;
color: white !important;
font-weight: 700;
padding: 12px 25px;
font-size: 1.1rem;
box-shadow: 0 8px 20px rgba(255, 107, 107, 0.4);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.btn-kid-primary:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 12px 30px rgba(255, 107, 107, 0.6);
color: white !important;
}
.btn-kid-primary::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.6s;
}
.btn-kid-primary:hover::before {
left: 100%;
}
.btn-kid-accent {
background: linear-gradient(45deg, #4ecdc4, #44a08d);
border: none;
border-radius: 25px;
color: white !important;
font-weight: 700;
padding: 12px 25px;
font-size: 1.1rem;
box-shadow: 0 8px 20px rgba(78, 205, 196, 0.4);
transition: all 0.3s ease;
}
.btn-kid-accent:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 12px 30px rgba(78, 205, 196, 0.6);
color: white !important;
}
.btn-kid-secondary {
background: linear-gradient(45deg, #ffd93d, #ffcc02);
border: none;
border-radius: 25px;
color: #333 !important;
font-weight: 700;
padding: 12px 25px;
font-size: 1.1rem;
box-shadow: 0 8px 20px rgba(255, 217, 61, 0.4);
transition: all 0.3s ease;
}
.btn-kid-secondary:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 12px 30px rgba(255, 217, 61, 0.6);
color: #333 !important;
}
/* 录音控制按钮特殊样式 */
.btn-record-start {
background: linear-gradient(45deg, #ff6b6b, #ee5a52);
border: none;
border-radius: 50%;
width: 80px;
height: 80px;
color: white;
font-size: 1.5rem;
box-shadow: 0 10px 25px rgba(255, 107, 107, 0.5);
transition: all 0.3s ease;
animation: recordPulse 2s ease-in-out infinite;
}
@keyframes recordPulse {
0%, 100% { transform: scale(1); box-shadow: 0 10px 25px rgba(255, 107, 107, 0.5); }
50% { transform: scale(1.1); box-shadow: 0 15px 35px rgba(255, 107, 107, 0.7); }
}
.btn-record-stop {
background: linear-gradient(45deg, #6c757d, #5a6169);
border: none;
border-radius: 50%;
width: 80px;
height: 80px;
color: white;
font-size: 1.5rem;
box-shadow: 0 10px 25px rgba(108, 117, 125, 0.5);
transition: all 0.3s ease;
}
/* 音频预览增强 */
.audio-preview-enhanced {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 15px;
padding: 1.5rem;
color: white;
margin-top: 1rem;
box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);
position: relative;
overflow: hidden;
}
.audio-preview-enhanced::before {
content: '🎵';
position: absolute;
top: 15px;
right: 15px;
font-size: 1.5rem;
animation: musicNote 2s ease-in-out infinite;
}
@keyframes musicNote {
0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.7; }
50% { transform: translateY(-5px) rotate(10deg); opacity: 1; }
}
.audio-preview-enhanced audio {
width: 100%;
margin-top: 1rem;
}
/* 表单控件增强 */
.voice-clone-page .form-control {
border: 3px solid #e3f2fd;
border-radius: 15px;
padding: 12px 20px;
font-size: 1.1rem;
transition: all 0.3s ease;
background: rgba(255, 255, 255, 0.9);
}
.voice-clone-page .form-control:focus {
border-color: #4ecdc4;
box-shadow: 0 0 0 0.2rem rgba(78, 205, 196, 0.25);
background: white;
transform: scale(1.02);
}
.voice-clone-page .form-label {
font-weight: 700;
color: #667eea;
font-size: 1.1rem;
margin-bottom: 8px;
}
/* 提示卡片增强 */
.tips-card-enhanced {
background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
border-radius: 20px;
border: none !important;
box-shadow: 0 10px 25px rgba(255, 236, 210, 0.5);
transition: all 0.3s ease;
}
.tips-card-enhanced:hover {
transform: translateY(-5px);
box-shadow: 0 15px 35px rgba(255, 236, 210, 0.7);
}
.tips-card-enhanced .icon-bubble {
background: linear-gradient(45deg, #ff9a9e, #fecfef);
color: white;
width: 50px;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 10px;
box-shadow: 0 5px 15px rgba(255, 154, 158, 0.4);
}
/* 成功/错误提示增强 */
.alert-success-kid {
background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
border: 2px solid #b8dacd;
border-radius: 15px;
color: #155724;
padding: 1rem 1.5rem;
box-shadow: 0 5px 15px rgba(212, 237, 218, 0.5);
}
.alert-info-kid {
background: linear-gradient(135deg, #cce7ff 0%, #b3d9ff 100%);
border: 2px solid #9ecfff;
border-radius: 15px;
color: #004085;
padding: 1rem 1.5rem;
box-shadow: 0 5px 15px rgba(204, 231, 255, 0.5);
}
/* 波形动画增强 */
.voice-wave-visual {
display: flex;
justify-content: center;
align-items: center;
gap: 6px;
height: 80px;
margin: 1rem 0;
}
.wave-bar {
width: 6px;
height: 30px;
background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
border-radius: 3px;
animation: waveAnimation 1.5s ease-in-out infinite;
}
.wave-bar:nth-child(1) { animation-delay: 0s; }
.wave-bar:nth-child(2) { animation-delay: 0.1s; }
.wave-bar:nth-child(3) { animation-delay: 0.2s; }
.wave-bar:nth-child(4) { animation-delay: 0.3s; }
.wave-bar:nth-child(5) { animation-delay: 0.4s; }
@keyframes waveAnimation {
0%, 100% {
height: 30px;
opacity: 0.5;
transform: scaleY(1);
}
50% {
height: 60px;
opacity: 1;
transform: scaleY(1.5);
}
}
/* 响应式优化 */
@media (max-width: 768px) {
.voice-clone-header {
padding: 1.5rem;
margin-bottom: 1.5rem;
}
.btn-record-start, .btn-record-stop {
width: 60px;
height: 60px;
font-size: 1.2rem;
}
.voice-wave-visual {
height: 60px;
}
.wave-bar {
width: 4px;
height: 20px;
}
.wave-bar:nth-child(odd) {
height: 25px;
}
}
/* 加载动画 */
.voice-loading {
display: inline-block;
width: 20px;
height: 20px;
border: 3px solid rgba(255,255,255,.3);
border-radius: 50%;
border-top-color: #fff;
animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* === 语音克隆页面专用样式 - 儿童友好版 === */
/* 语音克隆页面背景 */
.voice-clone-page {
min-height: 100vh;
background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 50%, #90CAF9 100%);
background-attachment: fixed;
position: relative;
overflow-x: hidden;
}
/* 语音克隆页面背景装饰 */
.voice-clone-page::before {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 30%, rgba(33, 150, 243, 0.1) 15%, transparent 25%),
radial-gradient(circle at 80% 20%, rgba(100, 181, 246, 0.12) 18%, transparent 30%),
radial-gradient(circle at 40% 80%, rgba(144, 202, 249, 0.1) 20%, transparent 35%),
radial-gradient(circle at 90% 70%, rgba(187, 222, 251, 0.15) 22%, transparent 40%);
z-index: -1;
animation: voicePageFloat 20s ease-in-out infinite;
}
@keyframes voicePageFloat {
0%, 100% { transform: translateY(0px) scale(1); opacity: 0.8; }
50% { transform: translateY(-10px) scale(1.02); opacity: 1; }
}
/* 增强语音克隆卡片样式 */
.kid-feature-card {
background: linear-gradient(145deg, #ffffff 0%, #f8fbff 100%);
border-radius: 25px;
padding: 2rem;
box-shadow: 0 15px 35px rgba(33, 150, 243, 0.15);
border: 3px solid rgba(100, 181, 246, 0.2);
transition: all 0.4s ease;
position: relative;
overflow: hidden;
}
.kid-feature-card::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #45B7D1, #96CEB4, #FFEAA7);
border-radius: 25px;
z-index: -1;
opacity: 0;
transition: opacity 0.3s ease;
}
.kid-feature-card:hover::before {
opacity: 0.3;
}
.kid-feature-card:hover {
transform: translateY(-8px) scale(1.02);
box-shadow: 0 25px 50px rgba(33, 150, 243, 0.25);
}
/* 语音克隆标题样式 */
.text-kid-primary {
background: linear-gradient(45deg, #2196F3, #03DAC6);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: titleGlow 3s ease-in-out infinite;
}
@keyframes titleGlow {
0%, 100% { filter: drop-shadow(0 0 5px rgba(33, 150, 243, 0.3)); }
50% { filter: drop-shadow(0 0 15px rgba(33, 150, 243, 0.6)); }
}
/* 增强按钮样式 */
.btn-kid-primary {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
border: none;
border-radius: 25px;
color: white;
font-weight: 700;
padding: 12px 24px;
box-shadow: 0 8px 20px rgba(255, 107, 107, 0.3);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.btn-kid-primary::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.6s;
}
.btn-kid-primary:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 12px 30px rgba(255, 107, 107, 0.4);
color: white;
}
.btn-kid-primary:hover::before {
left: 100%;
}
.btn-kid-accent {
background: linear-gradient(45deg, #FFD93D, #FF8A65);
border: none;
border-radius: 25px;
color: white;
font-weight: 700;
padding: 12px 24px;
box-shadow: 0 8px 20px rgba(255, 217, 61, 0.3);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.btn-kid-accent::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.6s;
}
.btn-kid-accent:hover {
transform: translateY(-3px) scale(1.05);
box-shadow: 0 12px 30px rgba(255, 217, 61, 0.4);
color: white;
}
.btn-kid-accent:hover::before {
left: 100%;
}
/* 表单元素增强 */
.form-control {
border: 3px solid #E1F5FE;
border-radius: 15px;
padding: 12px 16px;
transition: all 0.3s ease;
background: linear-gradient(145deg, #ffffff 0%, #f8fbff 100%);
}
.form-control:focus {
border-color: #4ECDC4;
box-shadow: 0 0 0 0.2rem rgba(78, 205, 196, 0.25);
transform: scale(1.02);
}
/* 状态卡片增强 */
#status-card {
background: linear-gradient(145deg, #ffffff 0%, #f0f8ff 100%);
border-radius: 20px;
border: 2px solid rgba(33, 150, 243, 0.1);
box-shadow: 0 10px 30px rgba(33, 150, 243, 0.1);
animation: statusCardPulse 4s ease-in-out infinite;
}
@keyframes statusCardPulse {
0%, 100% { box-shadow: 0 10px 30px rgba(33, 150, 243, 0.1); }
50% { box-shadow: 0 15px 40px rgba(33, 150, 243, 0.2); }
}
/* 录音状态增强 */
#record-status {
font-weight: 600;
animation: statusBlink 2s ease-in-out infinite;
}
@keyframes statusBlink {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
/* 音频预览增强 */
.alert-info {
background: linear-gradient(145deg, #E3F2FD 0%, #BBDEFB 100%);
border: 2px solid #90CAF9;
border-radius: 20px;
color: #1565C0;
animation: previewGlow 3s ease-in-out infinite;
}
@keyframes previewGlow {
0%, 100% { box-shadow: 0 5px 15px rgba(33, 150, 243, 0.2); }
50% { box-shadow: 0 10px 25px rgba(33, 150, 243, 0.3); }
}
/* 音频控件美化 */
audio {
border-radius: 15px;
box-shadow: 0 5px 15px rgba(33, 150, 243, 0.2);
background: linear-gradient(145deg, #f8fbff 0%, #ffffff 100%);
}
/* 提示卡片增强 */
.voice-tips-card {
background: linear-gradient(145deg, #E8F5E8 0%, #C8E6C9 100%);
border: 2px solid #A5D6A7;
border-radius: 20px;
box-shadow: 0 10px 25px rgba(76, 175, 80, 0.15);
animation: tipsCardFloat 6s ease-in-out infinite;
}
@keyframes tipsCardFloat {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-5px); }
}
.tips-title {
color: #2E7D32;
text-shadow: 1px 1px 3px rgba(46, 125, 50, 0.2);
}
.tips-list li {
color: #388E3C;
transition: transform 0.2s ease;
}
.tips-list li:hover {
transform: translateX(5px);
}
/* 加载动画增强 */
.spinner-border {
animation: rainbowSpin 1.5s linear infinite;
}
@keyframes rainbowSpin {
0% { border-top-color: #FF6B6B; transform: rotate(0deg); }
25% { border-top-color: #4ECDC4; }
50% { border-top-color: #45B7D1; }
75% { border-top-color: #96CEB4; }
100% { border-top-color: #FF6B6B; transform: rotate(360deg); }
}
/* 图标增强 */
.fas {
filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
transition: all 0.3s ease;
}
.btn:hover .fas {
transform: scale(1.1);
}
/* 语音波浪增强(如果有的话) */
.voice-wave-container {
background: rgba(78, 205, 196, 0.1);
border-radius: 15px;
padding: 10px;
animation: waveContainerPulse 2s ease-in-out infinite;
}
@keyframes waveContainerPulse {
0%, 100% { background: rgba(78, 205, 196, 0.1); }
50% { background: rgba(78, 205, 196, 0.2); }
}
/* 响应式优化 */
@media (max-width: 768px) {
.kid-feature-card {
padding: 1.5rem;
}
.btn-kid-primary, .btn-kid-accent {
padding: 10px 20px;
font-size: 0.95rem;
}
.text-kid-primary {
font-size: 1.8rem;
}
}
/* 成功/错误状态增强 */
.text-success {
color: #4CAF50 !important;
text-shadow: 1px 1px 3px rgba(76, 175, 80, 0.3);
}
.text-danger {
color: #F44336 !important;
text-shadow: 1px 1px 3px rgba(244, 67, 54, 0.3);
}
.text-warning {
color: #FF9800 !important;
text-shadow: 1px 1px 3px rgba(255, 152, 0, 0.3);
}
/* 容器间距优化 */
.container {
position: relative;
z-index: 1;
}
/* 链接样式增强 */
a.btn {
text-decoration: none !important;
}
a.btn:hover {
text-decoration: none !important;
}
/* ===== 童趣主页样式增强 ===== */
/* 童趣轮播图样式 */
.hero-carousel-kid {
position: relative;
overflow: hidden;
border-radius: 0 0 50px 50px;
box-shadow: 0 20px 60px rgba(0,0,0,0.1);
}
.hero-carousel-kid .carousel-item {
height: 60vh;
min-height: 450px;
position: relative;
}
.hero-carousel-kid .carousel-item img {
object-fit: cover;
width: 100%;
height: 100%;
filter: brightness(1.1) saturate(1.3);
}
.carousel-overlay-kid {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg,
rgba(255, 107, 107, 0.3) 0%,
rgba(78, 205, 196, 0.3) 50%,
rgba(69, 183, 209, 0.3) 100%);
z-index: 1;
}
/* 童趣装饰元素动画 */
.kid-decorations {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2;
pointer-events: none;
}
.kid-star {
position: absolute;
font-size: 1.5rem;
animation: kidStarFloat 4s ease-in-out infinite;
}
.kid-star-1 { top: 15%; left: 10%; animation-delay: 0s; }
.kid-star-2 { top: 25%; right: 15%; animation-delay: 1.5s; }
.kid-star-3 { bottom: 30%; left: 20%; animation-delay: 3s; }
@keyframes kidStarFloat {
0%, 100% {
transform: translateY(0px) rotate(0deg) scale(1);
opacity: 0.8;
}
25% {
transform: translateY(-15px) rotate(90deg) scale(1.2);
opacity: 1;
}
50% {
transform: translateY(-5px) rotate(180deg) scale(0.9);
opacity: 0.9;
}
75% {
transform: translateY(-20px) rotate(270deg) scale(1.1);
opacity: 1;
}
}
.kid-cloud {
position: absolute;
font-size: 2rem;
animation: kidCloudDrift 8s ease-in-out infinite;
}
.kid-cloud-1 { top: 10%; left: 5%; }
.kid-cloud-2 { top: 20%; right: 10%; animation-delay: 4s; }
@keyframes kidCloudDrift {
0%, 100% { transform: translateX(0px) translateY(0px); opacity: 0.7; }
50% { transform: translateX(30px) translateY(-10px); opacity: 1; }
}
.kid-balloon {
position: absolute;
font-size: 1.5rem;
animation: kidBalloonBob 3s ease-in-out infinite;
}
.kid-balloon-1 { bottom: 40%; left: 15%; animation-delay: 0s; }
.kid-balloon-2 { bottom: 50%; right: 20%; animation-delay: 1s; }
.kid-balloon-3 { bottom: 35%; left: 85%; animation-delay: 2s; }
@keyframes kidBalloonBob {
0%, 100% { transform: translateY(0px) rotate(-5deg); }
50% { transform: translateY(-25px) rotate(5deg); }
}
/* 音乐符号动画 */
.music-notes {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2;
pointer-events: none;
}
.music-note {
position: absolute;
font-size: 1.4rem;
animation: musicFloat 6s ease-in-out infinite;
}
.music-note-1 { top: 20%; left: 25%; animation-delay: 0s; }
.music-note-2 { top: 35%; right: 25%; animation-delay: 2s; }
.music-note-3 { bottom: 45%; left: 30%; animation-delay: 4s; }
.music-note-4 { bottom: 25%; right: 30%; animation-delay: 1s; }
@keyframes musicFloat {
0%, 100% {
transform: translateY(0px) scale(1) rotate(0deg);
opacity: 0.6;
}
25% {
transform: translateY(-20px) scale(1.3) rotate(15deg);
opacity: 1;
}
50% {
transform: translateY(-10px) scale(0.8) rotate(-10deg);
opacity: 0.8;
}
75% {
transform: translateY(-30px) scale(1.2) rotate(20deg);
opacity: 1;
}
}
/* 游戏装饰元素 */
.kid-toy, .kid-game, .kid-spark {
position: absolute;
font-size: 2rem;
animation: kidToyBounce 5s ease-in-out infinite;
}
.toy-1 { top: 20%; left: 12%; animation-delay: 0s; }
.toy-2 { bottom: 40%; right: 15%; animation-delay: 2s; }
.toy-3 { top: 40%; right: 25%; animation-delay: 1s; }
.game-1 { top: 60%; left: 20%; animation-delay: 3s; }
.game-2 { bottom: 60%; left: 30%; animation-delay: 1.5s; }
.game-3 { top: 30%; left: 70%; animation-delay: 4s; }
@keyframes kidToyBounce {
0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.7; }
50% { transform: translateY(-20px) rotate(360deg); opacity: 1; }
}
/* 成长装饰元素 */
.kid-trophy, .kid-rocket, .kid-flower, .kid-rainbow {
position: absolute;
font-size: 2.5rem;
animation: kidGrowthSpin 7s ease-in-out infinite;
}
.trophy-1 { top: 15%; left: 18%; animation-delay: 0s; }
.trophy-2 { bottom: 35%; right: 12%; animation-delay: 3s; }
.star-big { top: 50%; left: 10%; font-size: 3rem; animation-delay: 1s; }
.rocket-1 { bottom: 50%; right: 20%; animation-delay: 2s; }
.flower-1 { top: 70%; left: 25%; animation-delay: 4s; }
.flower-2 { bottom: 20%; left: 40%; animation-delay: 5s; }
.kid-rainbow { top: 10%; right: 30%; font-size: 3rem; animation-delay: 6s; }
@keyframes kidGrowthSpin {
0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.8; }
50% { transform: scale(1.3) rotate(180deg); opacity: 1; }
}
/* 童趣标题样式 */
.kid-caption {
position: absolute;
bottom: 25%;
left: 50%;
transform: translateX(-50%);
z-index: 10;
color: white;
text-align: center;
max-width: 900px;
width: 95%;
}
.hero-badge-kid {
display: inline-block;
background: linear-gradient(45deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));
color: #FF6B6B;
padding: 12px 25px;
border-radius: 30px;
font-size: 1rem;
font-weight: 800;
margin-bottom: 1.5rem;
border: 3px solid rgba(255, 255, 255, 0.8);
box-shadow: 0 8px 25px rgba(0,0,0,0.2);
animation: badgePulse 3s ease-in-out infinite;
}
@keyframes badgePulse {
0%, 100% { transform: scale(1); box-shadow: 0 8px 25px rgba(0,0,0,0.2); }
50% { transform: scale(1.05); box-shadow: 0 12px 35px rgba(0,0,0,0.3); }
}
.hero-title-kid {
font-size: 3.2rem;
font-weight: 900;
line-height: 1.1;
margin-bottom: 2rem;
text-shadow: 3px 3px 15px rgba(0,0,0,0.5);
position: relative;
}
.rainbow-text {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #45B7D1, #96CEB4, #FFEAA7, #DDA0DD);
background-size: 400% 400%;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: rainbowMove 4s ease-in-out infinite;
}
@keyframes rainbowMove {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
.bounce-text {
display: inline-block;
animation: titleBounce 2s ease-in-out infinite;
}
@keyframes titleBounce {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.wiggle-text {
display: inline-block;
animation: titleWiggle 3s ease-in-out infinite;
}
@keyframes titleWiggle {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(2deg); }
75% { transform: rotate(-2deg); }
}
.scale-text {
display: inline-block;
animation: titleScale 2.5s ease-in-out infinite;
}
@keyframes titleScale {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
.hero-subtitle-kid {
font-size: 1.2rem;
line-height: 1.8;
margin-bottom: 2.5rem;
opacity: 0.95;
text-shadow: 2px 2px 8px rgba(0,0,0,0.5);
font-weight: 600;
}
/* 童趣按钮样式 */
.btn-hero-kid {
border: none;
padding: 18px 35px;
border-radius: 50px;
color: white;
font-size: 1.2rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 1px;
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
transition: all 0.4s ease;
text-decoration: none !important;
position: relative;
overflow: hidden;
}
.btn-magic {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #45B7D1);
background-size: 200% 200%;
animation: magicGradient 3s ease-in-out infinite;
}
.btn-adventure {
background: linear-gradient(45deg, #96CEB4, #FFEAA7, #DDA0DD);
background-size: 200% 200%;
animation: adventureGradient 3s ease-in-out infinite;
}
.btn-play {
background: linear-gradient(45deg, #FFEAA7, #FF6B6B, #4ECDC4);
background-size: 200% 200%;
animation: playGradient 3s ease-in-out infinite;
}
.btn-growth {
background: linear-gradient(45deg, #DDA0DD, #96CEB4, #45B7D1);
background-size: 200% 200%;
animation: growthGradient 3s ease-in-out infinite;
}
@keyframes magicGradient {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
@keyframes adventureGradient {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
@keyframes playGradient {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
@keyframes growthGradient {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
.btn-hero-kid:hover {
transform: translateY(-5px) scale(1.05);
box-shadow: 0 15px 40px rgba(0,0,0,0.4);
color: white;
}
.btn-hero-kid::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.6s;
}
.btn-hero-kid:hover::before {
left: 100%;
}
/* 童趣指示器 */
.hero-carousel-kid .carousel-indicators {
bottom: 40px;
z-index: 15;
}
.hero-carousel-kid .carousel-indicators button {
width: 20px !important;
height: 20px !important;
border-radius: 50% !important;
margin: 0 12px !important;
background: rgba(255, 255, 255, 0.6) !important;
border: 3px solid white !important;
transition: all 0.3s ease;
}
.hero-carousel-kid .carousel-indicators .active {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4) !important;
transform: scale(1.3);
}
/* 童趣波浪分隔符 */
.kid-wavy-divider {
height: 120px;
overflow: hidden;
margin-top: -60px;
position: relative;
z-index: 10;
}
.kid-wavy-divider svg {
width: 100%;
height: 100%;
}
/* 背景样式 */
.bg-kid-wonderland {
background: linear-gradient(135deg, #E8F5E8 0%, #F0F8FF 50%, #FFF8DC 100%);
position: relative;
overflow: hidden;
}
.bg-kid-wonderland::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 15% 25%, rgba(255, 107, 107, 0.05) 15%, transparent 25%),
radial-gradient(circle at 85% 35%, rgba(78, 205, 196, 0.05) 20%, transparent 30%),
radial-gradient(circle at 45% 75%, rgba(69, 183, 209, 0.05) 18%, transparent 28%);
z-index: 0;
}
.bg-kid-playground {
background: linear-gradient(135deg, #FFF0F5 0%, #F0FFFF 50%, #F5FFFA 100%);
position: relative;
overflow: hidden;
}
.bg-kid-playground::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 30%, rgba(150, 206, 180, 0.08) 15%, transparent 25%),
radial-gradient(circle at 80% 20%, rgba(255, 234, 167, 0.08) 20%, transparent 30%),
radial-gradient(circle at 50% 80%, rgba(221, 160, 221, 0.08) 18%, transparent 28%);
z-index: 0;
}
/* 童趣区块标题 */
.section-title-kid {
text-align: center;
margin-bottom: 4rem;
position: relative;
z-index: 1;
}
.title-with-stars, .title-with-emojis {
font-size: 3rem;
font-weight: 900;
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #45B7D1);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 1rem;
text-shadow: 2px 2px 8px rgba(0,0,0,0.1);
animation: titleShine 4s ease-in-out infinite;
}
@keyframes titleShine {
0%, 100% { filter: brightness(1); }
50% { filter: brightness(1.2); }
}
.subtitle-rainbow, .subtitle-fun {
font-size: 1.3rem;
color: #666;
margin-bottom: 1rem;
font-weight: 600;
}
.title-decoration {
margin-top: 1rem;
}
.deco-star, .deco-heart, .deco-balloon, .deco-gift {
font-size: 1.8rem;
margin: 0 10px;
animation: decoFloat 3s ease-in-out infinite;
}
.deco-star:nth-child(1) { animation-delay: 0s; }
.deco-heart { animation-delay: 1s; }
.deco-star:nth-child(3) { animation-delay: 2s; }
.deco-balloon:nth-child(1) { animation-delay: 0.5s; }
.deco-gift { animation-delay: 1.5s; }
.deco-balloon:nth-child(3) { animation-delay: 2.5s; }
@keyframes decoFloat {
0%, 100% { transform: translateY(0px) rotate(0deg); }
50% { transform: translateY(-10px) rotate(5deg); }
}
/* 增强功能卡片 */
.kid-feature-card-enhanced {
background: linear-gradient(145deg, #ffffff 0%, #f8fbff 100%);
border-radius: 30px;
padding: 2.5rem;
box-shadow: 0 15px 40px rgba(0,0,0,0.08);
border: 3px solid transparent;
transition: all 0.4s ease;
position: relative;
overflow: hidden;
height: 100%;
}
.card-glow {
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
border-radius: 30px;
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #45B7D1, #96CEB4, #FFEAA7);
z-index: -1;
opacity: 0;
transition: opacity 0.3s ease;
}
.kid-feature-card-enhanced:hover .card-glow {
opacity: 0.3;
}
.kid-feature-card-enhanced:hover {
transform: translateY(-10px) scale(1.03);
box-shadow: 0 25px 60px rgba(0,0,0,0.15);
}
.icon-bubble-big {
width: 100px;
height: 100px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1.5rem;
font-size: 3rem;
animation: iconBounce 4s ease-in-out infinite;
}
.magic-bubble { background: linear-gradient(45deg, #FF6B6B, #FFB6C1); }
.robot-bubble { background: linear-gradient(45deg, #4ECDC4, #98FB98); }
.chart-bubble { background: linear-gradient(45deg, #FFD700, #FFEAA7); }
.game-bubble { background: linear-gradient(45deg, #DDA0DD, #E6E6FA); }
@keyframes iconBounce {
0%, 100% { transform: translateY(0px) scale(1); }
50% { transform: translateY(-8px) scale(1.1); }
}
.feature-title {
font-size: 1.4rem;
font-weight: 800;
color: #333;
margin-bottom: 1rem;
text-align: center;
}
.feature-desc {
color: #666;
font-size: 1rem;
line-height: 1.6;
text-align: center;
margin-bottom: 1.5rem;
}
.feature-stars {
text-align: center;
}
.feature-stars .star {
font-size: 1.2rem;
margin: 0 2px;
animation: starTwinkle 2s ease-in-out infinite;
}
.feature-stars .star:nth-child(1) { animation-delay: 0s; }
.feature-stars .star:nth-child(2) { animation-delay: 0.5s; }
.feature-stars .star:nth-child(3) { animation-delay: 1s; }
@keyframes starTwinkle {
0%, 100% { opacity: 0.6; transform: scale(1); }
50% { opacity: 1; transform: scale(1.2); }
}
/* 超级场景卡片 */
.scenario-card-super {
background: linear-gradient(145deg, #ffffff 0%, #f8fcff 100%);
border-radius: 25px;
overflow: hidden;
box-shadow: 0 12px 35px rgba(0,0,0,0.08);
transition: all 0.4s ease;
height: 100%;
position: relative;
border: 2px solid transparent;
}
.scenario-card-super:hover {
transform: translateY(-8px) scale(1.02);
box-shadow: 0 20px 50px rgba(0,0,0,0.15);
}
.card-header-social { background: linear-gradient(135deg, #FF6B6B, #FF8E53); }
.card-header-daily { background: linear-gradient(135deg, #4ECDC4, #56C596); }
.card-header-fun { background: linear-gradient(135deg, #FFD93D, #FFCC02); }
.scenario-card-super .card-header-social,
.scenario-card-super .card-header-daily,
.scenario-card-super .card-header-fun {
padding: 2rem;
position: relative;
text-align: center;
color: white;
}
.card-sparkles {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.sparkle {
position: absolute;
font-size: 1.5rem;
animation: sparkleFloat 3s ease-in-out infinite;
}
.sparkle:nth-child(1) { top: 20%; left: 15%; animation-delay: 0s; }
.sparkle:nth-child(2) { top: 30%; right: 20%; animation-delay: 1s; }
.sparkle:nth-child(3) { bottom: 25%; left: 20%; animation-delay: 2s; }
@keyframes sparkleFloat {
0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.7; }
50% { transform: translateY(-15px) rotate(180deg); opacity: 1; }
}
.scenario-icon-super {
width: 80px;
height: 80px;
background: rgba(255,255,255,0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
font-size: 3rem;
border: 3px solid rgba(255,255,255,0.3);
animation: iconPulse 3s ease-in-out infinite;
}
@keyframes iconPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.card-body-kid {
padding: 2rem;
}
.scenario-title-kid {
font-size: 1.4rem;
font-weight: 800;
color: #333;
margin-bottom: 1rem;
text-align: center;
}
.scenario-desc-kid {
color: #666;
font-size: 0.95rem;
line-height: 1.6;
text-align: center;
margin-bottom: 1.5rem;
}
.scenario-tags-kid {
text-align: center;
margin-bottom: 1.5rem;
}
.tag-kid {
display: inline-block;
padding: 6px 15px;
border-radius: 20px;
font-size: 0.8rem;
font-weight: 600;
margin: 3px;
border: 2px solid transparent;
transition: all 0.3s ease;
}
.tag-social { background: linear-gradient(45deg, #FFE5E5, #FFD0D0); color: #FF6B6B; }
.tag-team { background: linear-gradient(45deg, #E5F3FF, #D0E7FF); color: #4ECDC4; }
.tag-food { background: linear-gradient(45deg, #FFF5E5, #FFEAD0); color: #FF8C00; }
.tag-shop { background: linear-gradient(45deg, #E5FFE5, #D0FFD0); color: #32CD32; }
.tag-puzzle { background: linear-gradient(45deg, #F5E5FF, #E8D0FF); color: #9370DB; }
.tag-role { background: linear-gradient(45deg, #FFFFE5, #FFFFD0); color: #FFD700; }
.tag-kid:hover {
transform: scale(1.1);
border-color: currentColor;
}
.card-footer-kid {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 2rem 2rem;
}
.difficulty-emoji, .play-emoji {
font-size: 1rem;
font-weight: 600;
}
/* 超级CTA区块 */
.cta-section-super {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 100px 0;
position: relative;
overflow: hidden;
}
.cta-decorations {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.cta-star, .cta-balloon, .cta-gift, .cta-rocket, .cta-rainbow {
position: absolute;
font-size: 2.5rem;
animation: ctaFloat 6s ease-in-out infinite;
}
.star-1 { top: 15%; left: 10%; animation-delay: 0s; }
.star-2 { top: 25%; right: 15%; animation-delay: 2s; }
.star-3 { bottom: 30%; left: 15%; animation-delay: 4s; }
.balloon-1 { top: 20%; left: 20%; animation-delay: 1s; }
.balloon-2 { bottom: 40%; right: 20%; animation-delay: 3s; }
.balloon-3 { top: 60%; right: 10%; animation-delay: 5s; }
.cta-gift { bottom: 20%; left: 80%; animation-delay: 1.5s; }
.cta-rocket { top: 40%; left: 5%; animation-delay: 3.5s; }
.cta-rainbow { top: 10%; left: 50%; animation-delay: 2.5s; }
@keyframes ctaFloat {
0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.7; }
50% { transform: translateY(-20px) rotate(10deg); opacity: 1; }
}
.cta-title-super {
font-size: 3.5rem;
font-weight: 900;
margin-bottom: 1.5rem;
text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
animation: titlePulse 4s ease-in-out infinite;
}
@keyframes titlePulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.02); }
}
.cta-subtitle-super {
font-size: 1.4rem;
margin-bottom: 3rem;
opacity: 0.95;
line-height: 1.6;
}
.cta-button-container {
margin-bottom: 2rem;
}
.btn-cta-super {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #FFD93D);
background-size: 200% 200%;
border: none;
padding: 20px 40px;
border-radius: 50px;
color: white;
font-size: 1.3rem;
font-weight: 800;
text-decoration: none !important;
display: inline-flex;
align-items: center;
gap: 10px;
box-shadow: 0 15px 40px rgba(0,0,0,0.3);
transition: all 0.4s ease;
animation: ctaGradient 4s ease-in-out infinite;
position: relative;
overflow: hidden;
}
@keyframes ctaGradient {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
.btn-cta-super:hover {
transform: translateY(-5px) scale(1.05);
box-shadow: 0 20px 50px rgba(0,0,0,0.4);
color: white;
}
.btn-cta-super::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.6s;
}
.btn-cta-super:hover::before {
left: 100%;
}
.btn-icon, .btn-sparkle {
font-size: 1.5rem;
animation: iconSpin 3s ease-in-out infinite;
}
.btn-sparkle {
animation-delay: 1.5s;
}
@keyframes iconSpin {
0%, 100% { transform: rotate(0deg); }
50% { transform: rotate(360deg); }
}
.cta-features {
display: flex;
justify-content: center;
gap: 30px;
flex-wrap: wrap;
}
.cta-feature {
background: rgba(255,255,255,0.2);
padding: 10px 20px;
border-radius: 25px;
font-size: 1rem;
font-weight: 600;
border: 2px solid rgba(255,255,255,0.3);
animation: featureBob 3s ease-in-out infinite;
}
.cta-feature:nth-child(1) { animation-delay: 0s; }
.cta-feature:nth-child(2) { animation-delay: 1s; }
.cta-feature:nth-child(3) { animation-delay: 2s; }
@keyframes featureBob {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-5px); }
}
/* 响应式优化 */
@media (max-width: 768px) {
.hero-title-kid {
font-size: 2.5rem;
}
.hero-subtitle-kid {
font-size: 1.1rem;
}
.title-with-stars, .title-with-emojis {
font-size: 2.2rem;
}
.cta-title-super {
font-size: 2.5rem;
}
.kid-decorations .kid-star,
.kid-decorations .kid-cloud,
.kid-decorations .kid-balloon {
font-size: 1.5rem;
}
.music-notes .music-note {
font-size: 1.3rem;
}
.btn-hero-kid {
padding: 15px 25px;
font-size: 1rem;
}
.icon-bubble-big {
width: 80px;
height: 80px;
font-size: 2.5rem;
}
.scenario-icon-super {
width: 60px;
height: 60px;
font-size: 2.5rem;
}
.cta-features {
gap: 15px;
}
.cta-feature {
font-size: 0.9rem;
padding: 8px 16px;
}
}
@media (max-width: 576px) {
.kid-caption {
bottom: 20%;
width: 100%;
padding: 0 10px;
}
.hero-title-kid {
font-size: 2rem;
}
.hero-subtitle-kid {
font-size: 1rem;
}
.btn-hero-kid {
padding: 12px 20px;
font-size: 0.9rem;
}
.title-with-stars, .title-with-emojis {
font-size: 1.8rem;
}
.cta-title-super {
font-size: 2rem;
}
.cta-subtitle-super {
font-size: 1.1rem;
}
.btn-cta-super {
padding: 16px 30px;
font-size: 1.1rem;
}
}
/* 加载动画优化 */
.page-loading {
opacity: 0;
animation: pageLoad 1s ease-out forwards;
}
@keyframes pageLoad {
to { opacity: 1; }
}
/* 滚动触发动画 */
.fade-in-on-scroll {
opacity: 0;
transform: translateY(30px);
transition: all 0.8s ease;
}
.fade-in-on-scroll.visible {
opacity: 1;
transform: translateY(0);
}
/* ===== 超丰富主页样式 ===== */
/* 数据统计展示 */
.stats-showcase {
margin-bottom: 3rem;
}
.stat-card {
background: linear-gradient(145deg, #ffffff, #f8fbff);
border-radius: 20px;
padding: 2rem 1rem;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.08);
transition: all 0.3s ease;
border: 2px solid transparent;
position: relative;
overflow: hidden;
}
.stat-card::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.8), transparent);
transition: left 1s;
}
.stat-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}
.stat-card:hover::before {
left: 100%;
}
.stat-users { border-color: #FF6B6B; }
.stat-conversations { border-color: #4ECDC4; }
.stat-improvement { border-color: #FFD93D; }
.stat-satisfaction { border-color: #96CEB4; }
.stat-icon {
font-size: 3rem;
margin-bottom: 1rem;
animation: statIconBounce 2s ease-in-out infinite;
}
.stat-users .stat-icon { animation-delay: 0s; }
.stat-conversations .stat-icon { animation-delay: 0.5s; }
.stat-improvement .stat-icon { animation-delay: 1s; }
.stat-satisfaction .stat-icon { animation-delay: 1.5s; }
@keyframes statIconBounce {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.stat-number {
font-size: 3rem;
font-weight: 900;
color: #333;
margin-bottom: 0.5rem;
font-family: 'Arial Black', sans-serif;
}
.stat-label {
color: #666;
font-weight: 600;
font-size: 1rem;
}
/* 高级功能卡片 */
.feature-card-advanced {
background: linear-gradient(145deg, #ffffff, #f8fbff);
border-radius: 25px;
padding: 2rem;
box-shadow: 0 15px 40px rgba(0,0,0,0.1);
transition: all 0.4s ease;
border: 3px solid transparent;
height: 100%;
position: relative;
overflow: hidden;
}
.feature-card-advanced:hover {
transform: translateY(-10px);
box-shadow: 0 25px 60px rgba(0,0,0,0.2);
}
.voice-clone-card {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.ai-chat-card {
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
color: white;
}
.feature-header {
text-align: center;
margin-bottom: 2rem;
}
.feature-icon-big {
width: 100px;
height: 100px;
background: rgba(255,255,255,0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1rem;
font-size: 3.5rem;
border: 3px solid rgba(255,255,255,0.3);
animation: featureIconPulse 3s ease-in-out infinite;
}
@keyframes featureIconPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.feature-header h4 {
font-size: 1.5rem;
font-weight: 800;
margin: 0;
}
/* 语音波浪演示 */
.voice-wave-demo {
display: flex;
justify-content: center;
align-items: center;
gap: 8px;
height: 80px;
margin: 1rem 0;
}
.wave-bar {
width: 8px;
height: 30px;
background: linear-gradient(45deg, rgba(255,255,255,0.8), rgba(255,255,255,0.6));
border-radius: 4px;
animation: waveDemo 1.5s ease-in-out infinite;
}
.wave-bar:nth-child(1) { animation-delay: 0s; }
.wave-bar:nth-child(2) { animation-delay: 0.2s; }
.wave-bar:nth-child(3) { animation-delay: 0.4s; }
.wave-bar:nth-child(4) { animation-delay: 0.6s; }
.wave-bar:nth-child(5) { animation-delay: 0.8s; }
@keyframes waveDemo {
0%, 100% { height: 30px; opacity: 0.6; }
50% { height: 60px; opacity: 1; }
}
.demo-text {
text-align: center;
font-size: 1rem;
margin-bottom: 1.5rem;
opacity: 0.9;
}
/* 功能优势 */
.feature-benefits {
display: flex;
flex-direction: column;
gap: 1rem;
margin-bottom: 2rem;
}
.benefit-item {
display: flex;
align-items: center;
gap: 1rem;
padding: 0.8rem;
background: rgba(255,255,255,0.1);
border-radius: 15px;
backdrop-filter: blur(10px);
}
.benefit-icon {
font-size: 1.5rem;
}
/* AI聊天演示 */
.chat-demo {
background: rgba(255,255,255,0.1);
border-radius: 15px;
padding: 1.5rem;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}
.chat-bubble {
display: flex;
align-items: center;
gap: 0.8rem;
margin-bottom: 1rem;
padding: 0.8rem;
border-radius: 15px;
font-size: 0.9rem;
}
.ai-bubble {
background: rgba(255,255,255,0.2);
justify-content: flex-start;
}
.user-bubble {
background: rgba(255,255,255,0.3);
justify-content: flex-end;
flex-direction: row-reverse;
}
.typing-indicator {
display: inline-flex;
gap: 4px;
}
.typing-indicator span {
width: 6px;
height: 6px;
border-radius: 50%;
background: rgba(255,255,255,0.8);
animation: typingDot 1.4s ease-in-out infinite;
}
.typing-indicator span:nth-child(1) { animation-delay: 0s; }
.typing-indicator span:nth-child(2) { animation-delay: 0.2s; }
.typing-indicator span:nth-child(3) { animation-delay: 0.4s; }
@keyframes typingDot {
0%, 60%, 100% { opacity: 0.3; transform: scale(0.8); }
30% { opacity: 1; transform: scale(1.2); }
}
.ai-features {
display: flex;
justify-content: space-around;
margin-bottom: 2rem;
}
.ai-feature {
text-align: center;
font-size: 0.85rem;
font-weight: 600;
opacity: 0.9;
}
/* 功能按钮 */
.btn-feature-try {
background: rgba(255,255,255,0.2);
border: 2px solid rgba(255,255,255,0.4);
color: white;
padding: 12px 24px;
border-radius: 25px;
font-weight: 700;
font-size: 1rem;
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
width: 100%;
backdrop-filter: blur(10px);
}
.btn-feature-try:hover {
background: rgba(255,255,255,0.3);
transform: scale(1.05);
color: white;
}
.btn-icon {
font-size: 1.2rem;
}
/* 学习步骤 */
.learning-steps {
background: linear-gradient(135deg, rgba(255,255,255,0.9), rgba(248,251,255,0.9));
border-radius: 25px;
padding: 3rem 2rem;
margin-top: 3rem;
box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}
.steps-title {
text-align: center;
font-size: 2rem;
font-weight: 800;
color: #333;
margin-bottom: 3rem;
}
.steps-container {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 2rem;
}
.step-item {
text-align: center;
position: relative;
flex: 1;
min-width: 150px;
max-width: 200px;
}
.step-number {
position: absolute;
top: -10px;
right: -10px;
width: 30px;
height: 30px;
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
font-size: 0.9rem;
z-index: 2;
}
.step-icon {
width: 80px;
height: 80px;
background: linear-gradient(145deg, #f8fbff, #ffffff);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1rem;
font-size: 2.5rem;
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
animation: stepFloat 4s ease-in-out infinite;
}
.step-item:nth-child(odd) .step-icon { animation-delay: 0s; }
.step-item:nth-child(even) .step-icon { animation-delay: 2s; }
@keyframes stepFloat {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-8px); }
}
.step-title {
font-size: 1.1rem;
font-weight: 700;
color: #333;
margin-bottom: 0.5rem;
}
.step-desc {
font-size: 0.9rem;
color: #666;
}
.step-arrow {
font-size: 2rem;
color: #4ECDC4;
animation: arrowPulse 2s ease-in-out infinite;
}
@keyframes arrowPulse {
0%, 100% { opacity: 0.6; }
50% { opacity: 1; }
}
/* 场景分类导航 */
.scenario-nav {
display: flex;
justify-content: center;
gap: 1rem;
margin-bottom: 3rem;
flex-wrap: wrap;
}
.scenario-nav-btn {
background: linear-gradient(145deg, #ffffff, #f8fbff);
border: 3px solid transparent;
padding: 12px 25px;
border-radius: 25px;
font-weight: 700;
color: #666;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 0.5rem;
cursor: pointer;
box-shadow: 0 5px 15px rgba(0,0,0,0.08);
}
.scenario-nav-btn:hover,
.scenario-nav-btn.active {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
color: white;
transform: translateY(-3px);
box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}
.nav-icon {
font-size: 1.2rem;
}
/* 场景网格 */
.scenarios-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
gap: 2rem;
margin-bottom: 3rem;
}
.scenario-card-new {
background: linear-gradient(145deg, #ffffff, #f8fbff);
border-radius: 25px;
overflow: hidden;
box-shadow: 0 15px 40px rgba(0,0,0,0.1);
transition: all 0.4s ease;
border: 3px solid transparent;
}
.scenario-card-new:hover {
transform: translateY(-10px);
box-shadow: 0 25px 60px rgba(0,0,0,0.2);
}
.scenario-thumbnail {
height: 150px;
position: relative;
overflow: hidden;
}
.scenario-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.social-bg { background: linear-gradient(135deg, #FF6B6B, #FF8E53); }
.daily-bg { background: linear-gradient(135deg, #4ECDC4, #56C596); }
.fun-bg { background: linear-gradient(135deg, #FFD93D, #FFCC02); }
.scenario-emoji {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 4rem;
animation: scenarioEmojiFloat 3s ease-in-out infinite;
}
@keyframes scenarioEmojiFloat {
0%, 100% { transform: translate(-50%, -50%) scale(1); }
50% { transform: translate(-50%, -50%) scale(1.1); }
}
.scenario-difficulty {
position: absolute;
top: 15px;
right: 15px;
background: rgba(255,255,255,0.9);
padding: 5px 12px;
border-radius: 15px;
font-size: 0.8rem;
font-weight: 600;
color: #333;
}
.scenario-content {
padding: 2rem;
}
.scenario-content h5 {
font-size: 1.3rem;
font-weight: 800;
color: #333;
margin-bottom: 1rem;
}
.scenario-content p {
color: #666;
font-size: 0.95rem;
line-height: 1.6;
margin-bottom: 1.5rem;
}
.scenario-stats {
display: flex;
gap: 1rem;
margin-bottom: 1rem;
}
.scenario-stats .stat {
font-size: 0.8rem;
color: #888;
font-weight: 600;
}
.scenario-tags {
margin-bottom: 2rem;
}
.scenario-tags .tag {
display: inline-block;
background: #f0f8ff;
color: #4ECDC4;
padding: 4px 12px;
border-radius: 12px;
font-size: 0.75rem;
font-weight: 600;
margin: 2px;
}
.scenario-preview {
display: flex;
gap: 1rem;
}
.btn-preview,
.btn-start {
flex: 1;
padding: 10px 16px;
border-radius: 20px;
font-weight: 700;
font-size: 0.9rem;
transition: all 0.3s ease;
border: none;
cursor: pointer;
}
.btn-preview {
background: linear-gradient(45deg, #e3f2fd, #bbdefb);
color: #1976d2;
}
.btn-start {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
color: white;
}
.btn-preview:hover,
.btn-start:hover {
transform: scale(1.05);
}
/* 场景预览弹窗 */
.scenario-preview-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.8);
z-index: 9999;
display: none;
align-items: center;
justify-content: center;
padding: 2rem;
}
.preview-content {
background: white;
border-radius: 25px;
max-width: 600px;
width: 100%;
max-height: 80vh;
overflow: hidden;
animation: modalSlideIn 0.3s ease;
}
@keyframes modalSlideIn {
from { transform: scale(0.8) translateY(-50px); opacity: 0; }
to { transform: scale(1) translateY(0); opacity: 1; }
}
.preview-header {
padding: 2rem 2rem 1rem;
border-bottom: 2px solid #f0f0f0;
display: flex;
justify-content: space-between;
align-items: center;
}
.preview-close {
background: none;
border: none;
font-size: 2rem;
color: #666;
cursor: pointer;
padding: 0;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}
.preview-close:hover {
background: #f0f0f0;
color: #333;
}
.preview-body {
padding: 2rem;
max-height: 400px;
overflow-y: auto;
}
.preview-chat {
display: flex;
flex-direction: column;
gap: 1rem;
}
.preview-footer {
padding: 1rem 2rem 2rem;
display: flex;
gap: 1rem;
justify-content: flex-end;
}
.btn-preview-close,
.btn-preview-start {
padding: 10px 20px;
border-radius: 20px;
font-weight: 700;
border: none;
cursor: pointer;
transition: all 0.3s ease;
}
.btn-preview-close {
background: #f0f0f0;
color: #666;
}
.btn-preview-start {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4);
color: white;
}
/* 超级CTA区域 */
.cta-section-mega {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 100px 0;
position: relative;
overflow: hidden;
}
.cta-mega-decorations {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.cta-floating {
position: absolute;
font-size: 3rem;
animation: ctaFloating 8s ease-in-out infinite;
}
.floating-1 { top: 10%; left: 5%; animation-delay: 0s; }
.floating-2 { top: 20%; right: 10%; animation-delay: 1s; }
.floating-3 { bottom: 30%; left: 10%; animation-delay: 2s; }
.floating-4 { bottom: 20%; right: 15%; animation-delay: 3s; }
.floating-5 { top: 60%; left: 20%; animation-delay: 4s; }
.floating-6 { top: 40%; right: 5%; animation-delay: 5s; }
@keyframes ctaFloating {
0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.6; }
50% { transform: translateY(-30px) rotate(10deg); opacity: 1; }
}
.cta-mega-title {
font-size: 4rem;
font-weight: 900;
margin-bottom: 1.5rem;
text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
line-height: 1.1;
}
.highlight-text {
background: linear-gradient(45deg, #FFD700, #FFA500);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
}
.cta-mega-subtitle {
font-size: 1.4rem;
margin-bottom: 3rem;
opacity: 0.95;
line-height: 1.6;
}
/* CTA优势列表 */
.cta-benefits {
margin-bottom: 3rem;
}
.benefit-row {
display: flex;
align-items: center;
gap: 1.5rem;
margin-bottom: 1.5rem;
padding: 1rem;
background: rgba(255,255,255,0.1);
border-radius: 15px;
backdrop-filter: blur(10px);
transition: all 0.3s ease;
}
.benefit-row:hover {
background: rgba(255,255,255,0.2);
transform: translateX(10px);
}
.benefit-row .benefit-icon {
font-size: 2.5rem;
width: 60px;
text-align: center;
}
.benefit-text strong {
display: block;
font-size: 1.1rem;
margin-bottom: 0.3rem;
}
.benefit-text small {
opacity: 0.8;
font-size: 0.9rem;
}
/* CTA按钮 */
.btn-cta-mega {
background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #FFD93D);
background-size: 200% 200%;
border: none;
padding: 20px 40px;
border-radius: 50px;
color: white;
font-size: 1.4rem;
font-weight: 800;
text-decoration: none !important;
display: inline-flex;
align-items: center;
gap: 15px;
box-shadow: 0 15px 40px rgba(0,0,0,0.3);
transition: all 0.4s ease;
animation: ctaMegaGradient 4s ease-in-out infinite;
position: relative;
overflow: hidden;
}
@keyframes ctaMegaGradient {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
.btn-cta-mega:hover {
transform: translateY(-5px) scale(1.05);
box-shadow: 0 25px 60px rgba(0,0,0,0.4);
color: white;
}
.btn-shine {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.6s;
}
.btn-cta-mega:hover .btn-shine {
left: 100%;
}
.cta-promise {
text-align: center;
margin-top: 1rem;
opacity: 0.8;
}
/* 设备展示 */
.device-showcase {
position: relative;
margin-bottom: 2rem;
}
.device {
background: linear-gradient(145deg, #ffffff, #f0f0f0);
border-radius: 20px;
box-shadow: 0 20px 50px rgba(0,0,0,0.2);
position: relative;
animation: deviceFloat 6s ease-in-out infinite;
}
.phone {
width: 200px;
height: 350px;
margin: 0 auto;
animation-delay: 0s;
}
.tablet {
width: 280px;
height: 200px;
position: absolute;
top: 100px;
right: -50px;
animation-delay: 3s;
}
@keyframes deviceFloat {
0%, 100% { transform: translateY(0px) rotate(0deg); }
50% { transform: translateY(-15px) rotate(2deg); }
}
.device-screen {
background: #000;
border-radius: 15px;
margin: 15px;
height: calc(100% - 30px);
overflow: hidden;
position: relative;
}
.app-interface,
.progress-interface {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
height: 100%;
padding: 20px;
color: white;
}
.app-header,
.progress-title {
text-align: center;
font-weight: 700;
margin-bottom: 20px;
font-size: 1rem;
}
.chat-message {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 15px;
font-size: 0.8rem;
}
.chat-message.ai {
justify-content: flex-start;
}
.chat-message.user {
justify-content: flex-end;
flex-direction: row-reverse;
}
.chat-message .avatar {
width: 30px;
height: 30px;
border-radius: 50%;
background: rgba(255,255,255,0.2);
display: flex;
align-items: center;
justify-content: center;
font-size: 1rem;
}
.progress-stats {
display: flex;
justify-content: center;
margin-top: 20px;
}
.stat-circle {
width: 80px;
height: 80px;
border-radius: 50%;
background: conic-gradient(#FFD700 0deg 306deg, rgba(255,255,255,0.2) 306deg 360deg);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
}
.stat-circle::before {
content: '';
position: absolute;
width: 60px;
height: 60px;
border-radius: 50%;
background: #667eea;
}
.stat-circle .number,
.stat-circle .label {
position: relative;
z-index: 2;
}
.stat-circle .number {
font-size: 1.2rem;
font-weight: 900;
}
.stat-circle .label {
font-size: 0.6rem;
opacity: 0.8;
}
/* 用户评价气泡 */
.testimonial-bubbles {
position: relative;
}
.testimonial-bubble {
position: absolute;
background: rgba(255,255,255,0.95);
border-radius: 20px;
padding: 1.5rem;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
max-width: 250px;
animation: bubbleFloat 8s ease-in-out infinite;
}
.bubble-1 {
top: -50px;
left: -100px;
animation-delay: 0s;
}
.bubble-2 {
bottom: -80px;
right: -120px;
animation-delay: 4s;
}
@keyframes bubbleFloat {
0%, 100% { transform: translateY(0px); opacity: 0.9; }
50% { transform: translateY(-20px); opacity: 1; }
}
.bubble-content {
color: #333;
}
.user-info {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.8rem;
}
.user-info .avatar {
font-size: 1.5rem;
}
.user-info .name {
font-weight: 700;
font-size: 0.9rem;
}
.bubble-content p {
font-size: 0.8rem;
line-height: 1.4;
margin: 0;
font-style: italic;
}
/* 响应式优化 */
@media (max-width: 768px) {
.stat-card {
padding: 1.5rem 0.8rem;
}
.stat-number {
font-size: 2.5rem;
}
.feature-card-advanced {
padding: 1.5rem;
}
.steps-container {
flex-direction: column;
gap: 3rem;
}
.step-arrow {
transform: rotate(90deg);
}
.scenarios-grid {
grid-template-columns: 1fr;
}
.scenario-nav {
gap: 0.5rem;
}
.scenario-nav-btn {
padding: 8px 16px;
font-size: 0.9rem;
}
.cta-mega-title {
font-size: 2.5rem;
}
.cta-mega-subtitle {
font-size: 1.1rem;
}
.benefit-row {
flex-direction: column;
text-align: center;
}
.device-showcase .tablet {
display: none;
}
.testimonial-bubble {
position: static;
margin: 1rem 0;
max-width: 100%;
}
}
@media (max-width: 576px) {
.stat-icon {
font-size: 2.5rem;
}
.stat-number {
font-size: 2rem;
}
.feature-icon-big {
width: 80px;
height: 80px;
font-size: 3rem;
}
.wave-bar {
width: 6px;
}
.btn-cta-mega {
padding: 16px 30px;
font-size: 1.2rem;
}
}
/* 轮播图尺寸优化 */
.hero-carousel-kid {
max-height: 60vh;
}
.hero-carousel-kid .carousel-item {
height: 60vh;
min-height: 450px;
max-height: 600px;
}
.kid-caption {
bottom: 20%;
}
/* 响应式轮播图优化 */
@media (max-width: 768px) {
.hero-carousel-kid .carousel-item {
height: 50vh;
min-height: 400px;
}
.hero-title-kid {
font-size: 2.5rem;
}
.hero-subtitle-kid {
font-size: 1rem;
}
.kid-caption {
bottom: 15%;
}
}
@media (max-width: 576px) {
.hero-carousel-kid .carousel-item {
height: 45vh;
min-height: 350px;
}
.hero-title-kid {
font-size: 2rem;
}
.hero-subtitle-kid {
font-size: 0.9rem;
}
}
/* 极简无框轮播图控制器 */
.hero-carousel-kid .carousel-control-prev,
.hero-carousel-kid .carousel-control-next {
z-index: 15;
width: 50px;
height: 50px;
background: none;
border: none;
margin: auto 15px;
transition: all 0.3s ease;
opacity: 0.7;
}
.hero-carousel-kid .carousel-control-prev:hover,
.hero-carousel-kid .carousel-control-next:hover {
opacity: 1;
transform: scale(1.2);
}
.hero-carousel-kid .carousel-control-prev-icon,
.hero-carousel-kid .carousel-control-next-icon {
width: 24px;
height: 24px;
background-size: 100% 100%;
filter: brightness(0) invert(1) drop-shadow(1px 1px 2px rgba(0,0,0,0.5));
transition: all 0.3s ease;
}
.hero-carousel-kid .carousel-control-prev:hover .carousel-control-prev-icon,
.hero-carousel-kid .carousel-control-next:hover .carousel-control-next-icon {
filter: brightness(0) invert(1) drop-shadow(2px 2px 4px rgba(0,0,0,0.7));
transform: scale(1.1);
}
/* 指示器样式优化 */
.hero-carousel-kid .carousel-indicators {
bottom: 30px;
z-index: 15;
}
.hero-carousel-kid .carousel-indicators button {
width: 12px !important;
height: 12px !important;
border-radius: 50% !important;
margin: 0 8px !important;
background: rgba(255, 255, 255, 0.6) !important;
border: 2px solid rgba(255, 255, 255, 0.8) !important;
transition: all 0.3s ease;
opacity: 0.7;
}
.hero-carousel-kid .carousel-indicators .active {
background: rgba(255, 255, 255, 0.95) !important;
transform: scale(1.3);
opacity: 1;
}
.hero-carousel-kid .carousel-indicators button:hover {
background: rgba(255, 255, 255, 0.8) !important;
opacity: 1;
}