/* 装饰元素通用样式 */
.__deco {
  position: absolute;
  pointer-events: none;
}

.__deco_bow_blue_left {
  top: 5px;
  left: 15px;
  width: 28px;
  height: 18px;
  animation: __deco_swing 2.5s ease-in-out infinite, __deco_fadein 0.8s 0.3s forwards;
  opacity: 0;
}

.__deco_bow_blue_left::before,
.__deco_bow_blue_left::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  background: linear-gradient(135deg, #b8e4f0, #89cce0);
  border-radius: 50% 50% 50% 0;
  box-shadow: inset -2px -2px 4px rgba(255,255,255,0.6);
}

.__deco_bow_blue_left::before {
  left: 0;
  transform: rotate(-30deg);
}

.__deco_bow_blue_left::after {
  right: 0;
  transform: rotate(30deg) scaleX(-1);
}

.__deco_flower_pink_top {
  top: 0;
  right: 40px;
  width: 24px;
  height: 24px;
  animation: __deco_spin 6s linear infinite, __deco_fadein 0.8s 0.5s forwards;
  opacity: 0;
}

.__deco_flower_pink_top::before {
  content: '✿';
  font-size: 22px;
  color: #f8b4d9;
  text-shadow: 0 0 8px rgba(248, 180, 217, 0.6);
}

.__deco_star_blue_right {
  top: 35px;
  right: 5px;
  animation: __deco_twinkle 2s ease-in-out infinite, __deco_fadein 0.8s 0.7s forwards;
  opacity: 0;
  font-size: 18px;
  color: #a8d8ea;
}

.__deco_star_blue_right::before {
  content: '✦';
  text-shadow: 0 0 6px rgba(168, 216, 234, 0.7);
}

.__deco_flower_small_left {
  bottom: 25px;
  left: 5px;
  animation: __deco_bounce 2s ease-in-out infinite, __deco_fadein 0.8s 0.4s forwards;
  opacity: 0;
  font-size: 16px;
}

.__deco_flower_small_left::before {
  content: '❀';
  color: #f2a6c9;
  text-shadow: 0 0 5px rgba(242, 166, 201, 0.5);
}

.__deco_flower_big_center {
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  animation: __deco_pulse 3s ease-in-out infinite, __deco_fadein 0.8s 0.6s forwards;
  opacity: 0;
  font-size: 28px;
}

.__deco_flower_big_center::before {
  content: '✿';
  color: linear-gradient(135deg, #f8b4d9, #b8e4f0);
  background: linear-gradient(135deg, #f8b4d9, #b8e4f0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 8px rgba(248, 180, 217, 0.5));
}

.__deco_bow_blue_right {
  bottom: 15px;
  right: 20px;
  width: 24px;
  height: 16px;
  animation: __deco_swing 2.8s ease-in-out infinite reverse, __deco_fadein 0.8s 0.8s forwards;
  opacity: 0;
}

.__deco_bow_blue_right::before,
.__deco_bow_blue_right::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  background: linear-gradient(135deg, #89cce0, #a8d8ea);
  border-radius: 50% 50% 50% 0;
  box-shadow: inset -2px -2px 3px rgba(255,255,255,0.6);
}

.__deco_bow_blue_right::before {
  left: 0;
  transform: rotate(-25deg);
}

.__deco_bow_blue_right::after {
  right: 0;
  transform: rotate(25deg) scaleX(-1);
}

.__deco_cloud_left {
  top: 20px;
  left: -10px;
  font-size: 20px;
  animation: __deco_drift 4s ease-in-out infinite, __deco_fadein 0.8s 0.2s forwards;
  opacity: 0;
  color: #e8f4fc;
}

.__deco_cloud_left::before {
  content: '☁';
  text-shadow: 0 0 10px rgba(232, 244, 252, 0.8);
}

.__deco_dots_right {
  top: 60px;
  right: 25px;
  animation: __deco_fadein 0.8s 0.9s forwards, __deco_pulse 2s ease-in-out infinite;
  opacity: 0;
  display: flex;
  gap: 3px;
}

.__deco_dots_right span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #b8e4f0;
}

.__deco_dots_right span:nth-child(2) {
  background: #f8b4d9;
}

#__loading_logo_glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  height: 120%;
  background: radial-gradient(ellipse, rgba(168, 216, 234, 0.15) 0%, rgba(248, 180, 217, 0.1) 50%, transparent 70%);
  filter: blur(20px);
  animation: __glow_pulse 3s ease-in-out infinite;
  pointer-events: none;
}

@keyframes __deco_fadein {
  to { opacity: 1; }
}

@keyframes __deco_swing {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}

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

@keyframes __deco_twinkle {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}

@keyframes __deco_bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes __deco_pulse {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.1); }
}

@keyframes __deco_drift {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(5px); }
}

@keyframes __glow_pulse {
  0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
}
