/* ============ 虚拟伙伴「小狐」— 零装饰 3D 立绘 ============ */

/* ============ 虚拟伙伴「小狐」= 3D 立绘，零装饰 ============ */
/* 设计约束：画面上只有人物本身。无面板、无边框、无背景、无阴影、
   无光环、无胶囊外壳；交互全部走像素级热区与手势，不依赖可见 UI。 */
.cp-root{position:fixed;inset:0;z-index:90;pointer-events:none}
.cp-dock{position:absolute;right:26px;bottom:16px;display:flex;flex-direction:column;
  align-items:flex-end;gap:8px;pointer-events:none;background:none;border:0;box-shadow:none}

/* ---- 舞台：只有人物本身 ---- */
.cp-stage{position:relative;width:236px;height:440px;overflow:visible;pointer-events:auto;
  background:none;border:0;box-shadow:none;touch-action:none;-webkit-tap-highlight-color:transparent}
.cp-figure{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;
  user-select:none;-webkit-user-drag:none;transform-origin:50% 86%;
  will-change:transform,filter;background:none}
.cp-fx{position:absolute;inset:0;pointer-events:none}

/* ---- 气泡：全站唯一的可见附加元素（提示载体），做最简化处理 ---- */
.cp-bubble{display:flex;gap:8px;align-items:flex-start;position:relative;padding:9px 22px 9px 9px;
  max-width:264px;pointer-events:auto;background:var(--panel-solid);border:0;border-radius:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.20);animation:cpPop .32s cubic-bezier(.2,1.4,.4,1)}
.cp-bubble-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:0;flex:none}
.cp-bubble-body{flex:1;min-width:0}
.cp-bubble-text{font-size:12.5px;line-height:1.6;color:var(--txt);max-height:96px;overflow:auto;word-break:break-all}
.cp-bubble-close{position:absolute;top:5px;right:9px;color:var(--txt3);cursor:pointer;font-size:11px;padding:2px}
.cp-bubble-close:hover{color:var(--pink)}

/* ---- 收起态：仅把人物缩小到角落，无圆形外壳 ---- */
.cp-collapsed{position:absolute;right:16px;bottom:16px;width:78px;height:146px;
  pointer-events:auto;background:none;border:0;box-shadow:none;opacity:.9;
  transition:opacity .3s}
.cp-collapsed:hover{opacity:1}
.cp-collapsed img{width:100%;height:100%;object-fit:contain;display:block}

@keyframes cpPop{from{opacity:0;transform:scale(.72) translateY(8px)}to{opacity:1;transform:none}}

@media(max-width:760px){
  .cp-stage{width:168px;height:313px}
  .cp-dock{right:10px;bottom:78px}
  .cp-bubble{max-width:220px}
  .cp-collapsed{width:56px;height:105px;right:10px;bottom:78px}
}
@media(prefers-reduced-motion:reduce){
  .cp-bubble{animation:none}
}
