/* where: HEIST結果 / what: 成功の着地・火花、失敗の警告 / why: 短い一撃で成否を伝え、読み終える操作は妨げない */
/* 判・報酬の拡大中もダイアログの横幅を押し広げない。 */
.heist-result { overflow:clip; }
.heist-result-hero { position:relative; isolation:isolate; overflow:hidden; margin:-8px -8px 0; padding:8px 8px 0; }
.heist-result-hero>:not(.heist-result-impact) { position:relative; z-index:1; }
.heist-result-impact { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; color:var(--gold); }
.heist-result-impact::before {
  content:""; position:absolute; left:50%; top:42%; width:144px; height:144px;
  border:2px solid currentColor; border-radius:50%; opacity:0;
  animation:heist-impact-ring .75s .08s ease-out both;
}
.heist-result-impact::after {
  content:""; position:absolute; inset:0; opacity:0;
  background:radial-gradient(ellipse at 50% 42%,#c9a84c50,transparent 70%);
  animation:heist-impact-light .65s ease-out both;
}
.heist-result-impact i {
  position:absolute; left:50%; top:42%; width:24px; height:2px; background:currentColor; opacity:0;
  transform-origin:0 50%; animation:heist-impact-spark .7s .1s ease-out both;
}
.heist-result-impact i:nth-child(even) { width:12px; height:3px; animation-delay:.16s; }
.heist-result .heist-result-stamp {
  max-width:90%; margin:24px 0 20px; padding:8px 16px; border:2px solid currentColor;
  color:var(--gold); background:#111118eb; font:800 clamp(1.5rem,7.8vw,2.7rem)/1.1 var(--fm);
  letter-spacing:.1em; animation:heist-success-slam .5s cubic-bezier(.2,.7,.3,1) both;
}
.heist-result.is-success h2 { animation:heist-success-recoil .45s .12s both; }
.heist-result.is-success .heist-result-stamp { font-family:'Molot',var(--fh); font-weight:400; letter-spacing:.06em; }
.heist-result.is-jackpot .heist-result-stamp,
.heist-result.is-jackpot h2,
.heist-jackpot-label { color:#ff6374; }
.heist-result.is-success .heist-result-loot {
  font-size:clamp(2.2rem,10vw,3.4rem); font-weight:700;
  animation:heist-reward-pop .5s .14s both;
}
.heist-result .heist-growth-row { animation:heist-growth-arrive .35s .28s both; }
.heist-result .heist-growth-row:nth-child(2) { animation-delay:.34s; }
.heist-result .heist-growth-row:nth-child(3) { animation-delay:.4s; }
.heist-result .heist-growth-row:nth-child(4) { animation-delay:.46s; }
.heist-result .heist-growth-row:nth-child(5) { animation-delay:.52s; }
.heist-result.is-failure .heist-result-impact { color:#b8446e; }
.heist-result.is-failure .heist-result-impact::after {
  background:linear-gradient(120deg,transparent 20%,#8b22524d 50%,transparent 80%);
}
.heist-result.is-failure .heist-result-impact::before { border-radius:0; height:4px; width:80%; border-width:1px 0; }
.heist-result.is-failure .heist-result-impact i { height:1px; width:36px; }
.heist-result.is-failure .heist-result-stamp { color:#e38b91; animation:heist-failure-slam .5s both; }
.heist-result.is-failure h2 { animation:heist-failure-shake .4s .1s both; }
.heist-result.is-failure .heist-result-loot { animation:heist-growth-arrive .4s .22s both; }
@keyframes heist-success-slam {
  0% { opacity:0; transform:scale(2.4) rotate(-13deg); }
  48% { opacity:1; transform:scale(.92) rotate(-4deg); }
  68% { transform:scale(1.06) rotate(-4deg); }
  100% { opacity:1; transform:scale(1) rotate(-4deg); }
}
@keyframes heist-success-recoil {
  0%,100% { transform:translateY(0); }
  25% { transform:translateY(5px); }
  50% { transform:translateY(-3px); }
  75% { transform:translateY(1px); }
}
@keyframes heist-impact-ring {
  0% { opacity:.8; transform:translate(-50%,-50%) scale(.35); }
  100% { opacity:0; transform:translate(-50%,-50%) scale(2.5); }
}
@keyframes heist-impact-light { 0% { opacity:.9; } 100% { opacity:0; } }
@keyframes heist-impact-spark {
  0% { opacity:0; transform:rotate(var(--angle)) translateX(40px) scaleX(.3); }
  20% { opacity:1; }
  100% { opacity:0; transform:rotate(var(--angle)) translateX(180px) scaleX(.6); }
}
@keyframes heist-reward-pop {
  0% { opacity:0; transform:scale(.8); }
  55% { opacity:1; transform:scale(1.12); }
  100% { opacity:1; transform:scale(1); }
}
@keyframes heist-growth-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes heist-failure-slam {
  0% { opacity:0; transform:translateX(-24px) scale(1.5) rotate(-10deg); }
  45% { opacity:1; transform:translateX(4px) scale(1) rotate(-4deg); }
  70% { transform:translateX(-3px) rotate(-4deg); }
  100% { opacity:1; transform:translateX(0) rotate(-4deg); }
}
@keyframes heist-failure-shake {
  0%,100% { transform:translateX(0); }
  20%,60% { transform:translateX(-4px); }
  40%,80% { transform:translateX(4px); }
}
@media(prefers-reduced-motion:reduce) {
  .heist-result-impact { display:none; }
  .heist-result *, .heist-result *::before, .heist-result *::after { animation:none!important; }
}
