/* ═══════════════════════════════════════════════════════════
   ✦ 星辉飘落层（冷色调版）
   替代桃花：改为青蓝光点 + 六芒星，去掉粉花瓣/爱心/蝴蝶结
   ═══════════════════════════════════════════════════════════ */

/* ── 1. 飘落光点层 ── */
.acg-fx{
  position:fixed;inset:0;overflow:hidden;
  pointer-events:none;z-index:60;
}
.acg-petal{
  position:absolute;top:-36px;
  width:22px;height:22px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.75) 0%,rgba(223,240,255,.5) 24%,rgba(143,208,255,.3) 46%,rgba(127,196,255,0) 74%);
  animation:starFall linear infinite;
}
/* 大一点的光点 */
.acg-petal.lg{width:30px;height:30px;
  background:radial-gradient(circle,rgba(255,253,245,.7) 0%,rgba(255,246,220,.45) 22%,rgba(255,217,138,.28) 46%,rgba(240,192,96,0) 74%)}
.acg-petal.sm{width:16px;height:16px}
.acg-petal.xs{width:12px;height:12px;opacity:.85}

@keyframes starFall{
  0%  {opacity:0;transform:translateY(0) translateX(0)}
  6%  {opacity:.7}
  50% {opacity:.72;transform:translateY(56vh) translateX(18px)}
  92% {opacity:.32}
  100%{opacity:0;transform:translateY(114vh) translateX(-10px)}
}
@keyframes starDrift{
  0%  {opacity:0;transform:translateY(0) translateX(0)}
  6%  {opacity:.7}
  50% {opacity:.7;transform:translateY(54vh) translateX(-24px)}
  92% {opacity:.3}
  100%{opacity:0;transform:translateY(114vh) translateX(16px)}
}

/* 26 个光点，错开节奏 */
.acg-petal.p1 {left:3%;  animation:starFall  9s  -1s  linear infinite}
.acg-petal.p2 {left:9%;  animation:starDrift 11s -3s  linear infinite}
.acg-petal.p3 {left:15%; animation:starFall  8.5s -5s linear infinite}
.acg-petal.p4 {left:21%; animation:starDrift 12s -0.5s linear infinite}
.acg-petal.p5 {left:27%; animation:starFall  10s -6s  linear infinite}
.acg-petal.p6 {left:33%; animation:starDrift 9.5s -2.5s linear infinite}
.acg-petal.p7 {left:39%; animation:starFall  11.5s -7s linear infinite}
.acg-petal.p8 {left:45%; animation:starDrift 8.8s -4s  linear infinite}
.acg-petal.p9 {left:51%; animation:starFall  10.5s -1.5s linear infinite}
.acg-petal.p10{left:57%; animation:starDrift 12.5s -5.5s linear infinite}
.acg-petal.p11{left:63%; animation:starFall  9.2s -3.5s linear infinite}
.acg-petal.p12{left:69%; animation:starDrift 10.8s -0.8s linear infinite}
.acg-petal.p13{left:75%; animation:starFall  11.2s -6.5s linear infinite}
.acg-petal.p14{left:81%; animation:starDrift 9.8s -2s  linear infinite}
.acg-petal.p15{left:87%; animation:starFall  10.2s -4.5s linear infinite}
.acg-petal.p16{left:93%; animation:starDrift 11.8s -7.5s linear infinite}
.acg-petal.q1 {left:6%;  animation:starFall  8.2s -2.2s linear infinite}
.acg-petal.q2 {left:24%; animation:starDrift 10.6s -5.2s linear infinite}
.acg-petal.q3 {left:42%; animation:starFall  9.6s -7.2s linear infinite}
.acg-petal.q4 {left:60%; animation:starDrift 8.6s -1.2s linear infinite}
.acg-petal.q5 {left:78%; animation:starFall  11.4s -3.8s linear infinite}
.acg-petal.q6 {left:12%; animation:starDrift 9.4s -6.2s linear infinite}
.acg-petal.q7 {left:48%; animation:starFall  10.4s -0.3s linear infinite}
.acg-petal.q8 {left:84%; animation:starDrift 12.2s -4.8s linear infinite}

/* ── 2. 四角星辉装饰（六芒星，替代樱花/蝴蝶结） ── */
.acg-atmosphere{
  position:fixed;inset:0;pointer-events:none;z-index:61;
}
.acg-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.acg-sticker{
  position:absolute;opacity:.5;
  background-position:50%;background-repeat:no-repeat;background-size:contain;
}
/* 六芒星 */
.acg-spark{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 4 L36 28 L60 32 L36 36 L32 60 L28 36 L4 32 L28 28 Z' fill='%238fd0ff'/%3E%3C/svg%3E");
}
/* 金色四芒星 */
.acg-spark-gold{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 2 L37 27 L62 32 L37 37 L32 62 L27 37 L2 32 L27 27 Z' fill='%23ffd98a'/%3E%3C/svg%3E");
}
/* 光环 */
.acg-ring{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='26' fill='none' stroke='%237fc4ff' stroke-width='3' opacity='.55'/%3E%3Ccircle cx='32' cy='32' r='14' fill='none' stroke='%23a8d8ff' stroke-width='2' opacity='.35'/%3E%3C/svg%3E");
}
/* 小星座（三点一线） */
.acg-const{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='12' cy='48' r='4' fill='%238fd0ff'/%3E%3Ccircle cx='32' cy='28' r='5.5' fill='%23dff0ff'/%3E%3Ccircle cx='52' cy='14' r='3.5' fill='%23ffd98a'/%3E%3Cpath d='M12 48 L32 28 L52 14' stroke='%237fc4ff' stroke-width='1.2' opacity='.4' fill='none'/%3E%3C/svg%3E");
}

.st-st-sakura-tl{top:9%;left:2%;width:40px;height:40px;animation:acgBobTL 6s ease-in-out infinite}
.st-star-tr{top:11%;right:4%;width:34px;height:34px;animation:acgBobTR 6.8s ease-in-out infinite}
.st-ring-bl{bottom:14%;left:4%;width:44px;height:44px;animation:acgPulse 6s ease-in-out infinite}
.st-const-br{bottom:10%;right:4%;width:46px;height:46px;animation:acgBobBR 7.2s ease-in-out infinite}
.st-spark-ml{top:45%;left:1.5%;width:24px;height:24px;animation:acgSparkSpin 5s ease-in-out infinite}
.st-spark-mr{top:37%;right:2%;width:26px;height:26px;animation:acgSparkSpin 5.8s ease-in-out infinite}
.st-ring-br{bottom:30%;right:8%;width:28px;height:28px;animation:acgPulse 5.4s ease-in-out infinite}

/* ── 3. 上升光点（替代爱心） ── */
.acg-float{position:absolute;opacity:.5;pointer-events:none}
.acg-float.f-spark{
  width:24px;height:24px;border-radius:50%;
  background:radial-gradient(circle,#fffdf5 0%,rgba(255,246,220,.95) 22%,rgba(255,217,138,.8) 44%,rgba(240,192,96,0) 74%);
  animation:acgRise 15s linear infinite;
}
.acg-float.h1{bottom:-20px;left:14%;animation-duration:15s}
.acg-float.h2{bottom:-20px;left:66%;animation-delay:5s;animation-duration:17s}
.acg-float.h3{bottom:-20px;left:42%;animation-delay:9s;animation-duration:19s}
.acg-float.s1{bottom:28%;left:9%;animation:acgFloatSpark 9s ease-in-out infinite}
.acg-float.s2{bottom:38%;right:11%;animation:acgFloatSpark 10s ease-in-out infinite 3s}
.acg-float.s3{bottom:20%;left:50%;animation:acgFloatSpark 11s ease-in-out infinite 6s}

/* ── 4. 关键帧 ── */
@keyframes acgRise{
  0%  {opacity:0;transform:translateY(0) scale(.7)}
  12% {opacity:.65}
  80% {opacity:.3}
  100%{opacity:0;transform:translateY(-108vh) scale(1.1)}
}
@keyframes acgFloatSpark{
  0%,100%{opacity:.15;transform:translateY(0) scale(.6)}
  50%    {opacity:.75;transform:translateY(-14px) scale(1.2)}
}
@keyframes acgBobTL{0%,100%{transform:translateY(0) rotate(-14deg)}50%{transform:translateY(-9px) rotate(-6deg)}}
@keyframes acgBobTR{0%,100%{transform:translateY(0) rotate(10deg)}50%{transform:translateY(-7px) rotate(18deg)}}
@keyframes acgBobBR{0%,100%{transform:translateY(0) rotate(22deg)}50%{transform:translateY(-8px) rotate(12deg)}}
@keyframes acgPulse{0%,100%{opacity:.42;transform:scale(1)}50%{opacity:.72;transform:scale(1.12)}}
@keyframes acgSparkSpin{0%,100%{opacity:.4;transform:rotate(0deg) scale(.85)}50%{opacity:.8;transform:rotate(45deg) scale(1.15)}}

/* 减少动效 */
@media (prefers-reduced-motion: reduce){
  .acg-petal,.acg-float,.acg-sticker{animation:none!important}
  .acg-petal{opacity:.35}
}
