/* RiverX Poker V167 — artwork-relative open-seat sizing and bounded effects. */

/* The supplied table images are all 1672 x 941. These percentages were
   measured against the luminous spade circles in each source image. Keeping
   the values relative to the table—not the viewport—makes the hit area track
   the artwork through every responsive resize. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art {
  --rx-seat-circle-top: 6.70%;
  --rx-seat-circle-upper: 6.60%;
  --rx-seat-circle-lower: 6.70%;
  --rx-seat-circle-bottom: 6.95%;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="micro-nlh-table-"] {
  --rx-seat-circle-top: 6.58%;
  --rx-seat-circle-upper: 6.58%;
  --rx-seat-circle-lower: 6.88%;
  --rx-seat-circle-bottom: 6.58%;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="low-limit-nlh-table-"] {
  --rx-seat-circle-top: 6.70%;
  --rx-seat-circle-upper: 6.58%;
  --rx-seat-circle-lower: 6.64%;
  --rx-seat-circle-bottom: 7.18%;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="standard-nlh-table-"] {
  --rx-seat-circle-top: 6.82%;
  --rx-seat-circle-upper: 6.64%;
  --rx-seat-circle-lower: 6.64%;
  --rx-seat-circle-bottom: 6.94%;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-limit-nlh-table-"] {
  --rx-seat-circle-top: 6.58%;
  --rx-seat-circle-upper: 6.58%;
  --rx-seat-circle-lower: 6.64%;
  --rx-seat-circle-bottom: 6.94%;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-roller-nlh-table-"] {
  --rx-seat-circle-top: 6.34%;
  --rx-seat-circle-upper: 6.22%;
  --rx-seat-circle-lower: 6.34%;
  --rx-seat-circle-bottom: 6.46%;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat.seat-0 {
  --rx-seat-circle-diameter: var(--rx-seat-circle-top);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat.seat-1,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat.seat-4 {
  --rx-seat-circle-diameter: var(--rx-seat-circle-upper);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat.seat-2,
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat.seat-3 {
  --rx-seat-circle-diameter: var(--rx-seat-circle-lower);
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat.seat-5 {
  --rx-seat-circle-diameter: var(--rx-seat-circle-bottom);
}

/* One responsive square defines the seat, button, focus surface, core, and
   both animated layers. aspect-ratio converts the artwork-width percentage
   into a true circle without any viewport clamp or breakpoint drift. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat.is-open-seat {
  width: var(--rx-seat-circle-diameter) !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-wave {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-core {
  width: 100% !important;
  height: 100% !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
}

/* Keep keyboard focus and interaction feedback on the medallion boundary.
   Glow becomes brighter on interaction, but its geometry never grows beyond
   the artwork circle. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art .seat-ripple-target:focus-visible {
  outline-offset: -3px !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 {
  transform: scale(1) !important;
}

/* Preserve the V166 table-specific visual language while containing every
   moving ring inside the measured circle. */
body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="micro-nlh-table-"] .seat-ripple-wave {
  animation: rxMicroSeatCircleV167 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;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="low-limit-nlh-table-"] .seat-ripple-wave {
  animation: rxLowLimitSeatCircleV167 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 {
  animation-delay: 1.575s !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="standard-nlh-table-"] .seat-ripple-wave {
  animation: rxStandardSeatCircleV167 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 {
  animation: rxStandardSeatCircleV167 5.6s linear infinite reverse !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-limit-nlh-table-"] .seat-ripple-wave {
  animation: rxHighLimitSeatCircleV167 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 {
  animation-delay: 1.45s !important;
}

body.rx-v157 #view-table .poker-table.has-spade-seat-art[data-table^="high-roller-nlh-table-"] .seat-ripple-wave-one {
  animation: rxHighRollerSeatCircleV167 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 {
  animation: rxHighRollerSeatOrbitCircleV167 3.35s linear infinite !important;
}

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

@keyframes rxMicroSeatCircleV167 {
  0% { opacity: 0; transform: scale(0.84); }
  16% { opacity: 0.76; }
  66% { opacity: 0.28; }
  100% { opacity: 0; transform: scale(1); }
}

@keyframes rxLowLimitSeatCircleV167 {
  0% { opacity: 0; transform: scale(0.86); }
  18% { opacity: 0.78; }
  66% { opacity: 0.26; }
  100% { opacity: 0; transform: scale(1); }
}

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

@keyframes rxHighLimitSeatCircleV167 {
  0% { opacity: 0; transform: scale(0.84); }
  16% { opacity: 0.9; }
  62% { opacity: 0.34; }
  100% { opacity: 0; transform: scale(1); }
}

@keyframes rxHighRollerSeatCircleV167 {
  0% { opacity: 0; transform: scale(0.86); }
  14% { opacity: 0.92; }
  58% { opacity: 0.34; }
  100% { opacity: 0; transform: scale(1); }
}

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

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

@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;
    transform: scale(1) !important;
  }
}

/* Final occupied-state guard: a claimed seat has no open-seat hit surface or
   animation, even during a render boundary. */
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;
}
