page { min-height: 100vh; background: #f8faff; color: #111827; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif; } .record-page { width: 750rpx; min-height: 100vh; margin: 0 auto; display: flex; flex-direction: column; box-sizing: border-box; background: radial-gradient(circle at 10% 0%, rgba(116, 98, 255, 0.08), transparent 34%), radial-gradient(circle at 88% 10%, rgba(73, 132, 255, 0.08), transparent 30%), linear-gradient(180deg, #fbfcff 0%, #f7f9ff 46%, #ffffff 100%); } .record-nav { width: 100%; height: 100%; display: flex; align-items: center; justify-content: space-between; } .nav-back, .nav-space { width: 60rpx; height: 60rpx; flex: 0 0 60rpx; display: flex; align-items: center; } .nav-back text { width: 26rpx; height: 26rpx; display: block; border-left: 5rpx solid #111827; border-bottom: 5rpx solid #111827; transform: rotate(45deg); box-sizing: border-box; } .nav-title-wrap { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10rpx; } .nav-title { font-size: 34rpx; line-height: 40rpx; font-weight: 900; color: #111827; } .nav-subtitle { max-width: 560rpx; color: #687086; font-size: 22rpx; line-height: 28rpx; font-weight: 600; text-align: center; white-space: nowrap; } .record-content { flex: 1; display: flex; flex-direction: column; gap: 22rpx; padding: 20rpx 32rpx 30rpx; box-sizing: border-box; } .panel { width: 100%; display: flex; flex-direction: column; border: 2rpx solid #e6e9ff; border-radius: 18rpx; background: rgba(255, 255, 255, 0.96); box-shadow: 0 14rpx 34rpx rgba(80, 92, 170, 0.08); box-sizing: border-box; } .photo-panel { padding: 24rpx 26rpx 24rpx; } .panel-title { color: #111827; font-size: 28rpx; line-height: 36rpx; font-weight: 900; } .photo-body { margin-top: 14rpx; display: flex; align-items: center; gap: 56rpx; } .photo-preview { width: 306rpx; height: 224rpx; display: flex; align-items: flex-end; justify-content: center; border: 2rpx solid #dce1ff; border-radius: 14rpx; background: linear-gradient(180deg, #f8fbff 0%, #eef3ff 100%); overflow: hidden; box-sizing: border-box; position: relative; } .portrait-bg { width: 190rpx; height: 218rpx; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; } .portrait-head { width: 120rpx; height: 138rpx; display: flex; align-items: flex-end; justify-content: center; border-radius: 60rpx 60rpx 44rpx 44rpx; background: linear-gradient(160deg, #2e1e19 0%, #684235 56%, #9c6a58 100%); box-shadow: 0 4rpx 12rpx rgba(85, 50, 44, 0.18); } .face { width: 78rpx; height: 98rpx; margin-bottom: 10rpx; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8rpx; border-radius: 42rpx 42rpx 36rpx 36rpx; background: linear-gradient(180deg, #ffe8dc 0%, #ffd0c2 100%); } .eye-row { width: 48rpx; display: flex; align-items: center; justify-content: space-between; } .eye-row text { width: 8rpx; height: 8rpx; border-radius: 50%; background: #251918; } .nose { width: 8rpx; height: 12rpx; border-radius: 8rpx; background: rgba(196, 116, 101, 0.46); } .mouth { width: 24rpx; height: 7rpx; border-radius: 0 0 16rpx 16rpx; background: #ca6975; } .hair, .hair-main { display: none; } .portrait-neck { width: 32rpx; height: 22rpx; background: #ffd3c4; } .portrait-cloth { width: 178rpx; height: 68rpx; border-radius: 40rpx 40rpx 0 0; background: linear-gradient(120deg, #ffffff 0%, #f7f6f2 50%, #ffffff 100%); } .camera-badge { width: 60rpx; height: 60rpx; /* margin-bottom: 20rpx; */ display: flex; align-items: center; justify-content: center; border: 4rpx solid rgba(255, 255, 255, 0.88); border-radius: 50%; background: rgba(66, 56, 49, 0.72); box-sizing: border-box; flex: 0 0 60rpx; position: absolute; bottom: 20rpx; } .camera-icon { width: 28rpx; height: 21rpx; border: 4rpx solid #ffffff; border-radius: 5rpx; box-sizing: border-box; } .camera-icon::after { content: ''; width: 8rpx; height: 8rpx; margin: 2rpx auto 0; display: block; border: 3rpx solid #ffffff; border-radius: 50%; box-sizing: border-box; } .photo-actions, .voice-actions { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 24rpx; } .primary-small, .ghost-small, .stop-small { height: 70rpx; display: flex; align-items: center; justify-content: center; border-radius: 16rpx; font-size: 26rpx; line-height: 32rpx; font-weight: 900; box-sizing: border-box; } .primary-small { color: #ffffff; background: linear-gradient(100deg, #4e84ff 0%, #7d3ff3 100%); box-shadow: 0 12rpx 24rpx rgba(91, 86, 245, 0.22); } .ghost-small, .stop-small { border: 2rpx solid #d9dcf2; background: #fafbff; color: #596083; } .hint-row { margin-top: 18rpx; display: flex; align-items: center; gap: 8rpx; color: #7a8196; font-size: 21rpx; line-height: 28rpx; font-weight: 600; } .hint-dot { width: 18rpx; height: 18rpx; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #b9bfd2; color: #ffffff; font-size: 12rpx; line-height: 16rpx; font-weight: 900; } .voice-panel { padding: 24rpx 26rpx 24rpx; } .voice-body { margin-top: 12rpx; display: flex; align-items: center; gap: 32rpx; } .voice-visual { width: 340rpx; min-height: 240rpx; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; } .recording-pill { width: 116rpx; height: 44rpx; margin-right: 224rpx; display: flex; align-items: center; justify-content: center; gap: 10rpx; border-radius: 22rpx; color: #ffffff; background: linear-gradient(90deg, #7380ff 0%, #8a55ed 100%); box-shadow: 0 8rpx 18rpx rgba(117, 94, 239, 0.3); font-size: 21rpx; line-height: 26rpx; font-weight: 800; } .recording-pill text:first-child { width: 12rpx; height: 12rpx; border-radius: 50%; background: #ffffff; } .recording-active .recording-pill text:first-child { animation: blinkDot 1s ease-in-out infinite; } .wave-row { width: 118rpx; height: 82rpx; display: flex; align-items: center; justify-content: center; gap: 7rpx; } .wave-row text { width: 5rpx; border-radius: 6rpx; background: linear-gradient(180deg, #5f86ff 0%, #bd67f2 100%); transform-origin: center; } .recording-active .wave-row text:nth-child(2n) { animation: waveScaleA 0.78s ease-in-out infinite; } .recording-active .wave-row text:nth-child(2n + 1) { animation: waveScaleB 0.92s ease-in-out infinite; } .recording-active .wave-row text:nth-child(3n) { animation-delay: 0.18s; } .mic-wrap { width: 98rpx; height: 98rpx; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: radial-gradient(circle, rgba(139, 102, 255, 0.13) 0%, rgba(139, 102, 255, 0.05) 68%, transparent 70%); } .pulse-ring { width: 90rpx; height: 90rpx; margin-right: -90rpx; border: 3rpx solid rgba(135, 98, 247, 0.28); border-radius: 50%; box-sizing: border-box; } .recording-active .ring-one { animation: pulseRing 1.5s ease-out infinite; } .recording-active .ring-two { animation: pulseRing 1.5s ease-out 0.3s infinite; } .recording-active .ring-three { animation: pulseRing 1.5s ease-out 0.6s infinite; } .mic-core { width: 90rpx; height: 90rpx; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: linear-gradient(160deg, #77a0ff 0%, #8346f5 100%); box-shadow: 0 10rpx 24rpx rgba(117, 86, 243, 0.32); } .mic-icon { width: 32rpx; height: 45rpx; display: flex; flex-direction: column; align-items: center; } .mic-icon::before { content: ''; width: 24rpx; height: 34rpx; border-radius: 14rpx; background: #ffffff; } .mic-icon text { width: 34rpx; height: 14rpx; display: block; border-bottom: 5rpx solid #ffffff; border-left: 5rpx solid #ffffff; border-right: 5rpx solid #ffffff; border-radius: 0 0 18rpx 18rpx; box-sizing: border-box; } .record-time { width: 100%; margin-top: 2rpx; color: #586085; font-size: 31rpx; line-height: 38rpx; font-weight: 600; text-align: center; } .stop-small { gap: 16rpx; } .stop-dot { width: 16rpx; height: 16rpx; border-radius: 3rpx; background: #ff6b6b; } .voice-hint { margin-top: 8rpx; } .script-section { margin-top: 24rpx; display: flex; flex-direction: column; gap: 12rpx; } .script-title { color: #111827; font-size: 24rpx; line-height: 32rpx; font-weight: 900; } .script-card { min-height: 92rpx; padding: 18rpx 22rpx; display: flex; align-items: center; border: 2rpx solid #dfe3ff; border-radius: 10rpx; background: linear-gradient(180deg, #fbfbff 0%, #f6f7ff 100%); box-sizing: border-box; color: #4d557d; font-size: 24rpx; line-height: 36rpx; font-weight: 600; } .default-section { display: flex; flex-direction: column; gap: 12rpx; } .default-title { color: #4f47ff; font-size: 23rpx; line-height: 30rpx; font-weight: 900; } .default-row { display: flex; gap: 10rpx; } .default-card { flex: 1; height: 88rpx; min-width: 0; padding: 10rpx 12rpx; display: flex; align-items: center; gap: 12rpx; border: 2rpx solid #e4e7f6; border-radius: 14rpx; background: rgba(255, 255, 255, 0.94); box-shadow: 0 10rpx 24rpx rgba(80, 92, 170, 0.08); box-sizing: border-box; } .mini-avatar { width: 58rpx; height: 58rpx; border-radius: 12rpx; background: radial-gradient(circle at 50% 32%, #ffe0d2 0 16rpx, transparent 17rpx), radial-gradient(circle at 50% 35%, #4b2d25 0 24rpx, transparent 25rpx), linear-gradient(180deg, #eef4ff 0%, #ffffff 100%); flex: 0 0 58rpx; } .mini-voice { width: 58rpx; height: 58rpx; display: flex; align-items: center; justify-content: center; gap: 5rpx; border-radius: 12rpx; background: #eef2ff; flex: 0 0 58rpx; } .mini-voice text { width: 5rpx; border-radius: 5rpx; background: linear-gradient(180deg, #5f86ff 0%, #8550f2 100%); } .default-name { flex: 1; min-width: 0; color: #111827; font-size: 23rpx; line-height: 30rpx; font-weight: 900; white-space: nowrap; } .trial-pill { padding: 6rpx 12rpx; border-radius: 18rpx; background: #fff3db; color: #f4a326; font-size: 18rpx; line-height: 22rpx; font-weight: 800; white-space: nowrap; } .blue-pill { background: #e9f3ff; color: #5a96f0; } .next-action { height: 78rpx; margin-top: -2rpx; display: flex; align-items: center; justify-content: center; border-radius: 16rpx; color: #ffffff; background: linear-gradient(100deg, #4e84ff 0%, #7d3ff3 100%); box-shadow: 0 12rpx 24rpx rgba(91, 86, 245, 0.24); font-size: 31rpx; line-height: 38rpx; font-weight: 900; } @keyframes waveScaleA { 0%, 100% { transform: scaleY(0.62); opacity: 0.62; } 50% { transform: scaleY(1.18); opacity: 1; } } @keyframes waveScaleB { 0%, 100% { transform: scaleY(1); opacity: 0.88; } 50% { transform: scaleY(0.55); opacity: 0.55; } } @keyframes pulseRing { 0% { transform: scale(0.72); opacity: 0.7; } 100% { transform: scale(1.72); opacity: 0; } } @keyframes blinkDot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.38; transform: scale(0.72); } } .bar-22 { height: 22rpx; } .bar-30 { height: 30rpx; } .bar-34 { height: 34rpx; } .bar-38 { height: 38rpx; } .bar-42 { height: 42rpx; } .bar-46 { height: 46rpx; } .bar-48 { height: 48rpx; } .bar-52 { height: 52rpx; } .bar-58 { height: 58rpx; } .bar-62 { height: 62rpx; } .bar-70 { height: 70rpx; } .mini-bar-18 { height: 18rpx; } .mini-bar-28 { height: 28rpx; } .mini-bar-30 { height: 30rpx; } .mini-bar-36 { height: 36rpx; } .mini-bar-46 { height: 46rpx; } .mini-bar-56 { height: 56rpx; } .icon-placeholder { display: block; flex-shrink: 0; background: none; border: 0; box-shadow: none; transform: none; } .asset-status { margin-top: 14rpx; height: 44rpx; padding: 0 18rpx; display: inline-flex; align-items: center; align-self: flex-start; border-radius: 22rpx; font-size: 21rpx; line-height: 28rpx; font-weight: 800; box-sizing: border-box; } .success-status { color: #16854f; background: #e9f8f0; border: 2rpx solid #bdebd3; } .pending-status { color: #5a5f89; background: #f1f3ff; border: 2rpx solid #dfe3ff; }