/* V64.18: shared pose motion for every equipped skin; artwork stays skin-specific. */
.reference-scene[data-spark-mood] { --classic-breath: 4.6s; --classic-energy: #00cfff; }
.reference-scene[data-spark-mood="charged"] { --classic-breath: 3.2s; --classic-energy: #aa55ff; }
.reference-scene[data-spark-mood="unstable"] { --classic-breath: 2.5s; --classic-energy: #ff314a; }
.reference-scene[data-spark-mood="critical"] { --classic-breath: 1.9s; --classic-energy: #ff1419; }
.reference-scene[data-spark-mood="joy"] { --classic-breath: 3.8s; --classic-energy: #00ed99; }
.reference-scene[data-spark-mood="exploded"] { --classic-energy: #ff314a; }
.reference-screen .reference-scene[data-spark-mood] .reference-character {
  transform-origin: 50% 83%;
  animation: classic-breathe var(--classic-breath) ease-in-out infinite;
}
.reference-screen .reference-scene[data-spark-mood="exploded"] .reference-character { animation: none; }
.classic-energy {
  position: absolute; inset: 18% 7% 1%; z-index: 1; pointer-events: none;
  border-radius: 50%; opacity: .12;
  background: radial-gradient(ellipse, transparent 35%, var(--classic-energy) 62%, transparent 73%);
}
.reference-scene[data-spark-mood="critical"] .classic-energy { animation: classic-energy 2.8s ease-in-out infinite; }
/* Resolve in the scene, not behind the old full-screen cinematic panel. */
body:has(.reference-game [data-spark-mood]) .action-cinematic { display: none; }
body.hold-resolving .reference-scene[data-spark-mood] .reference-character { animation: classic-charge .82s ease-in-out infinite; }
body.pass-resolving .reference-scene[data-spark-mood] .reference-character { animation: classic-release .7s ease-in-out both; }
body.hold-resolving .reference-scene[data-spark-mood] .classic-energy { opacity: .36; }
.reference-scene[data-spark-reaction="hold-success"] .classic-energy { --classic-energy: #00ed99; animation: classic-relief .9s ease-out both; }
.reference-scene[data-spark-reaction="pass"] .classic-energy { animation: classic-relief .9s ease-out both; }
.reference-scene[data-spark-reaction="explosion"] .classic-energy { animation: classic-relief .62s ease-out both; }
/* Keep the reward at the bottom edge of the scene, away from the face. */
.reference-game [data-spark-mood] .hold-reveal { bottom: 4px; padding: 5px 12px; pointer-events: none; }
.reference-game [data-spark-mood] .hold-reveal strong { font-size: 20px; }
.reference-game [data-spark-mood] .hold-reveal small { display: none; }
@keyframes classic-breathe {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(-.25deg) scale(1); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(.35deg) scale(1.012,1.02); }
}
@keyframes classic-charge {
  0%,100% { transform: translateX(-50%) translateY(2px) scale(1.02,.98); }
  45% { transform: translateX(-50%) translateY(0) rotate(-.7deg) scale(.985,1.015); }
  70% { transform: translateX(-50%) translateY(1px) rotate(.7deg) scale(1.015,.99); }
}
@keyframes classic-release {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  100% { transform: translateX(-50%) translateY(-8px) rotate(2deg) scale(.98); }
}
@keyframes classic-energy { 0%,100% { opacity: .12; } 50% { opacity: .27; } }
@keyframes classic-relief { 0% { opacity: .38; transform: scale(.94); } 100% { opacity: .12; transform: scale(1.04); } }
.classic-motion-paused [data-spark-mood] *,
.classic-motion-paused [data-spark-mood] { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  .reference-scene[data-spark-mood] *,
  body.hold-resolving .reference-scene[data-spark-mood] .reference-character,
  body.pass-resolving .reference-scene[data-spark-mood] .reference-character { animation: none !important; }
  .reference-scene[data-spark-mood] .reference-character { transform: translateX(-50%); }
  body:has([data-spark-mood]).flash-success::after,
  body:has([data-spark-mood]).flash-danger::after { display: none; }
}
