1953 lines
		
	
	
		
			46 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			1953 lines
		
	
	
		
			46 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;
 | 
						|
}
 |