/* 欢迎页容器 */ .welcome-container { width: 100%; height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(180deg, #1a1d3a 0%, #2d1b4e 50%, #3d2456 100%); position: relative; overflow: hidden; padding-bottom: 100rpx; } /* 星星装饰 */ .stars { position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none; } .star { position: absolute; width: 4rpx; height: 4rpx; background: #ffffff; border-radius: 50%; opacity: 0.8; animation: twinkle 3s ease-in-out infinite; } .star-1 { top: 15%; left: 20%; animation-delay: 0s; } .star-2 { top: 25%; right: 25%; width: 6rpx; height: 6rpx; animation-delay: 0.5s; } .star-3 { top: 45%; left: 15%; animation-delay: 1s; } .star-4 { top: 60%; right: 20%; width: 5rpx; height: 5rpx; animation-delay: 1.5s; } .star-5 { top: 75%; left: 30%; animation-delay: 2s; } .star-6 { top: 85%; right: 35%; width: 6rpx; height: 6rpx; animation-delay: 2.5s; } @keyframes twinkle { 0%, 100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } } /* 主内容区域 */ .main-content { display: flex; flex-direction: column; align-items: center; z-index: 1; position: absolute; top: 35%; left: 50%; transform: translate(-50%, -50%); animation: fadeInUp 1s ease-out; } @keyframes fadeInUp { from { opacity: 0; transform: translate(-50%, -50%) translateY(30rpx); } to { opacity: 1; transform: translate(-50%, -50%) translateY(0); } } /* 书本图标 - 单一整体样式 */ .book-icon-single { width: 140rpx; height: 110rpx; position: relative; margin-bottom: 60rpx; display: flex; justify-content: center; align-items: center; } .book-page-left, .book-page-right { width: 60rpx; height: 90rpx; background: #ffffff; position: absolute; border-radius: 6rpx; } .book-page-left { left: 8rpx; transform: perspective(300rpx) rotateY(20deg); box-shadow: 2rpx 2rpx 12rpx rgba(0, 0, 0, 0.25); z-index: 2; } .book-page-right { right: 8rpx; transform: perspective(300rpx) rotateY(-20deg); box-shadow: -2rpx 2rpx 12rpx rgba(0, 0, 0, 0.25); z-index: 2; } .book-spine { width: 10rpx; height: 90rpx; background: #e5e5e5; position: absolute; left: 50%; transform: translateX(-50%); border-radius: 2rpx; z-index: 1; box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.2); } /* 应用标题 */ .app-title { font-size: 88rpx; font-weight: bold; color: #ffffff; margin-bottom: 24rpx; letter-spacing: 8rpx; text-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.3); } /* 应用副标题 */ .app-subtitle { font-size: 30rpx; color: rgba(255, 255, 255, 0.65); letter-spacing: 2rpx; } /* 进入按钮 - 左下角定位 */ .enter-button { width: 240rpx; height: 88rpx; background: linear-gradient(135deg, #a855f7 0%, #9333ea 100%); border-radius: 44rpx; display: flex; align-items: center; justify-content: center; box-shadow: 0 8rpx 24rpx rgba(168, 85, 247, 0.4); transition: all 0.3s ease; position: fixed; bottom: 120rpx; left: 32rpx; z-index: 10; overflow: hidden; } .enter-button::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, #c084fc 0%, #a855f7 100%); opacity: 0; transition: opacity 0.3s ease; z-index: -1; } .enter-button:active { transform: scale(0.96); } .enter-button:active::before { opacity: 1; } .button-icon { font-size: 32rpx; margin-right: 12rpx; } .button-text { font-size: 30rpx; color: #ffffff; font-weight: 500; letter-spacing: 2rpx; }