/* 太阳 / 月亮：按本地时间弧线位置（登录页 + 首页共用） */
.xc-sky {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}
.xc-sun,
.xc-moon {
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  will-change: left, top, opacity, transform;
  transition: left .9s linear, top .9s linear, opacity .8s ease, filter .8s ease;
}
.xc-sun {
  width: clamp(56px, 7vw, 96px);
  height: clamp(56px, 7vw, 96px);
  background:
    radial-gradient(circle at 35% 30%, #fff8e0 0%, #ffe08a 28%, #ffb020 58%, #ff7a18 100%);
  box-shadow:
    0 0 28px 10px rgba(255, 190, 70, .55),
    0 0 80px 28px rgba(255, 140, 40, .28),
    0 0 140px 50px rgba(255, 100, 20, .12);
  opacity: 0;
}
.xc-sun.is-visible { opacity: 1; }
.xc-sun.is-low {
  filter: saturate(1.15) brightness(.95);
  box-shadow:
    0 0 24px 8px rgba(255, 120, 50, .5),
    0 0 70px 24px rgba(255, 80, 30, .22);
}

.xc-moon {
  width: clamp(40px, 4.8vw, 68px);
  height: clamp(40px, 4.8vw, 68px);
  background:
    radial-gradient(circle at 32% 28%, #f4f7ff 0%, #d8e0f5 42%, #a8b4d4 100%);
  box-shadow:
    0 0 18px 6px rgba(200, 220, 255, .35),
    0 0 48px 16px rgba(140, 170, 255, .14);
  opacity: 0;
  overflow: hidden;
}
.xc-moon.is-visible { opacity: .92; }
.xc-moon-shade {
  position: absolute;
  inset: -8%;
  border-radius: 50%;
  background: #06080e;
  transform: translateX(0);
  transition: transform .9s ease, opacity .9s ease;
  opacity: .92;
  mix-blend-mode: multiply;
}
html:not(.theme-dark):not(.studio-theme-dark) .xc-moon-shade {
  background: #c8cedd;
  mix-blend-mode: multiply;
  opacity: .85;
}

/* 时段氛围（挂在 body） */
body.xc-tod-dawn .login-stars,
body.xc-tod-dawn .wb-stars {
  filter: saturate(1.05) hue-rotate(-8deg) brightness(1.05);
}
body.xc-tod-day .login-stars,
body.xc-tod-day .wb-stars {
  filter: saturate(.9) brightness(1.12);
}
body.xc-tod-dusk .login-stars,
body.xc-tod-dusk .wb-stars {
  filter: saturate(1.15) hue-rotate(12deg) brightness(.95);
}
body.xc-tod-night .login-stars,
body.xc-tod-night .wb-stars {
  filter: none;
}

html:not(.theme-dark):not(.studio-theme-dark) .xc-sun {
  box-shadow:
    0 0 24px 8px rgba(255, 180, 60, .45),
    0 0 60px 20px rgba(255, 140, 40, .2);
}
html:not(.theme-dark):not(.studio-theme-dark) body.xc-tod-day .wb-stars {
  filter: saturate(.85) brightness(1.05);
}

@media (prefers-reduced-motion: reduce) {
  .xc-sun,
  .xc-moon {
    transition: opacity .4s ease;
  }
}
