/* v9 刀0：造型特效底層。全部零素材零 CDN，尊重 prefers-reduced-motion。
   T1＝純 CSS 氣場（class 直接掛在 renderAvatarDecorated 外層 span）
   T2＝黑底 PNG screen 疊加（img.aura-img）
   chatfx＝聊天氣泡進場動畫（class 掛在訊息氣泡） */
@media (prefers-reduced-motion: reduce) {
  .aura-fx::before, .aura-img, .fx-bounce-gold, .fx-bounce-gold::after,
  .fx-pop-heart, .fx-slide-neon, .pet-idle { animation: none !important; }
}

/* ===== T1 氣場（純 CSS，外包一圈旋轉/呼吸光環）===== */
.aura-fx { position: relative; display: inline-flex; border-radius: 50%; }
.aura-fx::before {
  content: ""; position: absolute; inset: -6px; border-radius: 50%;
  pointer-events: none; z-index: 0;
}
.aura-goldring::before {  /* 金環流光 */
  background: conic-gradient(from 0deg, transparent 0%, rgba(201,168,106,.9) 25%, transparent 50%, rgba(201,168,106,.6) 75%, transparent 100%);
  animation: aura-spin 3s linear infinite;
  -webkit-mask: radial-gradient(closest-side, transparent 78%, #000 80%);
          mask: radial-gradient(closest-side, transparent 78%, #000 80%);
}
.aura-jade::before {      /* 翠玉呼吸 */
  box-shadow: 0 0 12px 4px rgba(80,220,160,.55);
  animation: aura-breathe 2.4s ease-in-out infinite;
}
.aura-icepulse::before {  /* 冰藍脈衝 */
  box-shadow: 0 0 10px 3px rgba(90,180,255,.6);
  animation: aura-pulse 1.6s ease-out infinite;
}
@keyframes aura-spin { to { transform: rotate(360deg); } }
@keyframes aura-breathe { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes aura-pulse { 0% { transform: scale(.92); opacity: .9; } 100% { transform: scale(1.18); opacity: 0; } }

/* ===== T2 氣場（黑底 PNG，screen 疊加，本站深色底天生適配）===== */
.aura-img {
  position: absolute; inset: -14%; width: 128%; height: 128%;
  mix-blend-mode: screen; pointer-events: none; z-index: 0;
  animation: aura-spin 8s linear infinite;
}

/* ===== chatfx（聊天氣泡進場，class 隨新推入的訊息掛一次）===== */
.fx-bounce-gold { animation: fx-bounce .5s cubic-bezier(.34,1.56,.64,1); position: relative; }
.fx-bounce-gold::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(120deg, transparent 30%, rgba(201,168,106,.35) 50%, transparent 70%);
  background-size: 200% 100%; animation: fx-sweep .9s ease-out 1; pointer-events: none;
}
.fx-pop-heart { animation: fx-bounce .5s cubic-bezier(.34,1.56,.64,1); }
.fx-slide-neon { animation: fx-slide .45s ease-out; }
@keyframes fx-bounce { 0% { transform: scale(.6); } 100% { transform: scale(1); } }
@keyframes fx-sweep { from { background-position: 200% 0; } to { background-position: -100% 0; } }
@keyframes fx-slide { from { transform: translateX(14px); opacity: .4; } to { transform: none; opacity: 1; } }

/* ===== v9.5 刀C：桌寵 idle 浮動（名片/造型空間限定，排行榜等輕量表面不出現）===== */
.pet-idle { animation: pet-bob 2.2s ease-in-out infinite; pointer-events: none; }
@keyframes pet-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14%); } }
