/*! rival.css — 相手パネル・アバター・酔いゲージ */
/* ---- 相手パネル ---- */
.rival{
  position:relative;
  width:100%;display:flex;align-items:center;gap:12px;
  background:linear-gradient(180deg,var(--panel-lt),var(--panel));
  border:1px solid #4b2836;border-radius:14px;padding:9px 12px;
}
.avatar-wrap{position:relative;width:58px;height:58px;flex:0 0 58px;}
.avatar{
  width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;
  border:2px solid var(--gold);background:#fff;
  transform-origin:50% 90%;
}
.avatar-blush{
  position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 30% 58%,rgba(255,60,60,.85),transparent 42%),
             radial-gradient(circle at 70% 58%,rgba(255,60,60,.85),transparent 42%),
             radial-gradient(circle at 50% 50%,rgba(255,90,90,.45),transparent 75%);
  mix-blend-mode:multiply;opacity:0;transition:opacity .4s ease;
}
.avatar-zzz{
  position:absolute;top:-8px;right:-10px;font-size:1.1rem;opacity:0;transition:opacity .3s;
}
.rival.tipsy .avatar{animation:sway 2.4s ease-in-out infinite;}
.rival.drunk  .avatar{animation:sway 1.2s ease-in-out infinite;}
.rival.out    .avatar{animation:none;transform:rotate(-12deg);filter:saturate(.7);}
.rival.out    .avatar-zzz{opacity:1;}
@keyframes sway{
  0%,100%{transform:rotate(-4deg) translateY(0);}
  50%{transform:rotate(4deg) translateY(-2px);}
}

.rival-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
.rival-head{display:flex;align-items:baseline;gap:8px;}
.rival-name{font-weight:800;font-size:.95rem;}
.rival-tag{font-size:.7rem;opacity:.65;}
.gauge{
  position:relative;height:16px;border-radius:9px;overflow:hidden;
  background:#1b0e14;border:1px solid #56303f;
}
.gauge-fill{
  height:100%;width:0%;border-radius:8px 0 0 8px;
  background:linear-gradient(90deg,#8e1b39,#d3405c 70%,#f0a4b4);
  transition:width .45s cubic-bezier(.3,1.2,.5,1);
}
.gauge-text{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:.66rem;font-weight:700;letter-spacing:.03em;
  text-shadow:0 1px 3px rgba(0,0,0,.8);font-variant-numeric:tabular-nums;
}
.rival-mood{font-size:.72rem;opacity:.8;min-height:1em;}

.pop-cup{
  position:absolute;right:14px;top:6px;
  font-weight:800;font-size:1rem;color:#ffd9a0;
  text-shadow:0 2px 8px rgba(0,0,0,.7);
  opacity:0;pointer-events:none;
}
.pop-cup.go{animation:popUp .9s ease-out forwards;}
@keyframes popUp{
  0%{opacity:0;transform:translateY(6px) scale(.8);}
  25%{opacity:1;transform:translateY(-2px) scale(1.15);}
  100%{opacity:0;transform:translateY(-22px) scale(1);}
}
