/* ═══════════════════════════════════════════════════
   RITZA RAFFLES — Game Room v3
   AI Hologram Dealer + Live Casino Table
   ═══════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --holo:      #f0a500;
  --holo-glow: rgba(240,165,0, 0.5);
  --holo-dim:  rgba(240,165,0, 0.08);
  --felt:      #082416;
  --felt-dark: #050f0a;
  --felt-mid:  #0a2e1a;
  --gold:      #f0a500;
  --gold-glow: rgba(240,165,0,.5);
  --green-win: #10b981;
  --red-lose:  #ef4444;
  --bg:        #1e3258;
  --bg-mid:    #253f70;
  --white:     #ffffff;
  --muted:     rgba(255,255,255,.55);
  --border:    rgba(255,255,255,.12);
  --t:         .22s ease;
  --radius:    14px;
}

html { height: 100%; }
body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--bg);
  color: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  min-height: 100%;
}
a { color: inherit; text-decoration: none; }

/* ── Screen flash ──────────────────────────────────── */
#screenFlash {
  position: fixed; inset: 0; z-index: 9999;
  pointer-events: none; opacity: 0;
  border-radius: 0;
}
#screenFlash.flash-win  { background: radial-gradient(ellipse at center, rgba(240,180,41,.3) 0%, transparent 70%); }
#screenFlash.flash-lose { background: radial-gradient(ellipse at center, rgba(239,68,68,.28)  0%, transparent 70%); }
#screenFlash.flash-bj   { background: radial-gradient(ellipse at center, rgba(200,220,255,.3)   0%, transparent 60%); }
#screenFlash.on { opacity: 1; transition: opacity .1s; }
#screenFlash { transition: opacity .4s; }

/* ── Confetti ────────────────────────────────────────── */
#confettiCanvas {
  position: fixed; inset: 0; z-index: 9000;
  pointer-events: none; width: 100%; height: 100%;
}

/* ── Toast ───────────────────────────────────────────── */
.toast {
  position: fixed; bottom: 28px; right: 28px; z-index: 8000;
  padding: 14px 24px;
  background: #111f38; color: var(--white);
  font-size: .9rem; font-weight: 600;
  border-radius: 12px; border: 1px solid rgba(200,220,255,.15);
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  transform: translateY(80px); opacity: 0;
  transition: transform .3s, opacity .3s;
  pointer-events: none;
}
.toast.show      { transform: translateY(0); opacity: 1; }
.toast.win-toast { background: #052e1c; border-color: rgba(16,185,129,.3); }
.toast.lose-toast{ background: #2c0a0a; border-color: rgba(239,68,68,.3); }

/* ════════════════════════════════════════════════════
   NAV
════════════════════════════════════════════════════ */
.g-nav {
  position: sticky; top: 0; z-index: 100;
  height: 58px;
  background: rgba(14,24,40,.97);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.10);
  display: flex; align-items: center;
  padding: 0 24px; gap: 20px;
}

.g-nav-logo {
  font-family: 'Poppins', sans-serif;
  font-size: 1.2rem; font-weight: 900;
  color: var(--white); letter-spacing: -.02em;
  flex-shrink: 0;
}
.g-nav-logo span { color: var(--gold); }

.g-nav-tabs { display: flex; gap: 6px; }
.g-nav-tab {
  padding: 7px 18px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted); font-size: .85rem; font-weight: 600;
  border-radius: 100px; cursor: pointer; transition: var(--t);
}
.g-nav-tab:hover  { color: var(--white); border-color: rgba(255,255,255,.2); }
.g-nav-tab.active { background: rgba(240,165,0,.15); border-color: rgba(240,165,0,.55); color: var(--holo); }

.g-wallet { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.g-chip {
  padding: 5px 14px;
  border-radius: 100px; border: 1px solid;
  font-size: .8rem; font-weight: 700;
}
.g-chip.coins   { background: rgba(240,165,0,.1);   border-color: rgba(240,165,0,.3);   color: var(--gold); }
.g-chip.tickets { background: rgba(167,139,250,.1); border-color: rgba(167,139,250,.3); color: #c4b5fd; }
.g-chip.xp      { background: rgba(200,220,255,.1); border-color: rgba(200,220,255,.3); color: var(--holo); }

.g-back-btn {
  padding: 7px 16px;
  background: rgba(255,255,255,.05); color: var(--muted);
  font-size: .8rem; font-weight: 600;
  border-radius: 8px; border: 1px solid var(--border);
  transition: var(--t);
}
.g-back-btn:hover { color: var(--white); background: rgba(255,255,255,.09); }

/* ── XP Strip ────────────────────────────────────────── */
.g-xp-strip {
  background: rgba(14,24,40,.90);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: 8px 24px;
}
.g-xp-inner {
  max-width: 1000px; margin: 0 auto;
  display: flex; align-items: center; gap: 12px;
}
.g-xp-label { font-size: .72rem; font-weight: 700; color: var(--muted); }
.g-xp-track {
  flex: 1; height: 5px;
  background: rgba(255,255,255,.07);
  border-radius: 100px; overflow: hidden;
}
.g-xp-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--holo), var(--gold));
  border-radius: 100px;
  transition: width .8s ease;
  box-shadow: 0 0 8px var(--holo-glow);
}

/* ════════════════════════════════════════════════════
   GAME ROOM
════════════════════════════════════════════════════ */
.g-room { display: flex; flex-direction: column; }
.g-room.hidden { display: none; }

/* ════════════════════════════════════════════════════
   DARK ROOM BACKDROP (where the hologram lives)
════════════════════════════════════════════════════ */
.room-backdrop {
  position: relative;
  height: 560px;
  background:
    radial-gradient(ellipse 55% 65% at 50% 38%, #2a4a82 0%, transparent 68%),
    radial-gradient(ellipse 80% 50% at 50% 100%, rgba(240,165,0,.08) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 50%, #253f70 0%, #1e3258 100%);
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 20px;
}

/* Grid lines on floor */
.room-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 44px 44px;
  pointer-events: none;
}
.room-grid::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, var(--bg) 100%);
}

/* Fade room floor into table green — blends the two scenes */
.room-to-table {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 180px;
  background: linear-gradient(to bottom, transparent 0%, #0a3a14 100%);
  pointer-events: none;
}

/* ════════════════════════════════════════════════════
   HOLOGRAM DATA PANELS
════════════════════════════════════════════════════ */
.ai-dealer-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 40px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 10px 24px;
  position: relative;
  z-index: 2;
}

.holo-panel {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px;
  padding: 18px 20px;
  min-width: 170px;
  width: 190px;
  backdrop-filter: blur(14px);
  position: relative;
  display: flex;
  flex-direction: column;
  box-shadow:
    0 4px 24px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.12);
}

/* Gold corner — top-left */
.holo-panel::before {
  content: '';
  position: absolute;
  top: -1px; left: -1px;
  width: 18px; height: 18px;
  border-top: 2px solid #f0a500;
  border-left: 2px solid #f0a500;
  border-radius: 12px 0 0 0;
  pointer-events: none;
  box-shadow: -2px -2px 8px rgba(240,165,0,.30);
}

/* Gold corner — bottom-right */
.holo-panel::after {
  content: '';
  position: absolute;
  bottom: -1px; right: -1px;
  width: 18px; height: 18px;
  border-bottom: 2px solid #f0a500;
  border-right: 2px solid #f0a500;
  border-radius: 0 0 12px 0;
  pointer-events: none;
  box-shadow: 2px 2px 8px rgba(240,165,0,.25);
}

.panel-title {
  font-family: 'Orbitron', 'Inter', sans-serif;
  font-size: .68rem; font-weight: 700;
  background: linear-gradient(90deg, #f0a500 0%, #ffc94d 60%, #ffffff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: .12em;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid;
  border-image: linear-gradient(90deg, rgba(240,165,0,.5), rgba(255,255,255,.2), rgba(240,165,0,.15)) 1;
}
.panel-row {
  font-family: 'Orbitron', monospace;
  font-size: .62rem; color: rgba(255,255,255,.80);
  margin-bottom: 6px; letter-spacing: .06em;
  display: flex; align-items: center; gap: 6px;
}
.panel-divider { height: 1px; background: rgba(255,255,255,.12); margin: 8px 0; }
.panel-row.blink { animation: panelBlink 1.8s ease infinite; color: var(--holo); }

@keyframes panelBlink {
  0%,100% { opacity: 1; }
  50%      { opacity: .35; }
}

.status-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 6px #00ff88;
  flex-shrink: 0;
  animation: statusPulse 2s ease infinite;
}
@keyframes statusPulse {
  0%,100% { box-shadow: 0 0 6px #00ff88; }
  50%      { box-shadow: 0 0 14px #00ff88, 0 0 24px rgba(0,255,136,.3); }
}

/* ════════════════════════════════════════════════════
   AI HOLOGRAM DEALER (ARIA)
════════════════════════════════════════════════════ */
.ai-dealer {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  gap: 0;
}

/* Speech bubble */
.dealer-speech {
  position: absolute;
  top: -52px;
  left: 50%; transform: translateX(-50%);
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(240,165,0,.40);
  border-radius: 20px;
  padding: 8px 18px;
  white-space: nowrap;
  font-size: .78rem;
  font-weight: 600;
  color: var(--holo);
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 20px rgba(0,0,0,.2), 0 0 16px rgba(240,165,0,.15);
  animation: speechFloat 3s ease-in-out infinite;
  z-index: 5;
}
.dealer-speech .speech-tail {
  position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid rgba(0,212,255,.3);
}

@keyframes speechFloat {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(-5px); }
}

/* SVG hologram wrapper */
/* ── Portrait-based hologram ─────────────────────────── */
.aria-portrait-wrap {
  position: relative;
  width: 240px; height: 380px;
  flex-shrink: 0;
  filter:
    drop-shadow(0 0  8px rgba(0,160,255,1.00))
    drop-shadow(0 0 22px rgba(0,120,255,.75))
    drop-shadow(0 0 55px rgba(0, 80,240,.45))
    drop-shadow(0 0 100px rgba(0, 50,220,.20));
}

/* Holographic base projection disc */
.aria-portrait-wrap::after {
  content: '';
  position: absolute;
  bottom: -14px; left: 50%;
  transform: translateX(-50%);
  width: 130px; height: 16px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(0,160,255,.65) 0%, rgba(0,80,255,.25) 45%, transparent 70%);
  pointer-events: none;
}

.aria-portrait-inner {
  width: 100%; height: 100%;
  position: relative;
  overflow: hidden;
  clip-path: ellipse(115px 185px at 50% 50%);
  /* Electric blue base — screen blend turns this into hologram shadow color */
  background: #0030d8;
}

/* Decorative gradient oval ring — blue/white/yellow */
.aria-portrait-ring {
  position: absolute;
  left: 5px; top: 5px;
  width: 230px; height: 370px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 5;
  background:
    transparent padding-box,
    linear-gradient(135deg,
      #ffd700 0%,
      #00d4ff 28%,
      rgba(255,255,255,.95) 50%,
      #00d4ff 72%,
      #ffd700 100%
    ) border-box;
  border: 3px solid transparent;
  box-shadow:
    0 0 10px rgba(0,212,255,.90),
    0 0 28px rgba(0,150,255,.50),
    0 0 60px rgba(0,100,255,.20);
  animation: ringPulse 3.5s ease-in-out infinite;
}

/* Outer subtle gold halo */
.aria-portrait-ring::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(255,215,0,.22);
  box-shadow: 0 0 10px rgba(255,215,0,.12);
  pointer-events: none;
}

/* Four cardinal tick marks */
.aria-portrait-ring::after {
  content: '';
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  background:
    radial-gradient(circle 3px at 50% 1.5%,   rgba(255,215,0,.9) 0%, transparent 100%),
    radial-gradient(circle 3px at 50% 98.5%,  rgba(255,215,0,.9) 0%, transparent 100%),
    radial-gradient(circle 3px at 1.5%  50%,  rgba(0,212,255,.9) 0%, transparent 100%),
    radial-gradient(circle 3px at 98.5% 50%,  rgba(0,212,255,.9) 0%, transparent 100%);
  pointer-events: none;
}

@keyframes ringPulse {
  0%, 100% {
    box-shadow: 0 0 12px rgba(0,212,255,.55), 0 0 30px rgba(0,212,255,.22);
  }
  50% {
    box-shadow: 0 0 20px rgba(255,215,0,.50), 0 0 50px rgba(0,212,255,.30), 0 0 80px rgba(0,212,255,.12);
  }
}

.aria-portrait {
  width: 110%; height: 110%;        /* slightly oversized — panning room */
  object-fit: cover;
  object-position: top center;
  display: block;
  margin: -5% -5%;                  /* centered in the oversized space */

  /* Grayscale kills all warm tones. Screen blend = dark → transparent, bright → glowing white */
  filter: grayscale(1) contrast(1.40) brightness(1.20);
  mix-blend-mode: screen;

  /* Living motion — drift, breathe, subtle zoom */
  animation: ariaLive 14s ease-in-out infinite;
  transform-origin: center top;
}

/* Ken Burns + drift = she feels alive */
@keyframes ariaLive {
  0%   { transform: scale(1.00) translate(0%,    0%);    }
  8%   { transform: scale(1.01) translate(1.2%,  -1.5%); }
  20%  { transform: scale(1.03) translate(-1.5%, -2.5%); }
  32%  { transform: scale(1.05) translate(2%,    -1%);   }
  44%  { transform: scale(1.04) translate(-1%,   -3.5%); }  /* breathe up */
  56%  { transform: scale(1.06) translate(1.5%,  -2%);   }  /* peak zoom */
  68%  { transform: scale(1.04) translate(-2%,   -1.5%); }
  80%  { transform: scale(1.02) translate(1%,    -2.5%); }
  92%  { transform: scale(1.01) translate(-0.5%, -1%);   }
  100% { transform: scale(1.00) translate(0%,    0%);    }
}

/* Scanlines + edge vignette */
.aria-holo-overlay {
  position: absolute; inset: 0;
  background:
    /* edge vignette — darkens edges to focus center */
    radial-gradient(ellipse 80% 80% at 50% 50%, transparent 50%, rgba(0,10,40,.55) 100%),
    /* scanlines */
    repeating-linear-gradient(
      0deg,
      rgba(80,160,255,.06) 0px, rgba(80,160,255,.06) 1px,
      transparent 1px, transparent 3px
    );
  pointer-events: none;
  animation: scanMove 5s linear infinite;
}
/* Rim light from upper-left — adds depth */
.aria-holo-overlay::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 55% at 30% 12%, rgba(140,210,255,.22) 0%, transparent 65%);
}

/* Glitch slice */
.aria-holo-glitch {
  position: absolute; inset: 0;
  pointer-events: none;
  animation: glitch 9s infinite;
}

/* Placeholder when image missing */
.aria-placeholder {
  width: 100%; height: 100%;
  display: none; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px;
  background: linear-gradient(180deg, rgba(12,28,80,.9) 0%, rgba(4,10,36,.95) 100%);
  color: rgba(80,160,255,.7);
  font-size: .72rem; font-weight: 700; text-align: center;
  letter-spacing: .06em; padding: 20px;
  font-family: 'Orbitron', sans-serif;
}
.aria-placeholder .ph-icon { font-size: 2.8rem; opacity: .5; }

/* Legacy SVG wrapper — keep for fallback */
.holo-svg-wrap {
  position: relative;
  width: 170px; height: 272px;
  animation: holoFloat 3.5s ease-in-out infinite;
  filter:
    drop-shadow(0 0 6px rgba(60,140,255,.95))
    drop-shadow(0 0 18px rgba(40,110,255,.60))
    drop-shadow(0 0 44px rgba(20,80,220,.28))
    drop-shadow(0 0 80px rgba(10,60,200,.14));
}

@keyframes holoFloat {
  0%,100% { transform: translateY(0px); }
  50%      { transform: translateY(-14px); }
}

.holo-svg {
  width: 100%; height: 100%;
  color: var(--holo);
  overflow: visible;
}

/* Gem pulsing inside SVG */
.gem-pulse { animation: gemPulse 2s ease infinite; }
@keyframes gemPulse {
  0%,100% { opacity: 1; r: 4; }
  50%      { opacity: .5; r: 5; }
}

/* ── ARIA: head sway (feels alive) ───────────────────── */
.aria-head-grp {
  animation: ariaHeadSway 7s ease-in-out infinite;
}
@keyframes ariaHeadSway {
  0%,100% { transform: translateX(0px) translateY(0px); }
  28%     { transform: translateX(2.5px) translateY(-1px); }
  60%     { transform: translateX(-2px) translateY(.5px); }
}

/* ── ARIA: eye blink ──────────────────────────────────── */
.aria-lid-l, .aria-lid-r {
  transform-box: fill-box;
  transform-origin: 50% 0%;
  transform: scaleY(0);
  animation: ariaBlink 5s ease-in-out infinite;
}
.aria-lid-r { animation-delay: .055s; }
@keyframes ariaBlink {
  0%,86%,97%,100% { transform: scaleY(0); }
  90%,93%         { transform: scaleY(1); }
}

/* ── ARIA: circuit lines pulse ────────────────────────── */
.aria-cp { animation: cpPulse 2.6s ease-in-out infinite; }
.aria-cp.d2 { animation-delay: .55s; }
.aria-cp.d3 { animation-delay: 1.1s; }
.aria-cp.d4 { animation-delay: 1.65s; }
@keyframes cpPulse {
  0%,100% { opacity: .35; }
  50%     { opacity: 1; }
}

/* ── ARIA: face circuit trace ─────────────────────────── */
.aria-face-trace {
  stroke-dasharray: 28;
  stroke-dashoffset: 28;
  animation: traceIn 3s ease-in-out infinite;
}
@keyframes traceIn {
  0%,100% { stroke-dashoffset: 28; opacity: .2; }
  45%,60% { stroke-dashoffset: 0;  opacity: .55; }
}

/* ── Room atmosphere ──────────────────────────────────── */
.room-ambient-l {
  position: absolute; left: 0; top: 0; bottom: 0; width: 200px;
  background: radial-gradient(ellipse at left center, rgba(120,80,255,.06) 0%, transparent 70%);
  pointer-events: none; z-index: 1;
}
.room-ambient-r {
  position: absolute; right: 0; top: 0; bottom: 0; width: 200px;
  background: radial-gradient(ellipse at right center, rgba(240,165,0,.06) 0%, transparent 70%);
  pointer-events: none; z-index: 1;
}

/* Left side HUD decoration strip */
.room-ambient-l::before {
  content: '';
  position: absolute;
  left: 32px; top: 50%; transform: translateY(-50%);
  width: 1px; height: 55%;
  background: linear-gradient(to bottom, transparent, rgba(240,165,0,.5), rgba(255,255,255,.25), transparent);
}
.room-ambient-l::after {
  content: '';
  position: absolute;
  left: 28px; top: 28%;
  width: 22px; height: 22px;
  border-top: 1px solid rgba(240,165,0,.55);
  border-left: 1px solid rgba(240,165,0,.55);
}

/* Right side HUD decoration strip */
.room-ambient-r::before {
  content: '';
  position: absolute;
  right: 32px; top: 50%; transform: translateY(-50%);
  width: 1px; height: 55%;
  background: linear-gradient(to bottom, transparent, rgba(240,165,0,.5), rgba(255,255,255,.25), transparent);
}
.room-ambient-r::after {
  content: '';
  position: absolute;
  right: 28px; bottom: 28%;
  width: 22px; height: 22px;
  border-bottom: 1px solid rgba(240,165,0,.55);
  border-right: 1px solid rgba(240,165,0,.55);
}
.room-floor-glow {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 500px; height: 70px;
  background: radial-gradient(ellipse, rgba(240,165,0,.20) 0%, transparent 70%);
  pointer-events: none; z-index: 1;
  animation: floorGlowPulse 3.5s ease-in-out infinite;
}
@keyframes floorGlowPulse {
  0%,100% { opacity: .65; }
  50%     { opacity: 1; }
}
.room-top-beam {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 300px; height: 100%;
  background: linear-gradient(to bottom, rgba(240,165,0,.08) 0%, transparent 60%);
  pointer-events: none; z-index: 1;
}

/* Scanlines */
.holo-scanlines {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    0deg,
    rgba(200,220,255,.03) 0px, rgba(200,220,255,.03) 1px,
    transparent 1px, transparent 4px
  );
  pointer-events: none;
  border-radius: 4px;
  animation: scanMove 6s linear infinite;
}
@keyframes scanMove {
  0%   { background-position: 0 0; }
  100% { background-position: 0 100px; }
}

/* Glitch effect */
.holo-glitch {
  position: absolute; inset: 0;
  pointer-events: none;
  animation: glitch 8s infinite;
}
@keyframes glitch {
  0%,90%,100% { clip-path: none; transform: none; opacity: 0; }
  91%  { clip-path: inset(20% 0 60% 0); transform: translateX(-4px); opacity: .4; }
  92%  { clip-path: inset(60% 0 20% 0); transform: translateX(4px);  opacity: .4; }
  93%  { clip-path: none; transform: none; opacity: 0; }
  96%  { clip-path: inset(40% 0 45% 0); transform: translateX(-2px); opacity: .3; }
  97%  { clip-path: none; opacity: 0; }
}

/* Base glow platform */
.holo-base {
  width: 120px; height: 14px;
  position: relative;
  margin-top: -4px;
}
.holo-base-ring {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%,-50%);
  width: 120px; height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(240,165,0,.5);
  box-shadow: 0 0 12px var(--holo-glow), inset 0 0 8px rgba(240,165,0,.15);
  animation: baseGlow 2s ease-in-out infinite;
}
.holo-base-ring.ring-2 {
  width: 80px; height: 8px;
  border-color: rgba(0,212,255,.3);
  animation-delay: .5s;
}
@keyframes baseGlow {
  0%,100% { box-shadow: 0 0 12px var(--holo-glow); }
  50%      { box-shadow: 0 0 24px var(--holo-glow), 0 0 40px rgba(0,212,255,.1); }
}

/* Floating particles (positioned by JS) */
.holo-particles { position: absolute; inset: 0; pointer-events: none; }
.holo-particle {
  position: absolute;
  width: 3px; height: 3px; border-radius: 50%;
  background: var(--holo);
  box-shadow: 0 0 6px var(--holo-glow);
  animation: particleDrift linear infinite;
}
@keyframes particleDrift {
  0%   { transform: translateY(0) translateX(0) scale(1); opacity: .8; }
  50%  { opacity: 1; }
  100% { transform: translateY(-80px) translateX(var(--drift-x, 20px)) scale(0); opacity: 0; }
}

/* ════════════════════════════════════════════════════
   CASINO TABLE — REALISTIC LIVE DEALER VIEW
════════════════════════════════════════════════════ */

/* Table scene pulls UP over the room — Aria stands behind it */
.casino-table-scene {
  perspective: 680px;          /* close perspective = maximum depth effect */
  perspective-origin: 50% 0%;
  overflow: visible;
  position: relative;
  z-index: 10;
  margin-top: -260px;          /* Aria's waist/chest appears above table edge */
  background: transparent;
  padding: 0;
}

.casino-table {
  min-height: 540px;
  width: 160%;                 /* wider than viewport — table extends off screen */
  margin-left: -30%;           /* center the oversized table */

  background:
    /* Overhead lamp — tight bright hot spot, sharp falloff like a real pendant */
    radial-gradient(ellipse 35% 28% at 50% 12%,  rgba(255,255,230,.45) 0%, rgba(220,255,180,.18) 45%, transparent 100%),
    radial-gradient(ellipse 62% 50% at 50% 5%,   rgba(160,240,100,.25) 0%, transparent 52%),
    /* Heavy side shadows — edges dark just like real casino photos */
    radial-gradient(ellipse 68% 100% at  0% 50%, rgba(0,0,0,.72) 0%, transparent 50%),
    radial-gradient(ellipse 68% 100% at 100% 50%, rgba(0,0,0,.72) 0%, transparent 50%),
    /* Bottom near-player edge slightly brighter (closer to lamp) */
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, transparent 30%, rgba(255,255,255,.03) 100%),
    /* VIVID casino green — same as ref photo */
    linear-gradient(180deg, #35e458 0%, #28be45 22%, #1d9434 48%, #136824 72%, #0a4218 88%, #061a0d 100%);

  /* D-shape — very pronounced arc at dealer end */
  border-radius: 50% 50% 0 0 / 22% 22% 0 0;

  /* Wood bumper rail — 4-layer box-shadow follows the D-shape curve */
  box-shadow:
    0 0 0 16px #8b521e,    /* rail face — warm golden oak */
    0 0 0 27px #6a3a10,    /* rail body */
    0 0 0 36px #3e2008,    /* rail back edge */
    0 0 0 42px #1c0e03,    /* shadow gap before floor */
    inset 0 22px 100px rgba(0,0,0,.48),    /* felt top shadow */
    inset 120px 0 240px rgba(0,0,0,.38),   /* left side shadow */
    inset -120px 0 240px rgba(0,0,0,.38),  /* right side shadow */
    0 50px 120px rgba(0,0,0,.98);          /* table underside */

  position: relative;
  overflow: hidden;

  /* STEEP tilt — first-person seated view */
  transform: rotateX(48deg);
  transform-origin: bottom center;
}

/* Directional felt nap — fibers run toward the player */
.casino-table::before {
  content: '';
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(
      175deg,
      transparent 0px,
      rgba(255,255,255,.012) 1px,
      transparent 2px,
      transparent 4px
    );
  pointer-events: none; z-index: 0;
}


/* Dealer bumper rail line — the physical padded cushion arc */
.casino-table::after {
  content: '';
  position: absolute;
  top: 20px; left: 3%; right: 3%;
  height: 5px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(160,110,40,.55) 10%,
    rgba(240,200,80,.95) 30%,
    rgba(255,235,110,1.0) 50%,
    rgba(240,200,80,.95) 70%,
    rgba(160,110,40,.55) 90%,
    transparent 100%
  );
  border-radius: 50%;
  box-shadow:
    0 0 24px rgba(220,170,50,.40),
    0  3px 0 rgba(0,0,0,.70),
    0 -2px 0 rgba(255,255,255,.08);
  z-index: 2;
}

.table-inner {
  max-width: 820px; margin: 0 auto;
  padding: 46px 60px 22px;
  position: relative; z-index: 1;
}

/* "BLACKJACK PAYS 3 TO 2" — printed on the felt */
.table-arc-text {
  text-align: center;
  font-family: 'Georgia', 'Times New Roman', serif;
  font-size: .88rem; font-weight: 700; letter-spacing: .22em;
  color: rgba(255,235,130,.68);
  margin: 6px 0 10px;
  text-transform: uppercase;
  text-shadow:
    0 0 22px rgba(255,215,0,.25),
    0 1px 3px rgba(0,0,0,.90);
}

/* Casino brand watermark — embossed into the felt */
.table-brand {
  text-align: center;
  font-family: 'Georgia', 'Times New Roman', serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .36em;
  color: rgba(255,240,145,.20);
  text-transform: uppercase;
  text-shadow:
    0 1px 0 rgba(255,255,255,.07),
    0 -1px 0 rgba(0,0,0,.5),
    0 0 50px rgba(255,220,50,.06);
  margin: 0 0 6px;
  line-height: 1.3;
  user-select: none;
  pointer-events: none;
  position: relative; z-index: 1;
}
.table-brand-sub {
  display: block;
  font-size: .48rem;
  letter-spacing: .52em;
  color: rgba(255,240,145,.11);
  margin-top: 3px;
  text-shadow:
    0 1px 0 rgba(255,255,255,.05),
    0 -1px 0 rgba(0,0,0,.45);
}

/* ── Betting circles ──────────────────────────── */
.bj-bet-circles {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 88px;
  padding: 6px 0 14px;
  position: relative;
}

/* Curved player-arc line connecting the three spots */
.bj-bet-circles::before {
  content: '';
  position: absolute;
  bottom: 10px; left: 6%; right: 6%;
  height: 70px;
  border-bottom: 2px solid rgba(255,230,100,.28);
  border-radius: 0 0 55% 55%;
  pointer-events: none;
}

.bet-circle {
  width: 70px; height: 70px;
  border-radius: 50%;
  border: 2.5px solid rgba(255,220,80,.38);
  background: radial-gradient(circle at 38% 32%, rgba(255,255,255,.07) 0%, rgba(0,0,0,.55) 100%);
  box-shadow:
    0 0 10px rgba(255,210,50,.12),
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 -1px 0 rgba(0,0,0,.40);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Georgia', serif;
  font-size: .50rem; font-weight: 700; letter-spacing: .08em;
  color: rgba(255,215,0,.38);
  position: relative;
}
.bet-circle::after { content: 'BET'; }

/* Inner ring */
.bet-circle::before {
  content: '';
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  border: 1px solid rgba(255,210,60,.22);
}

/* Active / your spot */
.bet-circle--you {
  border-color: rgba(255,220,80,.85);
  width: 78px; height: 78px;
  box-shadow:
    0 0 22px rgba(255,215,0,.40),
    0 0 50px rgba(255,215,0,.15),
    inset 0 1px 0 rgba(255,255,255,.15),
    inset 0 -1px 0 rgba(0,0,0,.40);
  color: rgba(255,215,0,.85);
}
.bet-circle--you::before { border-color: rgba(255,215,0,.45); }

/* Physical player-side rail — the padded front lip of the table */
.casino-table-player-rail {
  position: absolute;
  bottom: -4px; left: -2%; right: -2%;
  height: 26px;
  background: linear-gradient(180deg,
    #a0641e 0%,
    #7a4812 40%,
    #5a3008 70%,
    #3a1e04 100%
  );
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,.8), 0 2px 0 rgba(255,200,100,.12) inset;
  z-index: 15;
  transform: rotateX(48deg);
  transform-origin: bottom center;
}

/* Card zones — NO boxes, just invisible layout containers */
.bj-zone {
  margin-bottom: 10px;
  background: transparent;
  border: none;
  padding: 8px 16px;
}
.bj-zone-lbl {
  font-family: 'Georgia', serif;
  font-size: .68rem; font-weight: 700; letter-spacing: .16em;
  color: rgba(255,245,180,.45); text-transform: uppercase;
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 8px;
  text-shadow: 0 1px 4px rgba(0,0,0,.9);
}

.score-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 28px; height: 22px; padding: 0 8px;
  background: rgba(255,255,255,.15);
  color: var(--white); font-size: .74rem; font-weight: 800;
  border-radius: 100px;
}
.score-badge.bust { background: rgba(239,68,68,.5); color: #fca5a5; }
.score-badge.bj   { background: rgba(240,165,0,.30);  color: var(--holo); }

/* Card row */
.card-row {
  display: flex; gap: 10px; flex-wrap: wrap;
  min-height: 100px; align-items: center;
}
/* Ghost placeholders — very subtle, like real table card spots */
.card-row:empty::before,
.card-row:empty::after {
  content: '';
  width: 72px; height: 104px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 6px;
  background: rgba(0,0,0,.08);
}

/* Result banner */
.bj-result-banner {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  font-family: 'Poppins', sans-serif;
  font-size: 2.2rem; font-weight: 900;
  padding: 14px 44px; border-radius: 14px;
  pointer-events: none; opacity: 0;
  white-space: nowrap;
}
.bj-result-banner.show { opacity: 1; animation: bannerPop .4s cubic-bezier(.34,1.56,.64,1); }
.bj-result-banner.win  { background: rgba(5,46,35,.95); color: #34d399; border: 2px solid rgba(52,211,153,.4); box-shadow: 0 0 40px rgba(16,185,129,.2); }
.bj-result-banner.lose { background: rgba(69,10,10,.95); color: #f87171; border: 2px solid rgba(248,113,113,.4); box-shadow: 0 0 40px rgba(239,68,68,.2); }
.bj-result-banner.push { background: rgba(23,37,84,.95); color: #93c5fd; border: 2px solid rgba(147,197,253,.4); }
.bj-result-banner.bj   { background: rgba(30,20,5,.95); color: var(--holo); border: 2px solid rgba(240,165,0,.5); box-shadow: 0 0 60px rgba(240,165,0,.25); }
@keyframes bannerPop {
  0%   { transform: translate(-50%,-50%) scale(.55); }
  100% { transform: translate(-50%,-50%) scale(1); }
}

/* ════════════════════════════════════════════════════
   PLAYING CARDS
════════════════════════════════════════════════════ */
.playing-card {
  width: 74px; height: 108px;
  border-radius: 7px;
  background: linear-gradient(170deg, #ffffff 0%, #f7f3ed 100%);
  border: 1px solid rgba(0,0,0,.14);
  box-shadow:
    1px 2px 0 rgba(0,0,0,.22),
    2px 6px 22px rgba(0,0,0,.72),
    0 0 0 0.5px rgba(255,255,255,.85) inset;
  position: relative;
  display: flex; flex-direction: column;
  justify-content: space-between;
  padding: 5px 7px;
  animation: cardDeal .35s cubic-bezier(.34,1.35,.64,1);
  flex-shrink: 0;
}
@keyframes cardDeal {
  0%   { transform: translateY(-65px) rotate(-12deg) scale(.62); opacity: 0; }
  100% { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; }
}

.playing-card.red   { color: #c0392b; }
.playing-card.black { color: #0a0a1a; }

.card-top, .card-bot {
  display: flex; flex-direction: column; align-items: flex-start;
  font-size: .84rem; font-weight: 900; line-height: 1;
}
.card-bot { align-items: flex-end; transform: rotate(180deg); }
.card-suit-sm { font-size: .62rem; margin-top: 1px; }

.card-center {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2rem; line-height: 1;
  user-select: none;
}

.playing-card.back {
  background: linear-gradient(160deg, #18006e 0%, #2a0d88 45%, #180065 100%);
  border-color: rgba(100,70,255,.2);
  color: transparent;
}
.playing-card.back::before {
  content: '';
  position: absolute; inset: 5px; border-radius: 4px;
  border: 1.5px solid rgba(130,90,255,.42);
  background:
    repeating-linear-gradient(45deg,
      rgba(140,100,255,.11) 0px, rgba(140,100,255,.11) 2px,
      transparent 2px, transparent 7px
    ),
    repeating-linear-gradient(-45deg,
      rgba(140,100,255,.11) 0px, rgba(140,100,255,.11) 2px,
      transparent 2px, transparent 7px
    ),
    linear-gradient(160deg, rgba(255,255,255,.05) 0%, transparent 100%);
}
.playing-card.back::after {
  content: '♦';
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1.9rem;
  color: rgba(160,110,255,.22);
  line-height: 1;
  user-select: none;
}

/* ════════════════════════════════════════════════════
   CONTROLS DOCK
════════════════════════════════════════════════════ */
.bj-dock {
  background: linear-gradient(180deg, #1e3258 0%, #192a4a 100%);
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 20px 40px 16px;
  max-width: 100%;
}

.dock-phase.hidden { display: none; }

.dock-label {
  text-align: center;
  font-size: .84rem; color: var(--muted);
  margin-bottom: 14px;
}
.dock-label strong { color: var(--white); }

/* Casino chips */
.chip-tray {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  margin-bottom: 16px;
}

.casino-chip {
  width: 56px; height: 56px; border-radius: 50%;
  font-size: .78rem; font-weight: 900; color: var(--white);
  border: none; cursor: pointer;
  outline: none;
  display: flex; align-items: center; justify-content: center;
  position: relative; z-index: 0;
  box-shadow:
    0 5px 0 rgba(0,0,0,.52),
    0 8px 22px rgba(0,0,0,.70),
    inset 0 1px 0 rgba(255,255,255,.22);
  transition: transform .15s, box-shadow .15s;
  text-shadow: 0 1px 4px rgba(0,0,0,.9);
}
.casino-chip:hover {
  transform: translateY(-5px) scale(1.1);
  box-shadow: 0 10px 0 rgba(0,0,0,.45), 0 14px 30px rgba(0,0,0,.70), inset 0 1px 0 rgba(255,255,255,.22);
}
.casino-chip.active { transform: translateY(-7px) scale(1.14); }

/* Real chip design: conic edge stripes + radial face gradient + shine */
.casino-chip.red {
  background:
    radial-gradient(ellipse 60% 52% at 38% 22%, rgba(255,255,255,.45) 0%, transparent 100%),
    radial-gradient(circle at center, transparent 70%, rgba(0,0,0,.45) 71%, rgba(0,0,0,.45) 76%, transparent 77%),
    radial-gradient(circle at center, #e74c3c 0%, #c0392b 58%, #922b21 69%, transparent 70%),
    conic-gradient(
      white 0deg 12deg, #7b241c 12deg 45deg, white 45deg 57deg, #7b241c 57deg 90deg,
      white 90deg 102deg, #7b241c 102deg 135deg, white 135deg 147deg, #7b241c 147deg 180deg,
      white 180deg 192deg, #7b241c 192deg 225deg, white 225deg 237deg, #7b241c 237deg 270deg,
      white 270deg 282deg, #7b241c 282deg 315deg, white 315deg 327deg, #7b241c 327deg 360deg
    );
  box-shadow: 0 5px 0 rgba(120,10,10,.55), 0 8px 22px rgba(0,0,0,.70), inset 0 1px 0 rgba(255,255,255,.22);
}
.casino-chip.blue {
  background:
    radial-gradient(ellipse 60% 52% at 38% 22%, rgba(255,255,255,.45) 0%, transparent 100%),
    radial-gradient(circle at center, transparent 70%, rgba(0,0,0,.45) 71%, rgba(0,0,0,.45) 76%, transparent 77%),
    radial-gradient(circle at center, #3498db 0%, #2171ae 58%, #1a5276 69%, transparent 70%),
    conic-gradient(
      white 0deg 12deg, #154360 12deg 45deg, white 45deg 57deg, #154360 57deg 90deg,
      white 90deg 102deg, #154360 102deg 135deg, white 135deg 147deg, #154360 147deg 180deg,
      white 180deg 192deg, #154360 192deg 225deg, white 225deg 237deg, #154360 237deg 270deg,
      white 270deg 282deg, #154360 282deg 315deg, white 315deg 327deg, #154360 327deg 360deg
    );
  box-shadow: 0 5px 0 rgba(10,50,130,.55), 0 8px 22px rgba(0,0,0,.70), inset 0 1px 0 rgba(255,255,255,.22);
}
.casino-chip.green {
  background:
    radial-gradient(ellipse 60% 52% at 38% 22%, rgba(255,255,255,.45) 0%, transparent 100%),
    radial-gradient(circle at center, transparent 70%, rgba(0,0,0,.45) 71%, rgba(0,0,0,.45) 76%, transparent 77%),
    radial-gradient(circle at center, #27ae60 0%, #1e8449 58%, #145a32 69%, transparent 70%),
    conic-gradient(
      white 0deg 12deg, #0b5226 12deg 45deg, white 45deg 57deg, #0b5226 57deg 90deg,
      white 90deg 102deg, #0b5226 102deg 135deg, white 135deg 147deg, #0b5226 147deg 180deg,
      white 180deg 192deg, #0b5226 192deg 225deg, white 225deg 237deg, #0b5226 237deg 270deg,
      white 270deg 282deg, #0b5226 282deg 315deg, white 315deg 327deg, #0b5226 327deg 360deg
    );
  box-shadow: 0 5px 0 rgba(10,80,30,.55), 0 8px 22px rgba(0,0,0,.70), inset 0 1px 0 rgba(255,255,255,.22);
}
.casino-chip.black {
  background:
    radial-gradient(ellipse 60% 52% at 38% 22%, rgba(255,255,255,.35) 0%, transparent 100%),
    radial-gradient(circle at center, transparent 70%, rgba(0,0,0,.5) 71%, rgba(0,0,0,.5) 76%, transparent 77%),
    radial-gradient(circle at center, #666 0%, #3a3a3a 58%, #111 69%, transparent 70%),
    conic-gradient(
      rgba(200,200,200,.9) 0deg 12deg, #1a1a1a 12deg 45deg, rgba(200,200,200,.9) 45deg 57deg, #1a1a1a 57deg 90deg,
      rgba(200,200,200,.9) 90deg 102deg, #1a1a1a 102deg 135deg, rgba(200,200,200,.9) 135deg 147deg, #1a1a1a 147deg 180deg,
      rgba(200,200,200,.9) 180deg 192deg, #1a1a1a 192deg 225deg, rgba(200,200,200,.9) 225deg 237deg, #1a1a1a 237deg 270deg,
      rgba(200,200,200,.9) 270deg 282deg, #1a1a1a 282deg 315deg, rgba(200,200,200,.9) 315deg 327deg, #1a1a1a 327deg 360deg
    );
  box-shadow: 0 5px 0 rgba(0,0,0,.7), 0 8px 22px rgba(0,0,0,.80), inset 0 1px 0 rgba(255,255,255,.18);
}
.casino-chip.purple {
  background:
    radial-gradient(ellipse 60% 52% at 38% 22%, rgba(255,255,255,.45) 0%, transparent 100%),
    radial-gradient(circle at center, transparent 70%, rgba(0,0,0,.45) 71%, rgba(0,0,0,.45) 76%, transparent 77%),
    radial-gradient(circle at center, #9b59b6 0%, #7d3c98 58%, #5b2c6f 69%, transparent 70%),
    conic-gradient(
      white 0deg 12deg, #4a235a 12deg 45deg, white 45deg 57deg, #4a235a 57deg 90deg,
      white 90deg 102deg, #4a235a 102deg 135deg, white 135deg 147deg, #4a235a 147deg 180deg,
      white 180deg 192deg, #4a235a 192deg 225deg, white 225deg 237deg, #4a235a 237deg 270deg,
      white 270deg 282deg, #4a235a 282deg 315deg, white 315deg 327deg, #4a235a 327deg 360deg
    );
  box-shadow: 0 5px 0 rgba(60,10,80,.55), 0 8px 22px rgba(0,0,0,.70), inset 0 1px 0 rgba(255,255,255,.22);
}
.casino-chip.gold {
  background:
    radial-gradient(ellipse 60% 52% at 38% 22%, rgba(255,255,255,.60) 0%, transparent 100%),
    radial-gradient(circle at center, transparent 70%, rgba(0,0,0,.38) 71%, rgba(0,0,0,.38) 76%, transparent 77%),
    radial-gradient(circle at center, #f0c030 0%, #d4a017 58%, #9a6000 69%, transparent 70%),
    conic-gradient(
      rgba(255,255,210,.95) 0deg 12deg, #7d5000 12deg 45deg, rgba(255,255,210,.95) 45deg 57deg, #7d5000 57deg 90deg,
      rgba(255,255,210,.95) 90deg 102deg, #7d5000 102deg 135deg, rgba(255,255,210,.95) 135deg 147deg, #7d5000 147deg 180deg,
      rgba(255,255,210,.95) 180deg 192deg, #7d5000 192deg 225deg, rgba(255,255,210,.95) 225deg 237deg, #7d5000 237deg 270deg,
      rgba(255,255,210,.95) 270deg 282deg, #7d5000 282deg 315deg, rgba(255,255,210,.95) 315deg 327deg, #7d5000 327deg 360deg
    );
  color: #1a1000;
  text-shadow: 0 1px 0 rgba(255,220,50,.5);
  box-shadow: 0 5px 0 rgba(100,60,0,.55), 0 8px 22px rgba(0,0,0,.70), inset 0 1px 0 rgba(255,255,255,.3);
}

/* Bet display + deal row */
.bet-row {
  display: flex; align-items: center; justify-content: center; gap: 16px;
}

.bet-display {
  display: flex; flex-direction: column; align-items: center;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px; padding: 10px 24px;
  min-width: 96px;
}
.bet-lbl { font-family: 'Orbitron', sans-serif; font-size: .6rem; font-weight: 700; letter-spacing: .1em; color: var(--muted); margin-bottom: 2px; }
.bet-val { font-family: 'Poppins', sans-serif; font-size: 1.55rem; font-weight: 900; color: var(--gold); line-height: 1; }

.btn-deal {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 32px;
  background: linear-gradient(135deg, var(--gold) 0%, #c27c00 100%);
  color: #0f0800; font-size: .92rem; font-weight: 800;
  border: none; border-radius: 10px; cursor: pointer;
  box-shadow: 0 4px 20px var(--gold-glow);
  transition: var(--t);
}
.btn-deal:hover { transform: translateY(-2px); box-shadow: 0 8px 28px var(--gold-glow); }

/* Play buttons */
.play-btns { display: flex; gap: 12px; justify-content: center; }

.btn-hit, .btn-stand, .btn-double {
  padding: 13px 28px;
  font-size: .9rem; font-weight: 700;
  border: none; border-radius: 10px; cursor: pointer;
  transition: var(--t);
}
.btn-hit    { background: linear-gradient(135deg, #10b981, #059669); color: var(--white); box-shadow: 0 4px 14px rgba(16,185,129,.3); }
.btn-stand  { background: linear-gradient(135deg, #ef4444, #dc2626); color: var(--white); box-shadow: 0 4px 14px rgba(239,68,68,.3); }
.btn-double { background: linear-gradient(135deg, #8b5cf6, #7c3aed); color: var(--white); box-shadow: 0 4px 14px rgba(139,92,246,.3); }
.btn-hit:hover    { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(16,185,129,.45); }
.btn-stand:hover  { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(239,68,68,.45); }
.btn-double:hover { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(139,92,246,.45); }

.result-msg { text-align: center; margin-bottom: 16px; font-size: 1.05rem; font-weight: 700; color: var(--white); }

.bj-info-strip {
  display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;
  padding-top: 12px; margin-top: 8px;
  border-top: 1px solid var(--border);
  font-size: .76rem; color: var(--muted);
}
.bj-info-strip strong { color: rgba(255,255,255,.7); }

/* ════════════════════════════════════════════════════
   RPS GAME
════════════════════════════════════════════════════ */
.rps-table .table-inner { padding: 28px 40px 24px; }

.rps-arena {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 160px;
}

.rps-side {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  flex: 1;
}
.rps-side-label {
  font-size: .68rem; font-weight: 800; letter-spacing: .14em;
  color: rgba(255,255,255,.3); text-transform: uppercase;
}

.rps-hand-circle {
  width: 100px; height: 100px; border-radius: 50%;
  background: rgba(0,0,0,.3);
  border: 2px solid rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  transition: box-shadow .3s, border-color .3s;
}
.rps-hand-circle.player { border-color: rgba(240,180,41,.2); }
.rps-hand-circle.glow-win  { box-shadow: 0 0 30px rgba(16,185,129,.6); border-color: rgba(16,185,129,.6); }
.rps-hand-circle.glow-lose { box-shadow: 0 0 30px rgba(239,68,68,.5); border-color: rgba(239,68,68,.5); }
.rps-hand-circle.glow-draw { box-shadow: 0 0 30px rgba(96,165,250,.5); border-color: rgba(96,165,250,.5); }

.rps-icon { font-size: 3rem; display: block; transition: transform .3s; }
.rps-icon.shake { animation: iconShake .4s ease; }
@keyframes iconShake {
  0%,100% { transform: translateX(0) rotate(0); }
  20% { transform: translateX(-8px) rotate(-10deg); }
  40% { transform: translateX(8px) rotate(10deg); }
  60% { transform: translateX(-5px) rotate(-5deg); }
  80% { transform: translateX(5px) rotate(5deg); }
}

.rps-name { font-size: .82rem; font-weight: 700; color: rgba(255,255,255,.5); min-height: 20px; }

.rps-center { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.rps-vs { font-family: 'Poppins', sans-serif; font-size: 1.2rem; font-weight: 900; color: rgba(255,255,255,.1); letter-spacing: .1em; }

.rps-result-pill {
  font-family: 'Poppins', sans-serif; font-size: 1.1rem; font-weight: 900;
  padding: 8px 22px; border-radius: 100px;
  opacity: 0; transition: opacity .3s;
  white-space: nowrap;
}
.rps-result-pill.show { opacity: 1; animation: pillPop .35s cubic-bezier(.34,1.56,.64,1); }
.rps-result-pill.win  { background: rgba(5,46,35,.9); color: #34d399; border: 1px solid rgba(52,211,153,.3); }
.rps-result-pill.lose { background: rgba(69,10,10,.9); color: #f87171; border: 1px solid rgba(248,113,113,.3); }
.rps-result-pill.draw { background: rgba(23,37,84,.9); color: #93c5fd; border: 1px solid rgba(147,197,253,.3); }
@keyframes pillPop {
  0%   { transform: scale(.4); }
  100% { transform: scale(1); }
}

/* RPS choice buttons */
.rps-choices {
  display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
}

.rps-btn {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 20px 24px;
  background: rgba(255,255,255,.03);
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: 16px; cursor: pointer;
  color: var(--white); min-width: 110px;
  transition: var(--t);
}
.rps-btn:hover { border-color: rgba(240,180,41,.4); transform: translateY(-5px); box-shadow: 0 10px 28px rgba(0,0,0,.4); background: rgba(255,255,255,.06); }
.rps-btn:active { transform: translateY(-2px); }

.rps-emoji  { font-size: 2.6rem; transition: transform .2s; }
.rps-btn:hover .rps-emoji { transform: scale(1.2); }
.rps-label  { font-size: .82rem; font-weight: 700; color: rgba(255,255,255,.7); }
.rps-reward { font-size: .7rem; font-weight: 700; color: var(--gold); background: rgba(240,180,41,.1); padding: 2px 8px; border-radius: 100px; }

/* ── Coin pop ────────────────────────────────────────── */
@keyframes coinFloat {
  0%   { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-70px) scale(1.3); opacity: 0; }
}
.coin-pop {
  position: fixed; z-index: 5000; pointer-events: none;
  font-family: 'Poppins', sans-serif; font-size: 1rem; font-weight: 900;
  color: var(--gold); text-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: coinFloat .9s ease forwards;
}

/* ── Screen shake ─────────────────────────────────────── */
@keyframes screenShake {
  0%,100% { transform: translate(0); }
  15%     { transform: translate(-6px, 3px); }
  30%     { transform: translate(6px, -3px); }
  45%     { transform: translate(-4px, 4px); }
  60%     { transform: translate(4px, -2px); }
  75%     { transform: translate(-3px, 2px); }
}
body.shake { animation: screenShake .45s ease; }

/* ── Responsive ──────────────────────────────────────── */
@media (max-width: 720px) {
  .holo-panel { display: none; }
  .ai-dealer-wrap { gap: 0; }
  .room-backdrop { height: 260px; }
  .bj-dock { padding: 16px 16px 12px; }
  .table-inner { padding: 18px 16px 16px; }
  .play-btns { flex-wrap: wrap; }
  .btn-hit, .btn-stand, .btn-double { padding: 12px 20px; }
  .g-nav { padding: 0 14px; gap: 10px; }
  .g-chip.tickets { display: none; }
}
