/* RiverX Poker V166 — restrained, tier-matched open-seat effects. */

/* V165 remains responsible for exact spade-medallion alignment and click-target
   sizing. V166 replaces only the visual motion layered over those targets. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art {
  --rx-seat-motion-duration: 2.8s;
  --rx-seat-interaction-duration: 2.05s;
  --rx-seat-core-duration: 3.2s;
  --rx-seat-core-line: rgba(207, 160, 255, 0.34);
  --rx-seat-core-glow: rgba(150, 72, 255, 0.32);
  --rx-seat-core-hot: rgba(203, 139, 255, 0.8);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="micro-nlh-table-"] {
  --rx-seat-motion-duration: 2.8s;
  --rx-seat-interaction-duration: 2.05s;
  --rx-seat-core-duration: 3.4s;
  --rx-seat-core-line: rgba(204, 158, 255, 0.32);
  --rx-seat-core-glow: rgba(143, 68, 255, 0.3);
  --rx-seat-core-hot: rgba(202, 143, 255, 0.82);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="low-limit-nlh-table-"] {
  --rx-seat-motion-duration: 3.15s;
  --rx-seat-interaction-duration: 2.3s;
  --rx-seat-core-duration: 3.7s;
  --rx-seat-core-line: rgba(169, 255, 220, 0.34);
  --rx-seat-core-glow: rgba(128, 78, 255, 0.33);
  --rx-seat-core-hot: rgba(164, 255, 218, 0.74);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="standard-nlh-table-"] {
  --rx-seat-motion-duration: 4.25s;
  --rx-seat-interaction-duration: 3.05s;
  --rx-seat-core-duration: 3.05s;
  --rx-seat-core-line: rgba(196, 137, 255, 0.42);
  --rx-seat-core-glow: rgba(91, 116, 255, 0.36);
  --rx-seat-core-hot: rgba(208, 151, 255, 0.88);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-limit-nlh-table-"] {
  --rx-seat-motion-duration: 2.9s;
  --rx-seat-interaction-duration: 2.12s;
  --rx-seat-core-duration: 3.15s;
  --rx-seat-core-line: rgba(255, 219, 132, 0.5);
  --rx-seat-core-glow: rgba(159, 79, 255, 0.38);
  --rx-seat-core-hot: rgba(255, 224, 147, 0.9);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-roller-nlh-table-"] {
  --rx-seat-motion-duration: 2.55s;
  --rx-seat-interaction-duration: 1.9s;
  --rx-seat-core-duration: 2.75s;
  --rx-seat-core-line: rgba(255, 195, 105, 0.54);
  --rx-seat-core-glow: rgba(214, 38, 75, 0.4);
  --rx-seat-core-hot: rgba(255, 201, 117, 0.94);
}

/* Reset the V165 half-ring while preserving the real spade underneath. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-wave {
  inset: 4% !important;
  border: 0 !important;
  border-radius: 50% !important;
  clip-path: none !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 0;
  transform: none;
  animation: none !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-core {
  border-color: var(--rx-seat-core-line) !important;
  background: radial-gradient(circle, transparent 48%, var(--rx-seat-core-glow) 72%, transparent 78%) !important;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--rx-seat-core-line) 72%, transparent),
    0 0 16px var(--rx-seat-core-glow) !important;
  animation: rxTierSeatCoreBreathV166 var(--rx-seat-core-duration) ease-in-out infinite !important;
}

/* Micro NLH: a clean, forgiving pair of soft violet pulses. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="micro-nlh-table-"] .seat-ripple-wave {
  inset: 7% !important;
  border: 1.5px solid rgba(191, 126, 255, 0.88) !important;
  background: transparent !important;
  box-shadow: 0 0 8px rgba(146, 65, 255, 0.5), inset 0 0 6px rgba(176, 102, 255, 0.2) !important;
  animation: rxMicroSeatPulseV166 var(--rx-seat-motion-duration) cubic-bezier(0.2, 0.64, 0.3, 1) infinite !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="micro-nlh-table-"] .seat-ripple-wave-two {
  animation-delay: 1.4s !important;
  border-color: rgba(221, 180, 255, 0.76) !important;
}

/* Low Limit NLH: a wider violet tide with a quiet emerald second wave. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="low-limit-nlh-table-"] .seat-ripple-wave {
  inset: 1% !important;
  background: radial-gradient(circle, transparent 0 55%, rgba(181, 119, 255, 0.82) 58%, rgba(132, 68, 255, 0.34) 61%, transparent 64%) !important;
  filter: drop-shadow(0 0 7px rgba(144, 70, 255, 0.62)) !important;
  animation: rxLowLimitSeatWaveV166 var(--rx-seat-motion-duration) cubic-bezier(0.18, 0.62, 0.28, 1) infinite !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="low-limit-nlh-table-"] .seat-ripple-wave-two {
  background: radial-gradient(circle, transparent 0 55%, rgba(129, 255, 204, 0.62) 58%, rgba(73, 213, 160, 0.24) 61%, transparent 64%) !important;
  filter: drop-shadow(0 0 7px rgba(92, 230, 176, 0.46)) !important;
  animation-delay: 1.575s !important;
}

/* Standard NLH: two precise electric arcs orbit the medallion in opposition. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="standard-nlh-table-"] .seat-ripple-wave {
  inset: -1% !important;
  background: conic-gradient(from 0deg, transparent 0 54%, rgba(142, 78, 255, 0.14) 60%, rgba(215, 165, 255, 0.98) 70%, rgba(103, 133, 255, 0.8) 78%, transparent 88% 100%) !important;
  -webkit-mask: radial-gradient(circle, transparent 0 57%, #000 59% 64%, transparent 67% 100%) !important;
  mask: radial-gradient(circle, transparent 0 57%, #000 59% 64%, transparent 67% 100%) !important;
  filter: drop-shadow(0 0 6px rgba(159, 95, 255, 0.8)) !important;
  animation: rxStandardSeatOrbitV166 var(--rx-seat-motion-duration) linear infinite !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="standard-nlh-table-"] .seat-ripple-wave-two {
  inset: 5% !important;
  background: conic-gradient(from 180deg, transparent 0 60%, rgba(95, 225, 255, 0.16) 66%, rgba(128, 109, 255, 0.9) 75%, rgba(225, 188, 255, 0.88) 82%, transparent 91% 100%) !important;
  animation: rxStandardSeatOrbitV166 5.6s linear infinite reverse !important;
}

/* High Limit NLH: alternating gold and violet prestige rings. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-limit-nlh-table-"] .seat-ripple-wave {
  inset: 5% !important;
  border: 2px solid rgba(255, 212, 112, 0.88) !important;
  background: transparent !important;
  box-shadow: 0 0 9px rgba(255, 191, 70, 0.52), inset 0 0 7px rgba(255, 220, 143, 0.22) !important;
  animation: rxHighLimitSeatPrestigeV166 var(--rx-seat-motion-duration) cubic-bezier(0.16, 0.64, 0.3, 1) infinite !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-limit-nlh-table-"] .seat-ripple-wave-two {
  border-color: rgba(190, 111, 255, 0.92) !important;
  box-shadow: 0 0 10px rgba(145, 61, 255, 0.68), inset 0 0 7px rgba(185, 105, 255, 0.25) !important;
  animation-delay: 1.45s !important;
}

/* High Roller NLH: a restrained ruby shockwave under a segmented gold/violet
   orbit, matching the table's black, red, and gold finish. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-roller-nlh-table-"] .seat-ripple-wave-one {
  inset: 4% !important;
  border: 2px solid rgba(255, 68, 88, 0.9) !important;
  background: transparent !important;
  box-shadow: 0 0 10px rgba(229, 32, 65, 0.7), inset 0 0 7px rgba(255, 89, 108, 0.25) !important;
  animation: rxHighRollerSeatShockwaveV166 var(--rx-seat-motion-duration) cubic-bezier(0.14, 0.64, 0.28, 1) infinite !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-roller-nlh-table-"] .seat-ripple-wave-two {
  inset: -3% !important;
  background: conic-gradient(from 0deg, transparent 0 9%, rgba(255, 204, 111, 0.98) 13% 20%, transparent 24% 47%, rgba(181, 92, 255, 0.9) 52% 59%, transparent 64% 82%, rgba(255, 75, 96, 0.92) 87% 94%, transparent 98% 100%) !important;
  -webkit-mask: radial-gradient(circle, transparent 0 59%, #000 61% 65%, transparent 68% 100%) !important;
  mask: radial-gradient(circle, transparent 0 59%, #000 61% 65%, transparent 68% 100%) !important;
  filter: drop-shadow(0 0 7px rgba(255, 157, 80, 0.62)) !important;
  animation: rxHighRollerSeatOrbitV166 3.35s linear infinite !important;
}

/* Interaction strengthens whichever table-specific motion is active. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:hover .seat-ripple-wave,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:focus-visible .seat-ripple-wave,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:active .seat-ripple-wave,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-seat-joining .seat-ripple-wave {
  filter: brightness(1.24) saturate(1.18) drop-shadow(0 0 10px var(--rx-seat-core-hot)) !important;
  animation-duration: var(--rx-seat-interaction-duration) !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:hover .seat-ripple-core,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:focus-visible .seat-ripple-core,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:active .seat-ripple-core {
  animation-play-state: paused !important;
  border-color: var(--rx-seat-core-hot) !important;
  filter: brightness(1.2) saturate(1.16) !important;
  box-shadow: 0 0 0 2px var(--rx-seat-core-line), 0 0 24px var(--rx-seat-core-hot) !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-seat-joining .seat-ripple-core {
  animation: rxTierSeatJoinConfirmV166 0.58s ease-in-out infinite alternate !important;
}

/* This rule is intentionally later and more specific than every tier effect.
   Once renderPlayers marks a seat occupied, no ripple can survive. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat:not(.is-open-seat) .seat-ripple-wave,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat:not(.is-open-seat) .seat-ripple-core {
  display: none !important;
  opacity: 0 !important;
  animation: none !important;
}

@keyframes rxMicroSeatPulseV166 {
  0% { opacity: 0; transform: scale(0.78); }
  14% { opacity: 0.76; }
  64% { opacity: 0.22; }
  100% { opacity: 0; transform: scale(1.68); }
}

@keyframes rxLowLimitSeatWaveV166 {
  0% { opacity: 0; transform: scaleX(0.78) scaleY(0.72); }
  16% { opacity: 0.78; }
  62% { opacity: 0.24; }
  100% { opacity: 0; transform: scaleX(1.82) scaleY(1.38); }
}

@keyframes rxStandardSeatOrbitV166 {
  0% { opacity: 0.58; transform: rotate(0deg) scale(0.96); }
  50% { opacity: 1; transform: rotate(180deg) scale(1.04); }
  100% { opacity: 0.58; transform: rotate(360deg) scale(0.96); }
}

@keyframes rxHighLimitSeatPrestigeV166 {
  0% { opacity: 0; transform: scale(0.78); }
  16% { opacity: 0.9; }
  58% { opacity: 0.34; }
  100% { opacity: 0; transform: scale(1.74); }
}

@keyframes rxHighRollerSeatShockwaveV166 {
  0% { opacity: 0; transform: scale(0.8); }
  12% { opacity: 0.92; }
  52% { opacity: 0.3; }
  100% { opacity: 0; transform: scale(1.82); }
}

@keyframes rxHighRollerSeatOrbitV166 {
  0% { opacity: 0.64; transform: rotate(0deg) scale(0.98); }
  50% { opacity: 1; transform: rotate(180deg) scale(1.06); }
  100% { opacity: 0.64; transform: rotate(360deg) scale(0.98); }
}

@keyframes rxTierSeatCoreBreathV166 {
  0%, 100% { opacity: 0.62; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.12) saturate(1.08); }
}

@keyframes rxTierSeatJoinConfirmV166 {
  from { opacity: 0.78; filter: brightness(1.12) saturate(1.1); transform: scale(0.96); }
  to { opacity: 1; filter: brightness(1.42) saturate(1.3); transform: scale(1.08); }
}

@media (max-width: 820px) {
  body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="micro-nlh-table-"] .seat-ripple-wave,
  body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-limit-nlh-table-"] .seat-ripple-wave,
  body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-roller-nlh-table-"] .seat-ripple-wave-one {
    border-width: 1.25px !important;
  }
}

/* Keep a subtle continuous seat cue for users requesting reduced motion. */
@media (prefers-reduced-motion: reduce) {
  body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat .seat-ripple-wave {
    animation-duration: 6s !important;
  }

  body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat .seat-ripple-core {
    animation: none !important;
    opacity: 0.8 !important;
  }
}
