/* 3D 欲望轮盘 / 心跳左轮（js/3d-wheel.js）：舞台盒子 / 落定闪光 / 心跳暗角 / 中弹率 / 剩余弹巢 */
.w3-box { position: relative; margin: 2px -14px 0; }
.w3-box[hidden] { display: none; }
.w3-box .w3-stage { aspect-ratio: 1 / .9; max-height: 62vh; }
.w3-rev .w3-stage { aspect-ratio: 1 / .86; }
.w3-flash { position: absolute; inset: 0; border-radius: 18px; pointer-events: none; opacity: 0;
  background: radial-gradient(60% 50% at 50% 22%, #ffe2a0aa, #ffb84a33 45%, transparent 75%); }
.w3-flash.on { animation: w3flash 1.1s ease-out; }
@keyframes w3flash { 0% { opacity: 0; } 12% { opacity: 1; } 100% { opacity: 0; } }
.r3-bang { background: radial-gradient(70% 60% at 50% 40%, #fff6e8, #ff5a3c 30%, #a3123acc 60%, #2a0008ee); }
.r3-bang.on { animation: r3bang 1.3s ease-out forwards; }
@keyframes r3bang { 0% { opacity: 0; } 4% { opacity: 1; } 25% { opacity: .75; } 100% { opacity: .35; } }
.r3-vig { position: absolute; inset: 0; border-radius: 18px; pointer-events: none; opacity: 0; transition: opacity .14s ease-out;
  box-shadow: inset 0 0 90px 18px #ff1f4f, inset 0 0 0 1px #ff1f4f88; }
.r3-odds { position: absolute; top: 12px; right: 14px; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; pointer-events: none;
  color: var(--gold2, #f3dcaa); text-shadow: 0 2px 8px #000; }
.r3-odds small { font: 500 11px var(--serif); letter-spacing: .3em; color: var(--mute, #a08a90); }
.r3-odds b { font: 600 30px/1 var(--latin, serif); letter-spacing: .04em; }
.r3-odds.hot b { color: #ff6d8a; animation: g3pulse 1s ease-in-out infinite; }
.r3-pips { position: absolute; right: 12px; top: 64px; display: flex; gap: 7px; padding: 6px 10px; border-radius: 99px;
  background: #0b0508b3; border: 1px solid #d9b26f33; pointer-events: none; }
.r3-pips i { width: 11px; height: 11px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fbe8bd, #b8873e 70%); box-shadow: 0 0 6px #d9b26f66; }
.r3-pips i.spent { background: none; box-shadow: inset 0 0 0 1.5px #5a4a3a; }
.r3-pips i.next { background: radial-gradient(circle at 35% 30%, #ffb3c1, #d93a5e 70%); box-shadow: 0 0 10px #ff3d6e; animation: g3pulse 1s ease-in-out infinite; }
