.fade-out-ui{animation:uiFadeOut .22s ease forwards}.fade-in-ui{animation:uiFadeIn .22s ease forwards}
@keyframes uiFadeOut{to{opacity:0;filter:blur(2px);transform:scale(.99)}}
@keyframes uiFadeIn{from{opacity:0;filter:blur(2px);transform:scale(.99)}to{opacity:1;filter:blur(0);transform:scale(1)}}

.victory-clear-overlay{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:18px;
  padding:18px;
  background:rgba(0,0,0,.78);
}
.victory-clear-overlay.show{display:flex}
.victory-clear-img{
  width:min(92vw,520px);
  max-height:78dvh;
  object-fit:contain;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.85));
}

/* ===== 魔王覚醒演出 ===== */
@keyframes awakenFlash{
  0%{background:rgba(180,0,0,0)}
  10%{background:rgba(220,0,0,.55)}
  20%{background:rgba(120,0,0,.15)}
  35%{background:rgba(240,20,20,.65)}
  50%{background:rgba(120,0,0,.2)}
  65%{background:rgba(255,30,30,.7)}
  80%{background:rgba(120,0,0,.25)}
  100%{background:rgba(120,0,0,0)}
}
@keyframes awakenShake{
  0%,100%{transform:translate(0,0)}
  10%{transform:translate(-8px,4px)}
  20%{transform:translate(7px,-5px)}
  30%{transform:translate(-9px,-3px)}
  40%{transform:translate(8px,6px)}
  50%{transform:translate(-6px,4px)}
  60%{transform:translate(9px,-4px)}
  70%{transform:translate(-7px,5px)}
  80%{transform:translate(6px,-6px)}
  90%{transform:translate(-5px,3px)}
}
#awakenOverlay{
  position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:0;
  display:flex;align-items:center;justify-content:center;
}
#awakenOverlay.on{opacity:1;animation:awakenFlash 1.6s ease-in-out}
#awakenOverlay .awaken-text{
  color:#fff;font-weight:900;font-size:clamp(22px,7vw,44px);
  text-shadow:0 0 12px rgba(255,0,0,.9),0 0 24px rgba(255,60,60,.7);
  letter-spacing:.1em;text-align:center;
  animation:awakenTextPop 1.6s ease-out;
}
@keyframes awakenTextPop{
  0%{opacity:0;transform:scale(.6)}
  25%{opacity:1;transform:scale(1.15)}
  70%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.05)}
}
.awaken-shake{animation:awakenShake .6s ease-in-out 2}
