.startup-page { height: 100vh; min-height: 100vh; position: relative; overflow: hidden; background: radial-gradient(ellipse 100% 72% at 50% 18%, rgba(124, 58, 237, 0.22), transparent 66%), linear-gradient(180deg, #050712 0%, #080a18 52%, #0b0d1d 100%); -webkit-user-select: none; user-select: none; } .startup-swiper { width: 100%; height: 100%; background: radial-gradient(ellipse 100% 70% at 50% 24%, rgba(124, 58, 237, 0.24), transparent 62%), linear-gradient(180deg, #050712 0%, #0b0d1d 100%); } .carousel-dots { position: absolute; bottom: 190rpx; bottom: calc(env(safe-area-inset-bottom) + 150rpx); left: 50%; display: flex; align-items: center; gap: 18rpx; width: auto; padding: 18rpx 28rpx; transform: translateX(-50%); border: 1rpx solid rgba(255, 255, 255, 0.12); border-radius: 999rpx; background: rgba(8, 10, 24, 0.54); box-shadow: 0 8rpx 48rpx rgba(0, 0, 0, 0.35), inset 0 1rpx 0 rgba(255, 255, 255, 0.08); z-index: 15; } .carousel-dot { width: 16rpx; height: 16rpx; margin: 0; border-radius: 999rpx; background: rgba(255, 255, 255, 0.35); opacity: 1; box-shadow: 0 0 0 1rpx rgba(255, 255, 255, 0.15); } .carousel-dot.is-active { width: 52rpx; background: linear-gradient(90deg, #a855f7 0%, #7c3aed 55%, #6d28d9 100%); box-shadow: 0 0 32rpx rgba(98, 28, 169, 0.55), 0 0 0 1rpx rgba(255, 255, 255, 0.25); } .startup-slide-image { width: 100%; height: 100%; display: block; } .startup-actions { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0 48rpx 56rpx; padding-bottom: calc(env(safe-area-inset-bottom) + 32rpx); box-sizing: border-box; z-index: 20; pointer-events: auto; } .enter-btn { position: relative; z-index: 1; box-sizing: border-box; width: 88%; min-height: 96rpx; max-width: 800rpx; padding: 20rpx 48rpx; border: 1rpx solid rgba(222, 205, 255, 0.72); border-radius: 999rpx; background: radial-gradient(circle at 18% 10%, rgba(255, 255, 255, 0.38), transparent 28%), linear-gradient(105deg, #7847ff 0%, #b13cff 34%, #6d4dff 66%, #268cff 100%); background-size: 100% 100%, 180% 100%; background-position: center, 0% 50%; color: #ffffff; font-size: 38rpx; font-weight: 750; letter-spacing: 0; line-height: 56rpx; text-shadow: 0 2rpx 16rpx rgba(255, 255, 255, 0.32), 0 4rpx 24rpx rgba(42, 13, 112, 0.7); overflow: hidden; box-shadow: 0 0 0 1rpx rgba(168, 121, 255, 0.22), 0 0 12rpx rgba(151, 71, 255, 0.24), 0 18rpx 42rpx rgba(66, 26, 171, 0.28), inset 0 2rpx 0 rgba(255, 255, 255, 0.54), inset 0 -12rpx 24rpx rgba(49, 17, 135, 0.2); animation: enter-btn-gradient 5s ease-in-out infinite; } .enter-btn::before { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(100deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.02) 28%, rgba(255, 255, 255, 0.12) 100%); pointer-events: none; } .enter-btn::after { content: ''; position: absolute; top: 2rpx; left: 9%; right: 9%; height: 42%; border-radius: 999rpx; background: linear-gradient(180deg, rgba(255, 255, 255, 0.34), transparent); pointer-events: none; } .enter-btn::after, .enter-btn::before { pointer-events: none; } .enter-btn[loading] { opacity: 0.88; animation-play-state: paused; } .enter-btn:active { transform: scale(0.98); filter: brightness(0.96) saturate(1.08); } @keyframes enter-btn-gradient { 0%, 100% { background-position: center, 0% 50%; } 50% { background-position: center, 100% 50%; } } @keyframes enter-btn-halo { 0%, 100% { background-position: 0% 50%; opacity: 0.28; transform: scale(0.998); } 50% { background-position: 100% 50%; opacity: 0.42; transform: scale(1.003); } }