.loading-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
	height: 100dvh;
	background: #f0f4f8;
}

/* ===== AI 神经脉冲加载动效 ===== */
.ai-pulse {
	position: relative;
	width: 80px;
	height: 80px;
}

/* 中心脉冲核心 */
.ai-pulse .core {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	margin: -5px 0 0 -5px;
	border-radius: 50%;
	background: #4b9e5f;
	box-shadow: 0 0 14px rgba(75, 158, 95, 0.7), 0 0 28px rgba(75, 158, 95, 0.3);
	animation: core-pulse 1.4s ease-in-out infinite;
}

/* 旋转光环 */
.ai-pulse .ring {
	position: absolute;
	border-radius: 50%;
	border: 1.5px solid transparent;
	box-sizing: border-box;
}

/* 外环 - 顺时针 */
.ai-pulse .ring.ring-outer {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-top-color: rgba(75, 158, 95, 0.5);
	border-right-color: rgba(75, 158, 95, 0.15);
	border-bottom-color: rgba(75, 158, 95, 0.05);
	animation: spin-cw 2s linear infinite;
}

/* 内环 - 逆时针 */
.ai-pulse .ring.ring-inner {
	top: 16%;
	left: 16%;
	width: 68%;
	height: 68%;
	border-top-color: rgba(75, 158, 95, 0.25);
	border-left-color: rgba(75, 158, 95, 0.35);
	border-bottom-color: rgba(75, 158, 95, 0.08);
	animation: spin-ccw 1.6s linear infinite;
}

/* 轨道上的光点 */
.ai-pulse .orbiter {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 6px;
	height: 6px;
	margin: -3px 0 0 -40px;
	border-radius: 50%;
	background: #4b9e5f;
	box-shadow: 0 0 10px rgba(75, 158, 95, 0.9), 0 0 20px rgba(75, 158, 95, 0.4);
	transform-origin: 40px center;
	animation: orbit 2s linear infinite;
}

/* 扩散波纹 */
.ai-pulse .ripple {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4px;
	height: 4px;
	margin: -2px 0 0 -2px;
	border-radius: 50%;
	border: 1px solid rgba(75, 158, 95, 0.5);
	animation: ripple-out 2.4s ease-out infinite;
}

.ai-pulse .ripple:nth-child(5) {
	animation-delay: 0.8s;
}

.ai-pulse .ripple:nth-child(6) {
	animation-delay: 1.6s;
}

/* ===== 关键帧 ===== */
@keyframes core-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.6); opacity: 0.45; }
}

@keyframes spin-cw {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes spin-ccw {
	from { transform: rotate(360deg); }
	to { transform: rotate(0deg); }
}

@keyframes orbit {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes ripple-out {
	0% { width: 4px; height: 4px; margin: -2px 0 0 -2px; opacity: 0.8; }
	100% { width: 90px; height: 90px; margin: -45px 0 0 -45px; opacity: 0; }
}

/* ===== 暗色模式 ===== */
@media (prefers-color-scheme: dark) {
	body {
		background: #121212;
	}
	.loading-wrap {
		background: #121212;
	}
}
