* { box-sizing: border-box; }
:root {
  --bg: #07111d;
  --panel: rgba(13, 22, 35, .92);
  --panel2: rgba(18, 31, 48, .94);
  --line: rgba(255,255,255,.11);
  --gold: #f6c75a;
  --green: #16c784;
  --red: #f04444;
  --text: #eef5ff;
  --muted: #91a4b8;
}
body {
  margin: 0;
  color: var(--text);
  font-family: Inter, Arial, sans-serif;
  background: #050914;
  min-height: 100vh;
}
.casino-bg {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 20% 10%, rgba(30, 144, 255, .25), transparent 35%),
    radial-gradient(circle at 80% 0%, rgba(246, 199, 90, .17), transparent 32%),
    linear-gradient(135deg, #050914, #07111d 50%, #02040a);
  z-index: -2;
}
.casino-bg:after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black, transparent 85%);
}
.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 76px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  background: rgba(3, 7, 14, .82);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.brand-wrap { display: flex; gap: 12px; align-items: center; }
.logo-chip {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #1b1202;
  font-size: 24px;
  font-weight: 1000;
  background: radial-gradient(circle at 30% 20%, #fff0b9, #f6c75a 48%, #b77a12);
  box-shadow: 0 0 30px rgba(246,199,90,.22);
}
.brand { font-size: 22px; font-weight: 900; letter-spacing: -.4px; }
.sub { color: var(--muted); font-size: 12px; margin-top: 3px; }
.top-actions { display: flex; align-items: center; gap: 9px; }
.balance, .hero-balance {
  font-weight: 900;
  color: #081018;
  background: linear-gradient(180deg, #ffe7a3, #d99a1c);
  border-radius: 14px;
  padding: 11px 14px;
  box-shadow: 0 10px 22px rgba(0,0,0,.34);
}
.casino-layout {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  width: min(1320px, calc(100vw - 22px));
  margin: 18px auto 70px;
  gap: 16px;
}
.sidebar {
  position: sticky;
  top: 94px;
  height: fit-content;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 10px;
  box-shadow: 0 22px 50px rgba(0,0,0,.24);
}
.side-link {
  width: 100%;
  display: block;
  border: 0;
  border-radius: 14px;
  margin: 4px 0;
  padding: 13px 14px;
  color: var(--text);
  background: transparent;
  text-align: left;
  font-weight: 800;
}
.side-link.active, .side-link:hover { background: rgba(255,255,255,.08); }
.content { min-width: 0; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 18px;
  padding: 26px;
  border-radius: 26px;
  border: 1px solid var(--line);
  background:
    linear-gradient(135deg, rgba(20,37,61,.94), rgba(8,13,23,.92)),
    radial-gradient(circle at right, rgba(246,199,90,.2), transparent 34%);
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
}
.eyebrow { color: var(--gold); font-weight: 900; text-transform: uppercase; letter-spacing: 1.8px; font-size: 12px; }
.hero h1 { font-size: clamp(32px, 6vw, 62px); line-height: .98; margin: 9px 0; letter-spacing: -2px; }
.hero p { color: #c8d6e8; max-width: 720px; line-height: 1.55; }
.hero-card {
  background: rgba(0,0,0,.24);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 18px;
  align-self: stretch;
  display: grid;
  align-content: center;
  gap: 12px;
}
.mini-title { color: var(--muted); font-size: 13px; font-weight: 800; }
.hero-balance { font-size: 36px; text-align: center; }
.page { display: none; margin-top: 16px; }
.active-page { display: block; }
.section-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: end;
  margin: 8px 0 14px;
}
.section-head h2 { margin: 0; font-size: 30px; }
.section-head span { color: var(--muted); }
.games-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.game-card, .panel, .modal-card {
  background: linear-gradient(180deg, var(--panel2), rgba(7,12,20,.96));
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 22px 50px rgba(0,0,0,.22);
}
.game-card {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.game-top { display: flex; justify-content: space-between; gap: 12px; }
.game-top h3 { margin: 0; font-size: 25px; }
.game-top p { margin: 6px 0 0; color: var(--muted); line-height: 1.35; }
.badge {
  height: fit-content;
  background: rgba(255,255,255,.08);
  color: #d8e6f5;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 900;
}
.badge.hot { background: rgba(246,199,90,.18); color: var(--gold); }
button {
  border: 0;
  border-radius: 14px;
  padding: 12px 14px;
  color: #07111d;
  background: linear-gradient(180deg, #ffe08c, #d99517);
  font-weight: 900;
  cursor: pointer;
}
button:active { transform: translateY(1px); }
.ghost-btn {
  background: rgba(255,255,255,.08);
  color: var(--text);
  border: 1px solid var(--line);
}
.gold-btn { background: linear-gradient(180deg, #ffe08c, #d99517); }
.wide { width: 100%; }
input, select {
  min-width: 0;
  width: 100%;
  border: 1px solid rgba(255,255,255,.13);
  background: rgba(255,255,255,.07);
  color: var(--text);
  border-radius: 14px;
  padding: 12px 13px;
  outline: none;
}
.bet-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
  margin-top: 14px;
}
.bet-row button { min-width: 82px; }
.plinko-card { grid-row: span 2; }
.plinko-board {
  position: relative;
  height: 420px;
  margin: 18px 0 6px;
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.1);
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 10%, rgba(246,199,90,.12), transparent 25%),
    linear-gradient(180deg, #111d2f, #07101b);
}
.peg-row {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 34px;
}
.peg-row i {
  width: 10px;
  height: 10px;
  display: block;
  border-radius: 50%;
  background: #d9e8ff;
  box-shadow: 0 0 16px rgba(217,232,255,.6);
}
.peg-row.one { top: 70px; }
.peg-row.two { top: 125px; }
.peg-row.three { top: 180px; }
.peg-row.four { top: 235px; }
.peg-row.five { top: 290px; }
.ball {
  position: absolute;
  top: 28px;
  left: 50%;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 25%, #fff5bc, #f6c75a 52%, #b87910);
  box-shadow: 0 0 25px rgba(246,199,90,.55);
  transform: translateX(-50%);
  transition: transform .9s cubic-bezier(.2,.8,.2,1), top .9s cubic-bezier(.2,.8,.2,1);
}
.multipliers {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
.multipliers b {
  text-align: center;
  border-radius: 10px;
  padding: 9px 3px;
  background: rgba(22,199,132,.14);
  color: #75ffc5;
  font-size: 12px;
}
.slots-machine {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  background: linear-gradient(180deg, #111827, #050914);
  border-radius: 22px;
  padding: 18px;
  margin-top: 30px;
  border: 1px solid var(--line);
}
.reel {
  height: 96px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: #f8fafc;
  color: #0b1220;
  font-size: 42px;
  font-weight: 1000;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.12);
}
.reel.spin { animation: pop .35s ease; }
@keyframes pop { 50% { transform: scale(1.08); } }
.dice-stage { margin: 30px 0 18px; }
.dice-cube {
  width: 120px;
  height: 120px;
  margin: auto;
  display: grid;
  place-items: center;
  border-radius: 26px;
  background: linear-gradient(145deg, #f8fafc, #cbd5e1);
  color: #0b1220;
  font-size: 38px;
  font-weight: 1000;
  box-shadow: 0 18px 40px rgba(0,0,0,.32);
}
.meter {
  height: 12px;
  background: rgba(255,255,255,.08);
  border-radius: 99px;
  overflow: hidden;
  margin-top: 18px;
}
.meter span {
  display: block;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, var(--red), var(--gold), var(--green));
}
.roulette-wheel {
  width: 190px;
  height: 190px;
  border-radius: 50%;
  margin: 22px auto;
  background: conic-gradient(#151515 0 20deg, #b91c1c 20deg 40deg, #151515 40deg 60deg, #b91c1c 60deg 80deg, #047857 80deg 100deg, #151515 100deg 120deg, #b91c1c 120deg 140deg, #151515 140deg 160deg, #b91c1c 160deg 180deg, #151515 180deg 200deg, #b91c1c 200deg 220deg, #151515 220deg 240deg, #b91c1c 240deg 260deg, #151515 260deg 280deg, #b91c1c 280deg 300deg, #151515 300deg 320deg, #b91c1c 320deg 340deg, #151515 340deg 360deg);
  border: 10px solid #cf9f38;
  display: grid;
  place-items: center;
  transition: transform 1s ease;
}
.wheel-center {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f8fafc;
  color: #111827;
  font-size: 26px;
  font-weight: 1000;
}
.cards-table {
  background: radial-gradient(circle, rgba(22,199,132,.22), rgba(4,80,55,.14));
  border: 1px solid rgba(22,199,132,.24);
  border-radius: 22px;
  padding: 16px;
  margin-top: 18px;
}
.hand { margin: 10px 0; }
.hand span { color: var(--muted); font-size: 13px; font-weight: 800; }
.cards { display: flex; gap: 8px; margin-top: 8px; }
.cards b {
  width: 50px;
  height: 70px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #f8fafc;
  color: #0f172a;
  box-shadow: 0 10px 18px rgba(0,0,0,.25);
}
.mines-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
  margin: 22px 0;
}
.mines-grid button {
  height: 58px;
  background: rgba(255,255,255,.08);
  color: var(--text);
  border: 1px solid var(--line);
}
.mines-grid button.reveal { background: rgba(22,199,132,.25); }
.mines-grid button.mine { background: rgba(240,68,68,.3); }
.panel { padding: 24px; }
.panel h2 { margin-top: 0; font-size: 30px; }
.panel p { color: var(--muted); }
.packages {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.custom-buy, .admin-tools {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 12px;
}
.invoice-box, .invoice-list > div {
  margin-top: 12px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--line);
  word-break: break-word;
}
pre {
  white-space: pre-wrap;
  overflow: auto;
  max-height: 440px;
  background: rgba(0,0,0,.25);
  border-radius: 16px;
  padding: 14px;
}
.modal {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: none;
  place-items: center;
  padding: 18px;
  background: rgba(0,0,0,.66);
  backdrop-filter: blur(10px);
}
.modal.show { display: grid; }
.modal-card {
  width: min(760px, 100%);
  position: relative;
}
.close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: rgba(255,255,255,.1);
  color: var(--text);
  width: 38px;
  height: 38px;
  padding: 0;
}
.auth-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.code-box {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.toast {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%) translateY(20px);
  opacity: 0;
  z-index: 90;
  background: #101827;
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 16px;
  box-shadow: 0 20px 50px rgba(0,0,0,.4);
  transition: .25s ease;
  max-width: min(560px, calc(100vw - 28px));
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (max-width: 980px) {
  .casino-layout { grid-template-columns: 1fr; }
  .sidebar {
    position: static;
    display: flex;
    overflow-x: auto;
  }
  .side-link { min-width: 120px; text-align: center; }
  .hero { grid-template-columns: 1fr; }
  .games-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .topbar { height: auto; align-items: flex-start; flex-direction: column; }
  .top-actions { width: 100%; flex-wrap: wrap; }
  .balance { flex: 1; text-align: center; }
  .packages, .auth-grid, .custom-buy, .admin-tools { grid-template-columns: 1fr; }
  .bet-row { grid-template-columns: 1fr; }
}

.admin-clean {
  font-family: inherit;
  color: var(--text);
}

.admin-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 14px 0 20px;
}

.admin-stat-grid div,
.admin-item,
.admin-empty {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  padding: 13px;
}

.admin-stat-grid b {
  display: block;
  font-size: 22px;
  color: var(--gold);
}

.admin-stat-grid span,
.admin-item span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 4px;
  word-break: break-word;
}

.admin-clean h3 {
  margin: 20px 0 10px;
}

.admin-list {
  display: grid;
  gap: 8px;
}

.admin-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.admin-item > div:last-child {
  text-align: right;
}

#adminBox {
  background: transparent;
  padding: 0;
  max-height: none;
  white-space: normal;
}

@media (max-width: 620px) {
  .admin-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-item {
    display: block;
  }

  .admin-item > div:last-child {
    text-align: left;
    margin-top: 8px;
  }
}

.small-admin-btn {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 9px 10px;
  border-radius: 10px;
  font-size: 12px;
}

.small-admin-btn.danger {
  background: linear-gradient(180deg, #ff8a8a, #d02f2f);
  color: white;
}

.admin-ticket {
  align-items: stretch;
}

.admin-ticket span {
  max-width: 100%;
}

.disabled-account-chip {
  cursor: default;
  pointer-events: none;
  opacity: 0.95;
}

/* casino lobby showcase visuals */
.realCasinoLobby{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:16px;
  margin-top:14px;
}
.casinoShowTile{
  position:relative;
  min-height:300px;
  overflow:hidden;
  border:1px solid rgba(245,190,75,.28);
  border-radius:22px;
  padding:16px;
  text-align:left;
  color:white;
  background:
    radial-gradient(circle at 50% 20%,rgba(245,190,75,.24),transparent 32%),
    linear-gradient(145deg,#172033,#080d16);
  box-shadow:0 22px 55px rgba(0,0,0,.45);
}
.casinoShowTile:active{transform:scale(.99)}
.casinoShowTile h3{
  position:relative;
  z-index:2;
  margin:12px 0 6px;
  font-size:25px;
}
.casinoShowTile p{
  position:relative;
  z-index:2;
  margin:0 0 14px;
  color:rgba(255,255,255,.72);
}
.casinoShowTile strong{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  display:block;
  text-align:center;
  padding:12px;
  border-radius:14px;
  background:linear-gradient(180deg,#ffe08a,#e7a928);
  color:#14100a;
  box-shadow:0 10px 22px rgba(231,169,40,.35);
}
.casinoTileTag{
  position:absolute;
  top:14px;
  right:14px;
  z-index:3;
  padding:7px 9px;
  border-radius:999px;
  background:rgba(255,224,138,.16);
  color:#ffe08a;
  border:1px solid rgba(255,224,138,.28);
  font-size:11px;
  font-weight:900;
}
.casinoTileArt{
  height:150px;
  margin-top:28px;
  position:relative;
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.08);
}
.casino-plinko .casinoTileArt span,
.casino-plinko .casinoTileArt i,
.casino-plinko .casinoTileArt b{
  position:absolute;
  border-radius:50%;
  background:#ffe08a;
  box-shadow:0 0 22px #ffe08a;
}
.casino-plinko .casinoTileArt span{width:24px;height:24px;left:50%;top:20px}
.casino-plinko .casinoTileArt i{width:10px;height:10px;left:42%;top:78px}
.casino-plinko .casinoTileArt b{width:10px;height:10px;left:58%;top:108px}
.casino-slots .casinoTileArt span,
.casino-slots .casinoTileArt i,
.casino-slots .casinoTileArt b{
  position:absolute;
  top:38px;
  width:28%;
  height:72px;
  border-radius:14px;
  background:#f6f7fb;
  color:#0d1420;
  display:grid;
  place-items:center;
  font-size:30px;
  font-weight:900;
}
.casino-slots .casinoTileArt span{left:5%}
.casino-slots .casinoTileArt span:after{content:"7"}
.casino-slots .casinoTileArt i{left:36%;font-style:normal}
.casino-slots .casinoTileArt i:after{content:"◆"}
.casino-slots .casinoTileArt b{left:67%}
.casino-slots .casinoTileArt b:after{content:"★"}
.casino-dice .casinoTileArt span{
  position:absolute;
  left:50%;
  top:34px;
  width:78px;
  height:78px;
  transform:translateX(-50%) rotate(8deg);
  border-radius:18px;
  background:#f6f7fb;
  box-shadow:0 16px 30px rgba(0,0,0,.35);
}
.casino-dice .casinoTileArt span:after{
  content:"● ● ●";
  color:#111827;
  display:grid;
  place-items:center;
  height:100%;
}
.casinoBackBtn{
  margin:0 0 14px;
  padding:11px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:#151d2b;
  color:white;
  font-weight:800;
}
.casinoGameStage .game-card{
  margin-top:0;
}

button.bet-locked,
button:disabled {
  opacity: 0.55;
  pointer-events: none;
  filter: grayscale(0.25);
}

#plinkoBall {
  transition: top 1.15s ease-in, transform 1.15s ease-in;
}

/* real casino game visuals */
button.bet-locked,
button:disabled {
  opacity: .55;
  pointer-events: none;
  filter: grayscale(.2);
}

.roulette-wheel {
  position: relative;
  width: 220px;
  height: 220px;
  margin: 24px auto;
  border-radius: 50%;
  border: 12px solid #d7a83f;
  background:
    radial-gradient(circle at center, #101827 0 22%, transparent 23%),
    conic-gradient(
      #15803d 0deg 10deg,
      #b91c1c 10deg 30deg,
      #111827 30deg 50deg,
      #b91c1c 50deg 70deg,
      #111827 70deg 90deg,
      #b91c1c 90deg 110deg,
      #111827 110deg 130deg,
      #b91c1c 130deg 150deg,
      #111827 150deg 170deg,
      #b91c1c 170deg 190deg,
      #111827 190deg 210deg,
      #b91c1c 210deg 230deg,
      #111827 230deg 250deg,
      #b91c1c 250deg 270deg,
      #111827 270deg 290deg,
      #b91c1c 290deg 310deg,
      #111827 310deg 330deg,
      #b91c1c 330deg 360deg
    );
  box-shadow:
    inset 0 0 28px rgba(0,0,0,.75),
    0 20px 45px rgba(0,0,0,.45),
    0 0 22px rgba(245,190,75,.22);
  transition: transform 1.55s cubic-bezier(.12,.78,.24,1);
}

.roulette-wheel:before {
  content: "";
  position: absolute;
  inset: 28px;
  border-radius: 50%;
  border: 2px dashed rgba(255,255,255,.35);
}

.wheel-center {
  position: absolute;
  inset: 72px;
  z-index: 4;
  border-radius: 50%;
  background: radial-gradient(circle, #f8d16d, #7a4e12);
  display: grid;
  place-items: center;
  color: #120d05;
  font-weight: 1000;
  font-size: 13px;
  text-align: center;
  box-shadow: inset 0 2px 8px rgba(255,255,255,.35), 0 8px 20px rgba(0,0,0,.45);
}

.roulette-ball {
  position: absolute;
  left: calc(50% - 7px);
  top: calc(50% - 7px);
  width: 14px;
  height: 14px;
  z-index: 5;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 14px rgba(255,255,255,.9), 0 3px 8px rgba(0,0,0,.45);
  transform: rotate(0deg) translateY(-92px);
  transition: transform 1.55s cubic-bezier(.12,.78,.24,1);
}

.roulette-ball.red {
  box-shadow: 0 0 18px rgba(239,68,68,.95), 0 3px 8px rgba(0,0,0,.45);
}

.roulette-ball.black {
  box-shadow: 0 0 18px rgba(255,255,255,.65), 0 3px 8px rgba(0,0,0,.45);
}

.roulette-ball.green {
  box-shadow: 0 0 18px rgba(34,197,94,.95), 0 3px 8px rgba(0,0,0,.45);
}

.roulette-wheel.landed-red {
  outline: 3px solid rgba(239,68,68,.45);
}

.roulette-wheel.landed-black {
  outline: 3px solid rgba(255,255,255,.25);
}

.roulette-wheel.landed-green {
  outline: 3px solid rgba(34,197,94,.55);
}

.slots-machine {
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(180deg, #1a2235, #070a12);
  border: 1px solid rgba(245,190,75,.22);
  box-shadow: inset 0 0 28px rgba(0,0,0,.45);
}

.real-reel-spin {
  animation: realReelSpin .12s linear infinite;
  filter: blur(.4px);
}

.real-reel-land {
  animation: realReelLand .45s ease;
}

@keyframes realReelSpin {
  0% { transform: translateY(-4px); }
  50% { transform: translateY(5px); }
  100% { transform: translateY(-4px); }
}

@keyframes realReelLand {
  0% { transform: scale(1.1); box-shadow: 0 0 18px rgba(245,190,75,.35); }
  100% { transform: scale(1); }
}

.dice-rolling {
  animation: diceRoll .18s linear infinite;
}

.dice-landed {
  animation: diceLand .55s ease;
}

@keyframes diceRoll {
  0% { transform: rotate(-8deg) scale(.96); }
  50% { transform: rotate(8deg) scale(1.04); }
  100% { transform: rotate(-8deg) scale(.96); }
}

@keyframes diceLand {
  0% { transform: scale(1.16); box-shadow: 0 0 24px rgba(245,190,75,.4); }
  100% { transform: scale(1); }
}

.real-card {
  display: inline-grid;
  place-items: center;
  min-width: 46px;
  height: 66px;
  margin: 5px;
  border-radius: 10px;
  background: #f8fafc;
  color: #111827;
  border: 1px solid rgba(0,0,0,.18);
  box-shadow: 0 10px 18px rgba(0,0,0,.35);
  animation: cardDeal .45s ease both;
}

.dealer-card {
  background: linear-gradient(145deg, #fff, #dbeafe);
}

@keyframes cardDeal {
  from { opacity: 0; transform: translateY(-18px) rotate(-7deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

.mines-grid button {
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.mines-grid button.reveal {
  transform: scale(1.05);
  box-shadow: 0 0 18px rgba(34,197,94,.35);
}

.mines-grid button.mine {
  transform: scale(1.08);
  box-shadow: 0 0 18px rgba(239,68,68,.45);
}

#plinkoBall {
  transition: top 1.85s cubic-bezier(.15,.75,.2,1), transform 1.85s cubic-bezier(.15,.75,.2,1);
}

#plinkoBall.plinko-drop-real {
  animation: plinkoWobble .22s ease-in-out infinite alternate;
}

@keyframes plinkoWobble {
  from { margin-left: -7px; }
  to { margin-left: 7px; }
}

/* realtime multi-ball Plinko visuals */
#plinkoBoard {
  position: relative;
  overflow: hidden;
}

.live-plinko-ball {
  position: absolute;
  z-index: 10;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff7c2, #f6c74c 45%, #b77913);
  box-shadow: 0 0 18px rgba(246,199,76,.75), 0 8px 14px rgba(0,0,0,.38);
  pointer-events: none;
  transition: top .2s linear, transform .2s ease-in-out;
}

.live-plinko-ball.plinko-landed {
  transform: translateX(-50%) scale(1.25);
  box-shadow: 0 0 26px rgba(246,199,76,.95), 0 10px 18px rgba(0,0,0,.42);
  opacity: .9;
}

/* Plinko ball visibility + smooth movement only */
#plinkoBoard {
  position: relative !important;
  overflow: hidden !important;
  min-height: 385px;
}

#plinkoBall {
  opacity: 0;
  pointer-events: none;
}

.stakeStylePlinkoBall {
  position: absolute;
  z-index: 999;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, #fff8cc 0 18%, #ffd45a 38%, #f0a814 68%, #9a5b00 100%);
  box-shadow:
    0 0 18px rgba(255, 210, 90, .95),
    0 0 34px rgba(255, 190, 50, .35),
    0 8px 16px rgba(0,0,0,.45);
  transition:
    top .22s cubic-bezier(.2,.8,.25,1),
    transform .22s cubic-bezier(.2,.8,.25,1);
  pointer-events: none;
}

.stakeStylePlinkoBall.plinkoBallLive {
  animation: plinkoSpin .25s linear infinite;
}

.stakeStylePlinkoBall.plinkoHitPeg {
  width: 22px;
  height: 22px;
  box-shadow:
    0 0 22px rgba(255, 230, 130, 1),
    0 0 42px rgba(255, 190, 50, .55),
    0 8px 16px rgba(0,0,0,.45);
}

.stakeStylePlinkoBall.plinkoBallLanded {
  animation: plinkoLand .65s ease forwards;
}

@keyframes plinkoSpin {
  from { rotate: 0deg; }
  to { rotate: 360deg; }
}

@keyframes plinkoLand {
  0% { scale: 1; opacity: 1; }
  45% { scale: 1.35; opacity: 1; }
  100% { scale: .75; opacity: 0; }
}

/* forced visible Plinko overlay only */
#plinkoVisibleOverlay {
  position: relative;
  height: 285px;
  margin: 10px 0 16px;
  border-radius: 20px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 91, .16), transparent 36%),
    linear-gradient(180deg, #111827, #060914);
  border: 1px solid rgba(255, 214, 91, .22);
  box-shadow:
    inset 0 0 26px rgba(0,0,0,.45),
    0 14px 35px rgba(0,0,0,.28);
}

.bigVisiblePlinkoBall {
  position: absolute;
  z-index: 9999;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background:
    radial-gradient(circle at 32% 28%, #fffbe0 0 16%, #ffd85d 36%, #f2a900 68%, #8f5300 100%);
  box-shadow:
    0 0 16px rgba(255, 219, 91, 1),
    0 0 32px rgba(255, 188, 40, .7),
    0 8px 18px rgba(0,0,0,.55);
  pointer-events: none;
  will-change: top, transform;
}

.bigVisiblePlinkoBall::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: inherit;
  background: rgba(255,255,255,.28);
  filter: blur(1px);
}

.bigVisiblePlinkoBall.bigPlinkoLanded {
  animation: bigPlinkoLand .7s ease forwards;
}

@keyframes bigPlinkoLand {
  0% { scale: 1; opacity: 1; }
  45% { scale: 1.45; opacity: 1; }
  100% { scale: .7; opacity: 0; }
}

.plinkoPeg {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #8ba3c7;
  box-shadow: 0 0 12px rgba(139,163,199,.55);
}

.plinkoPeg.p1 { left: 45%; top: 55px; }
.plinkoPeg.p2 { left: 55%; top: 55px; }
.plinkoPeg.p3 { left: 39%; top: 95px; }
.plinkoPeg.p4 { left: 50%; top: 95px; }
.plinkoPeg.p5 { left: 61%; top: 95px; }
.plinkoPeg.p6 { left: 34%; top: 138px; }
.plinkoPeg.p7 { left: 45%; top: 138px; }
.plinkoPeg.p8 { left: 56%; top: 138px; }
.plinkoPeg.p9 { left: 67%; top: 138px; }

.plinkoSlot {
  position: absolute;
  bottom: 10px;
  width: 18%;
  padding: 7px 0;
  text-align: center;
  border-radius: 9px;
  font-size: 12px;
  font-weight: 900;
  color: #111827;
  background: linear-gradient(180deg, #ffe08a, #d99a1e);
  box-shadow: 0 8px 18px rgba(0,0,0,.35);
}

.plinkoSlot.s1 { left: 2%; }
.plinkoSlot.s2 { left: 21%; }
.plinkoSlot.s3 { left: 40%; }
.plinkoSlot.s4 { left: 59%; }
.plinkoSlot.s5 { left: 78%; }

/* FORCE visible Plinko board and balls */
#forcedPlinkoOverlay {
  position: relative !important;
  display: block !important;
  height: 295px !important;
  margin: 12px 0 16px !important;
  overflow: hidden !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 91, .22), transparent 38%),
    linear-gradient(180deg, #111827, #050814) !important;
  border: 1px solid rgba(255, 214, 91, .28) !important;
  box-shadow:
    inset 0 0 30px rgba(0,0,0,.55),
    0 16px 38px rgba(0,0,0,.35) !important;
  z-index: 20 !important;
}

.forcedPlinkoTitle {
  position: absolute;
  top: 8px;
  left: 12px;
  color: #ffe08a;
  font-weight: 1000;
  font-size: 13px;
  letter-spacing: .1em;
  z-index: 2;
}

.forcedPlinkoBall {
  position: absolute !important;
  z-index: 999999 !important;
  display: block !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 999px !important;
  background:
    radial-gradient(circle at 32% 28%, #fffbe5 0 14%, #ffe27a 34%, #f5b21f 66%, #8b4c00 100%) !important;
  box-shadow:
    0 0 18px rgba(255, 225, 122, 1),
    0 0 38px rgba(255, 190, 45, .75),
    0 9px 18px rgba(0,0,0,.55) !important;
  pointer-events: none !important;
  will-change: top, transform !important;
}

.forcedPlinkoBall::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: inherit;
  background: rgba(255,255,255,.35);
}

.forcedPlinkoLanded {
  animation: forcedPlinkoPop .7s ease forwards;
}

@keyframes forcedPlinkoPop {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.5; }
  100% { opacity: 0; scale: .7; }
}

.forcedPeg {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #95a8c7;
  box-shadow: 0 0 12px rgba(149,168,199,.7);
}

.forcedPeg.fp1 { left: 48%; top: 58px; }
.forcedPeg.fp2 { left: 40%; top: 88px; }
.forcedPeg.fp3 { left: 56%; top: 88px; }
.forcedPeg.fp4 { left: 32%; top: 118px; }
.forcedPeg.fp5 { left: 48%; top: 118px; }
.forcedPeg.fp6 { left: 64%; top: 118px; }
.forcedPeg.fp7 { left: 25%; top: 150px; }
.forcedPeg.fp8 { left: 40%; top: 150px; }
.forcedPeg.fp9 { left: 56%; top: 150px; }
.forcedPeg.fp10 { left: 71%; top: 150px; }
.forcedPeg.fp11 { left: 48%; top: 190px; }

.forcedSlot {
  position: absolute;
  bottom: 10px;
  width: 18%;
  padding: 8px 0;
  text-align: center;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 1000;
  color: #111827;
  background: linear-gradient(180deg, #ffe58f, #d79516);
  box-shadow: 0 8px 18px rgba(0,0,0,.4);
}

.forcedSlot.fs1 { left: 2%; }
.forcedSlot.fs2 { left: 21%; }
.forcedSlot.fs3 { left: 40%; }
.forcedSlot.fs4 { left: 59%; }
.forcedSlot.fs5 { left: 78%; }

/* safe visible Plinko balls only */
#safePlinkoOverlay {
  position: relative !important;
  height: 292px !important;
  margin: 12px 0 16px !important;
  overflow: hidden !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,214,91,.22), transparent 38%),
    linear-gradient(180deg, #111827, #050814) !important;
  border: 1px solid rgba(255,214,91,.28) !important;
  box-shadow: inset 0 0 30px rgba(0,0,0,.55), 0 16px 38px rgba(0,0,0,.35) !important;
}

.safePlinkoBall {
  position: absolute !important;
  z-index: 9999 !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle at 32% 28%, #fffbe5 0 14%, #ffe27a 34%, #f5b21f 66%, #8b4c00 100%) !important;
  box-shadow: 0 0 18px rgba(255,225,122,1), 0 0 38px rgba(255,190,45,.75), 0 9px 18px rgba(0,0,0,.55) !important;
  pointer-events: none !important;
  will-change: top, transform !important;
}

.safePlinkoBall::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: inherit;
  background: rgba(255,255,255,.35);
}

.safePlinkoLanded {
  animation: safePlinkoPop .7s ease forwards;
}

@keyframes safePlinkoPop {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.5; }
  100% { opacity: 0; scale: .7; }
}

.safePeg {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #95a8c7;
  box-shadow: 0 0 12px rgba(149,168,199,.7);
}

.safePeg.sp1 { left: 48%; top: 58px; }
.safePeg.sp2 { left: 40%; top: 88px; }
.safePeg.sp3 { left: 56%; top: 88px; }
.safePeg.sp4 { left: 32%; top: 118px; }
.safePeg.sp5 { left: 48%; top: 118px; }
.safePeg.sp6 { left: 64%; top: 118px; }
.safePeg.sp7 { left: 34%; top: 152px; }
.safePeg.sp8 { left: 48%; top: 152px; }
.safePeg.sp9 { left: 62%; top: 152px; }

.safeSlot {
  position: absolute;
  bottom: 10px;
  width: 18%;
  padding: 8px 0;
  text-align: center;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 1000;
  color: #111827;
  background: linear-gradient(180deg, #ffe58f, #d79516);
  box-shadow: 0 8px 18px rgba(0,0,0,.4);
}

.safeSlot.ss1 { left: 2%; }
.safeSlot.ss2 { left: 21%; }
.safeSlot.ss3 { left: 40%; }
.safeSlot.ss4 { left: 59%; }
.safeSlot.ss5 { left: 78%; }

/* FINAL visible Plinko ball - screen overlay so it cannot be hidden */
.finalScreenPlinkoBall {
  position: fixed !important;
  z-index: 2147483647 !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle at 32% 28%, #fffbe8 0 14%, #ffe477 34%, #f6b21f 66%, #8c5000 100%) !important;
  box-shadow:
    0 0 20px rgba(255, 226, 119, 1),
    0 0 42px rgba(255, 190, 45, .8),
    0 10px 20px rgba(0,0,0,.6) !important;
  pointer-events: none !important;
  will-change: left, top, transform !important;
}

.finalScreenPlinkoBall::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: inherit;
  background: rgba(255,255,255,.38);
}

.finalScreenPlinkoBallDone {
  animation: finalScreenPlinkoPop .7s ease forwards;
}

@keyframes finalScreenPlinkoPop {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.45; }
  100% { opacity: 0; scale: .7; }
}

/* FINAL picture-style slots */
.slots-machine {
  gap: 10px !important;
  padding: 18px !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 214, 91, .18), transparent 38%),
    linear-gradient(180deg, #151e30, #070b13) !important;
  border: 1px solid rgba(255, 214, 91, .24) !important;
  box-shadow:
    inset 0 0 28px rgba(0,0,0,.55),
    0 18px 36px rgba(0,0,0,.35) !important;
}

.reel.slotPictureReel {
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  min-height: 128px !important;
  border-radius: 18px !important;
  background:
    linear-gradient(180deg, #f8fafc, #dbe2ec) !important;
  border: 2px solid rgba(255,255,255,.9) !important;
  box-shadow:
    inset 0 10px 18px rgba(255,255,255,.65),
    inset 0 -12px 22px rgba(0,0,0,.12),
    0 12px 24px rgba(0,0,0,.42) !important;
  font-size: 0 !important;
}

.slotPicSymbol {
  width: 84px;
  height: 84px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  position: relative;
  font-size: 42px;
  font-weight: 1000;
  color: #0f172a;
  text-shadow: none;
}

.slotPicSymbol span {
  position: relative;
  z-index: 2;
}





.slot-lemon {
  background: radial-gradient(circle, #fff7a8, #eab308);
  border-radius: 48% 52% 45% 55%;
}

.slot-bell {
  background: linear-gradient(180deg, #ffe08a, #d18a00);
  color: #3b2500;
  border-radius: 26px 26px 18px 18px;
}

.slot-star {
  background: radial-gradient(circle, #fff7ed, #f97316);
  color: #111827;
}

.slot-cherry {
  background: radial-gradient(circle, #fecdd3, #dc2626);
  color: #fff;
}

.slot-diamond {
  background: linear-gradient(145deg, #dbeafe, #38bdf8);
  color: #082f49;
  transform: rotate(45deg);
}

.slot-diamond span {
  transform: rotate(-45deg);
}

.slot-bar {
  background: linear-gradient(180deg, #111827, #030712);
  color: #f8fafc;
  border: 2px solid #f8fafc;
}

.reel.slotSpinning .slotPicSymbol {
  animation: slotPictureSpin .12s linear infinite;
  filter: blur(.6px);
}

.reel.slotStopped .slotPicSymbol {
  animation: slotPictureStop .5s ease;
}

.reel.slotJackpotWin {
  border-color: rgba(255, 214, 91, 1) !important;
  box-shadow:
    inset 0 10px 18px rgba(255,255,255,.65),
    0 0 28px rgba(255, 214, 91, .85),
    0 0 55px rgba(255, 190, 45, .45) !important;
}

.reel.slotJackpotWin 

@keyframes slotPictureSpin {
  0% { transform: translateY(-24px) scale(.94); opacity: .65; }
  50% { transform: translateY(24px) scale(1.04); opacity: 1; }
  100% { transform: translateY(-24px) scale(.94); opacity: .65; }
}

@keyframes slotPictureStop {
  0% { transform: scale(1.18); }
  55% { transform: scale(.94); }
  100% { transform: scale(1); }
}

to { transform: scale(1.08); }
}

/* make slot jackpot G match top-left Gonnsen logo */




/* FINAL slot jackpot G matching top-left website logo */
.reel .slotPicSymbol.slot-gonnsen {
  width: 96px !important;
  height: 96px !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  background:
    radial-gradient(circle at 32% 24%, #fff1a8 0 12%, #ffd256 32%, #e6a51d 62%, #9b6200 100%) !important;
  color: #0b1220 !important;
  border: none !important;
  box-shadow:
    inset 0 5px 11px rgba(255,255,255,.58),
    inset 0 -9px 16px rgba(0,0,0,.2),
    0 0 24px rgba(255,210,86,.8),
    0 14px 25px rgba(0,0,0,.42) !important;
  transform: none !important;
}

.reel .slotPicSymbol.slot-gonnsen span {
  color: #0b1220 !important;
  font-size: 54px !important;
  font-weight: 1000 !important;
  line-height: 1 !important;
  letter-spacing: -0.04em !important;
  text-shadow: none !important;
}

.reel.slotJackpotWin .slotPicSymbol.slot-gonnsen {
  animation: finalGonnsenJackpotPulse .75s ease-in-out infinite alternate !important;
}

@keyframes finalGonnsenJackpotPulse {
  from { scale: 1; filter: brightness(1); }
  to { scale: 1.08; filter: brightness(1.12); }
}

/* FIX casino lobby card layout after slot/logo edits */
.realCasinoLobby {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)) !important;
  gap: 18px !important;
  margin-top: 18px !important;
}

.casinoShowTile {
  min-height: 365px !important;
  padding: 18px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

.casinoTileArt {
  height: 170px !important;
  margin: 34px 0 18px !important;
  flex-shrink: 0 !important;
}

.casinoShowTile h3 {
  font-size: 24px !important;
  line-height: 1.1 !important;
  margin: 0 0 8px !important;
  position: relative !important;
  z-index: 3 !important;
}

.casinoShowTile p {
  font-size: 14px !important;
  line-height: 1.35 !important;
  margin: 0 0 18px !important;
  min-height: 40px !important;
  position: relative !important;
  z-index: 3 !important;
}

.casinoShowTile strong {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  margin-top: auto !important;
  display: block !important;
  width: 100% !important;
  padding: 13px 14px !important;
  font-size: 15px !important;
  line-height: 1 !important;
  text-align: center !important;
  z-index: 4 !important;
}

.casinoTileTag {
  z-index: 5 !important;
}

@media (max-width: 760px) {
  .realCasinoLobby {
    grid-template-columns: 1fr !important;
  }

  .casinoShowTile {
    min-height: 350px !important;
  }
}

/* Blackjack card totals */
.blackjack-total {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 214, 91, .12);
  border: 1px solid rgba(255, 214, 91, .22);
  color: #ffd45a;
  font-weight: 900;
  font-size: 14px;
}

/* Blackjack realistic card visuals only */
.cards {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  min-height: 86px !important;
}

.bj-card {
  width: 58px !important;
  height: 82px !important;
  border-radius: 10px !important;
  background: linear-gradient(145deg, #ffffff, #e8edf5) !important;
  color: #0f172a !important;
  position: relative !important;
  display: block !important;
  box-shadow:
    inset 0 2px 5px rgba(255,255,255,.75),
    inset 0 -5px 10px rgba(0,0,0,.12),
    0 12px 20px rgba(0,0,0,.38) !important;
  border: 1px solid rgba(15,23,42,.2) !important;
  transform-style: preserve-3d !important;
  overflow: hidden !important;
  font-family: Arial, sans-serif !important;
}

.bj-flip {
  animation: bjCardFlip .45s ease both !important;
}

@keyframes bjCardFlip {
  from {
    transform: rotateY(90deg) translateY(-8px);
    opacity: .3;
  }
  to {
    transform: rotateY(0deg) translateY(0);
    opacity: 1;
  }
}

.bj-card .corner {
  position: absolute !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  font-size: 15px !important;
  font-weight: 1000 !important;
  line-height: .9 !important;
}

.bj-card .corner small {
  font-size: 13px !important;
  line-height: 1 !important;
}

.bj-card .top {
  top: 6px !important;
  left: 6px !important;
}

.bj-card .bottom {
  bottom: 6px !important;
  right: 6px !important;
  transform: rotate(180deg) !important;
}

.bj-card .middle {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  font-size: 34px !important;
  font-weight: 900 !important;
}

.bj-card.red-card {
  color: #dc2626 !important;
}

.bj-card.black-card {
  color: #0f172a !important;
}

.bj-card-back {
  background:
    radial-gradient(circle at 50% 50%, rgba(255,214,91,.22), transparent 34%),
    repeating-linear-gradient(45deg, #10213e 0 8px, #0b162b 8px 16px) !important;
  border: 3px solid #f3c85b !important;
  box-shadow:
    inset 0 0 0 4px rgba(255,255,255,.08),
    inset 0 0 20px rgba(0,0,0,.55),
    0 12px 20px rgba(0,0,0,.38) !important;
}

.bj-card-back::before {
  content: "G";
  position: absolute;
  inset: 14px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 32% 24%, #fff1a8, #ffd256 40%, #9b6200);
  color: #0b1220;
  font-size: 28px;
  font-weight: 1000;
}

/* Blackjack dealer-style card dealing motion only */
.bj-deal-card {
  animation: bjDealerDeal .48s ease both !important;
  transform-origin: center center !important;
}

@keyframes bjDealerDeal {
  0% {
    opacity: 0;
    transform: translateY(-34px) translateX(18px) rotate(8deg) scale(.88);
  }
  65% {
    opacity: 1;
    transform: translateY(4px) translateX(-2px) rotate(-2deg) scale(1.04);
  }
  100% {
    opacity: 1;
    transform: translateY(0) translateX(0) rotate(0deg) scale(1);
  }
}

.bj-card-back.bj-deal-card {
  animation: bjDealerBackDeal .48s ease both !important;
}

@keyframes bjDealerBackDeal {
  0% {
    opacity: 0;
    transform: translateY(-34px) translateX(18px) rotateY(90deg) rotate(8deg) scale(.88);
  }
  100% {
    opacity: 1;
    transform: translateY(0) translateX(0) rotateY(0deg) rotate(0deg) scale(1);
  }
}

/* FINAL Blackjack stable dealing fix */
.bj-card-still {
  animation: none !important;
}

.bj-deal-card {
  animation: bjDealerDealStable .45s ease both !important;
}

@keyframes bjDealerDealStable {
  0% {
    opacity: 0;
    transform: translateY(-30px) translateX(16px) rotate(7deg) scale(.9);
  }
  65% {
    opacity: 1;
    transform: translateY(3px) translateX(-2px) rotate(-2deg) scale(1.04);
  }
  100% {
    opacity: 1;
    transform: translateY(0) translateX(0) rotate(0deg) scale(1);
  }
}

/* 18+ signup checkbox */
.age-check {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin: 10px 0 12px !important;
  color: #dce7f5 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.age-check input {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 auto !important;
  margin-top: 1px !important;
}

/* blackjack face-down dealer card */
.real-card.card-back,
.real-card.card-hidden {
  background: linear-gradient(135deg, #111827, #26364f) !important;
  color: #ffd166 !important;
  border: 2px solid rgba(255, 209, 102, .75) !important;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.08), 0 8px 20px rgba(0,0,0,.35) !important;
}

/* final blackjack hidden dealer card */
.real-card.card-back {
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 209, 102, .45), transparent 35%),
    linear-gradient(135deg, #111827, #26364f) !important;
  color: #ffd166 !important;
  border: 2px solid rgba(255, 209, 102, .9) !important;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.08), 0 8px 20px rgba(0,0,0,.35) !important;
}

/* FINAL Plinko falling ball visual fix only */
#plinkoBall {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.final-falling-plinko-ball {
  position: absolute !important;
  z-index: 9999 !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle at 32% 28%, #fffbe8 0 14%, #ffe477 34%, #f6b21f 66%, #8c5000 100%) !important;
  box-shadow:
    0 0 20px rgba(255, 226, 119, 1),
    0 0 42px rgba(255, 190, 45, .8),
    0 10px 20px rgba(0,0,0,.6) !important;
  pointer-events: none !important;
  will-change: left, top, transform !important;
}

.final-falling-plinko-ball::after {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: inherit;
  background: rgba(255,255,255,.38);
}

.final-falling-plinko-landed {
  animation: finalPlinkoLandPop .9s ease forwards;
}

@keyframes finalPlinkoLandPop {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.35; }
  100% { opacity: 0; scale: .7; }
}

/* FINAL Plinko 9 random payout slots */
#plinkoBoard .multipliers.plinko-nine-slots {
  display: grid !important;
  grid-template-columns: repeat(9, 1fr) !important;
  gap: 4px !important;
}

#plinkoBoard .multipliers.plinko-nine-slots b {
  min-width: 0 !important;
  font-size: 10px !important;
  padding: 8px 2px !important;
  text-align: center !important;
}

#plinkoBoard .multipliers b.plinko-slot-hit {
  background: linear-gradient(180deg, #fff1a8, #f6b21f) !important;
  color: #111 !important;
  box-shadow: 0 0 22px rgba(255, 209, 102, .95) !important;
  transform: translateY(-2px) scale(1.05) !important;
}

/* FINAL Plinko peg/slot alignment only */
#plinkoBoard .peg-row {
  display: none !important;
}

.aligned-plinko-pegs {
  position: absolute !important;
  inset: 12px 18px 54px 18px !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.aligned-plinko-peg {
  position: absolute !important;
  width: 9px !important;
  height: 9px !important;
  margin-left: -4.5px !important;
  margin-top: -4.5px !important;
  border-radius: 999px !important;
  background: #eaf5ff !important;
  box-shadow:
    0 0 10px rgba(234,245,255,.9),
    0 0 18px rgba(255,255,255,.45) !important;
}

#plinkoBoard .multipliers.aligned-plinko-slots {
  position: relative !important;
  z-index: 5 !important;
  display: grid !important;
  grid-template-columns: repeat(9, 1fr) !important;
  gap: 4px !important;
}

#plinkoBoard .multipliers.aligned-plinko-slots b {
  min-width: 0 !important;
  font-size: 10px !important;
  padding: 8px 1px !important;
  text-align: center !important;
}

/* FIX Plinko upside-down payout row only */
#plinkoBoard {
  position: relative !important;
  padding-bottom: 48px !important;
}

#plinkoBoard .multipliers,
#plinkoBoard .multipliers.plinko-nine-slots,
#plinkoBoard .multipliers.aligned-plinko-slots {
  position: absolute !important;
  left: 10px !important;
  right: 10px !important;
  bottom: 10px !important;
  top: auto !important;
  z-index: 20 !important;
  display: grid !important;
  grid-template-columns: repeat(9, 1fr) !important;
  gap: 4px !important;
}

.aligned-plinko-pegs {
  top: 18px !important;
  bottom: 62px !important;
}

/* FINAL 17-slot Plinko layout from provided picture only */
#plinkoBoard {
  position: relative !important;
  min-height: 390px !important;
  padding-bottom: 52px !important;
}

#plinkoBoard .peg-row {
  display: none !important;
}

.final17-plinko-pegs {
  position: absolute !important;
  left: 18px !important;
  right: 18px !important;
  top: 16px !important;
  bottom: 62px !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.final17-plinko-peg {
  position: absolute !important;
  width: 7px !important;
  height: 7px !important;
  margin-left: -3.5px !important;
  margin-top: -3.5px !important;
  border-radius: 999px !important;
  background: #edf7ff !important;
  box-shadow:
    0 0 8px rgba(237,247,255,.95),
    0 0 14px rgba(255,255,255,.45) !important;
}

#plinkoBoard .multipliers.final17-plinko-slots {
  position: absolute !important;
  left: 8px !important;
  right: 8px !important;
  bottom: 9px !important;
  top: auto !important;
  z-index: 25 !important;
  display: grid !important;
  grid-template-columns: repeat(17, 1fr) !important;
  gap: 2px !important;
}

#plinkoBoard .multipliers.final17-plinko-slots b {
  min-width: 0 !important;
  height: 24px !important;
  padding: 0 !important;
  border-radius: 5px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 8px !important;
  font-weight: 900 !important;
  color: #071018 !important;
}

#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(1),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(2),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(16),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(17) {
  background: linear-gradient(180deg, #ff2448, #ba001e) !important;
  color: white !important;
}

#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(3),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(4),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(5),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(13),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(14),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(15) {
  background: linear-gradient(180deg, #ff6824, #d93600) !important;
  color: white !important;
}

#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(6),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(7),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(8),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(10),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(11),
#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(12) {
  background: linear-gradient(180deg, #ffb21f, #f07a00) !important;
}

#plinkoBoard .multipliers.final17-plinko-slots b:nth-child(9) {
  background: linear-gradient(180deg, #ffe94a, #d7ba00) !important;
}

.final17-plinko-ball {
  z-index: 50 !important;
}

/* CLEANUP old Plinko visuals only - keep final17 board */
#plinkoBoard .aligned-plinko-pegs,
#plinkoBoard #plinkoVisibleOverlay,
#plinkoBoard #safePlinkoOverlay,
#plinkoBoard #forcedPlinkoOverlay,
#plinkoBoard .plinkoPeg,
#plinkoBoard .safePeg,
#plinkoBoard .forcedPeg,
#plinkoBoard .bigVisiblePlinkoBall,
#plinkoBoard .safePlinkoBall,
#plinkoBoard .forcedPlinkoBall,
#plinkoBoard .stakeStylePlinkoBall,
#plinkoBoard .live-plinko-ball,
#plinkoBoard #plinkoBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#plinkoBoard .final17-plinko-pegs {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

#plinkoBoard .final17-plinko-peg {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* FINAL clean Plinko fit + proper ball/dot spacing only */
#plinkoBoard.clean17-plinko-board {
  position: relative !important;
  min-height: 430px !important;
  padding: 18px 12px 62px 12px !important;
  overflow: hidden !important;
}

#plinkoBoard .peg-row,
#plinkoBoard .aligned-plinko-pegs,
#plinkoBoard #plinkoVisibleOverlay,
#plinkoBoard #safePlinkoOverlay,
#plinkoBoard #forcedPlinkoOverlay,
#plinkoBoard .plinkoPeg,
#plinkoBoard .safePeg,
#plinkoBoard .forcedPeg,
#plinkoBoard .bigVisiblePlinkoBall,
#plinkoBoard .safePlinkoBall,
#plinkoBoard .forcedPlinkoBall,
#plinkoBoard .stakeStylePlinkoBall,
#plinkoBoard .live-plinko-ball,
#plinkoBoard #plinkoBall,
#plinkoBoard .final-falling-plinko-ball,
#plinkoBoard .final17-plinko-pegs,
#plinkoBoard .final17-plinko-peg {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.clean17-plinko-pegs {
  position: absolute !important;
  left: 18px !important;
  right: 18px !important;
  top: 18px !important;
  bottom: 72px !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.clean17-plinko-peg {
  position: absolute !important;
  display: block !important;
  width: 6px !important;
  height: 6px !important;
  margin-left: -3px !important;
  margin-top: -3px !important;
  border-radius: 999px !important;
  background: #f1f8ff !important;
  box-shadow:
    0 0 7px rgba(241,248,255,.95),
    0 0 13px rgba(255,255,255,.45) !important;
  opacity: .98 !important;
  visibility: visible !important;
}

.clean17-plinko-ball {
  position: absolute !important;
  z-index: 60 !important;
  width: 18px !important;
  height: 18px !important;
  margin-left: 0 !important;
  margin-top: 0 !important;
  border-radius: 999px !important;
  background: radial-gradient(circle at 32% 28%, #fffbe8 0 16%, #ffe477 36%, #f6b21f 68%, #8c5000 100%) !important;
  box-shadow:
    0 0 14px rgba(255, 226, 119, 1),
    0 0 28px rgba(255, 190, 45, .75),
    0 7px 14px rgba(0,0,0,.5) !important;
  pointer-events: none !important;
  will-change: left, top, transform !important;
}

.clean17-plinko-ball::after {
  content: "" !important;
  position: absolute !important;
  inset: 5px !important;
  border-radius: inherit !important;
  background: rgba(255,255,255,.4) !important;
}

.clean17-plinko-ball-done {
  animation: clean17PlinkoPop .7s ease forwards !important;
}

@keyframes clean17PlinkoPop {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.25; }
  100% { opacity: 0; scale: .7; }
}

#plinkoBoard .multipliers.clean17-plinko-slots {
  position: absolute !important;
  left: 12px !important;
  right: 12px !important;
  bottom: 10px !important;
  top: auto !important;
  z-index: 30 !important;
  display: grid !important;
  grid-template-columns: repeat(17, 1fr) !important;
  gap: 2px !important;
}

#plinkoBoard .multipliers.clean17-plinko-slots b {
  min-width: 0 !important;
  height: 26px !important;
  padding: 0 !important;
  border-radius: 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 8px !important;
  font-weight: 900 !important;
  color: #071018 !important;
}

#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(1),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(2),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(16),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(17) {
  background: linear-gradient(180deg, #ff2448, #ba001e) !important;
  color: #fff !important;
}

#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(3),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(4),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(5),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(13),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(14),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(15) {
  background: linear-gradient(180deg, #ff6824, #d93600) !important;
  color: #fff !important;
}

#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(6),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(7),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(8),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(10),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(11),
#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(12) {
  background: linear-gradient(180deg, #ffb21f, #f07a00) !important;
}

#plinkoBoard .multipliers.clean17-plinko-slots b:nth-child(9) {
  background: linear-gradient(180deg, #ffe94a, #d7ba00) !important;
}

#plinkoBoard .multipliers b.plinko-slot-hit {
  box-shadow: 0 0 24px rgba(255, 209, 102, .95) !important;
  transform: translateY(-2px) scale(1.08) !important;
}

/* FIX Plinko ball fits between pegs only */
#plinkoBoard .final-falling-plinko-ball,
#plinkoBoard .final17-plinko-ball,
#plinkoBoard .aligned-plinko-ball {
  width: 13px !important;
  height: 13px !important;
  min-width: 13px !important;
  min-height: 13px !important;
  max-width: 13px !important;
  max-height: 13px !important;
  border-radius: 999px !important;
  z-index: 60 !important;
  box-shadow:
    0 0 10px rgba(255, 214, 92, 1),
    0 0 22px rgba(255, 190, 45, .85) !important;
}

#plinkoBoard .final17-plinko-peg {
  width: 7px !important;
  height: 7px !important;
  margin-left: -3.5px !important;
  margin-top: -3.5px !important;
}

/* FINAL Roulette duplicate-wheel cleanup + multi-bet layout only */
.roulette-card > .roulette-wheel:not(#rouletteWheelFinal),
.roulette-card > .roulette-wheel-wrap:not(.roulette-wheel-wrap-final),
.roulette-card > canvas,
.roulette-card > .game-visual,
.roulette-card > .old-roulette-wheel,
#realRouletteBox {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

.real-roulette-final-box {
  margin-top: 16px !important;
  padding: 14px !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, rgba(8,22,36,.96), rgba(3,9,16,.98)) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
}

.roulette-wheel-wrap-final {
  display: grid !important;
  place-items: center !important;
  gap: 12px !important;
}

.roulette-wheel-final {
  position: relative !important;
  width: min(310px, 82vw) !important;
  height: min(310px, 82vw) !important;
  border-radius: 999px !important;
  background:
    repeating-conic-gradient(from -3deg, #0b111c 0deg 9.73deg, #c91722 9.73deg 19.46deg),
    radial-gradient(circle, #0b3a1f 0 35%, #111 36% 100%) !important;
  border: 9px solid #d9a93b !important;
  box-shadow: 0 0 32px rgba(255,209,102,.28), inset 0 0 45px rgba(0,0,0,.72) !important;
  overflow: hidden !important;
}

.roulette-pocket-ring-final {
  position: absolute !important;
  inset: 14px !important;
  border-radius: inherit !important;
}

.roulette-pocket-final {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 22px !important;
  height: 22px !important;
  margin-left: -11px !important;
  margin-top: -11px !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 8px !important;
  font-weight: 1000 !important;
  color: #fff !important;
  transform:
    rotate(calc((360deg / var(--total)) * var(--i)))
    translateY(-124px)
    rotate(calc((-360deg / var(--total)) * var(--i))) !important;
  border: 1px solid rgba(255,255,255,.2) !important;
}

.roulette-pocket-final.red { background: #d6122f !important; }
.roulette-pocket-final.black { background: #080b10 !important; }
.roulette-pocket-final.green { background: #0aa35a !important; }

.roulette-center-final {
  position: absolute !important;
  inset: 78px !important;
  border-radius: inherit !important;
  background: radial-gradient(circle, #163d24, #06130d) !important;
  border: 5px solid #d9a93b !important;
  display: grid !important;
  place-items: center !important;
}

.roulette-logo-final {
  width: 66px !important;
  height: 66px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #ffe68a, #f4ac20) !important;
  color: #111 !important;
  display: grid !important;
  place-items: center !important;
  font-size: 34px !important;
  font-weight: 1000 !important;
}

.roulette-ball-final {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 13px !important;
  height: 13px !important;
  margin-left: -6.5px !important;
  margin-top: -6.5px !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: 0 0 12px rgba(255,255,255,.9) !important;
  transform: rotate(0deg) translateY(-104px);
  z-index: 10 !important;
}

.roulette-result-final,
.roulette-selected-final {
  width: 100% !important;
  text-align: center !important;
  color: #fff !important;
  font-weight: 900 !important;
  padding: 9px 10px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.07) !important;
}

.roulette-result-final .red { color: #ff4059 !important; }
.roulette-result-final .black { color: #ffffff !important; }
.roulette-result-final .green { color: #20e080 !important; }

.roulette-table-final {
  margin-top: 14px !important;
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  gap: 5px !important;
}

.roulette-bets-final {
  margin-top: 10px !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 7px !important;
}

.roulette-num-final,
.roulette-bets-final button,
.roulette-controls-final button {
  min-height: 38px !important;
  border-radius: 10px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  font-weight: 1000 !important;
  color: #111 !important;
  background: linear-gradient(180deg, #ffd86b, #f3ad24) !important;
}

.roulette-num-final.red {
  background: linear-gradient(180deg, #f3344f, #9d001b) !important;
  color: #fff !important;
}

.roulette-num-final.black {
  background: linear-gradient(180deg, #202733, #05070b) !important;
  color: #fff !important;
}

.roulette-num-final.green {
  background: linear-gradient(180deg, #1fd47b, #087d47) !important;
  color: #fff !important;
  grid-column: span 6 !important;
}

.roulette-num-final.selected,
.roulette-bets-final button.selected {
  outline: 3px solid rgba(255,214,102,.95) !important;
  box-shadow: 0 0 18px rgba(255,214,102,.65) !important;
  transform: translateY(-1px) !important;
}

.roulette-selected-final {
  margin-top: 10px !important;
  color: rgba(255,255,255,.86) !important;
}

.roulette-controls-final {
  margin-top: 10px !important;
  display: grid !important;
  grid-template-columns: 1fr 110px !important;
  gap: 8px !important;
}

.roulette-controls-final input {
  border-radius: 13px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.08) !important;
  color: white !important;
  padding: 0 14px !important;
  font-size: 16px !important;
  font-weight: 800 !important;
}

@media (max-width: 520px) {
  .roulette-table-final {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  .roulette-bets-final {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .roulette-pocket-final {
    width: 18px !important;
    height: 18px !important;
    margin-left: -9px !important;
    margin-top: -9px !important;
    font-size: 7px !important;
    transform:
      rotate(calc((360deg / var(--total)) * var(--i)))
      translateY(-108px)
      rotate(calc((-360deg / var(--total)) * var(--i))) !important;
  }
}

/* Roulette active bet lock */
.roulette-bet-active {
  cursor: wait !important;
}

.roulette-bet-active [data-rbet],
.roulette-bet-active input,
.roulette-bet-active button,
.roulette-locked {
  opacity: .55 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  filter: grayscale(.2) !important;
}

/* Hard hide Roulette when another game is active */
body[data-current-game="blackjack"] #realRouletteFinalBox,
body[data-current-game="blackjack"] #realRouletteBox,
body[data-current-game="blackjack"] .real-roulette-final-box,
body[data-current-game="blackjack"] .real-roulette-box,
body[data-current-game="plinko"] #realRouletteFinalBox,
body[data-current-game="plinko"] #realRouletteBox,
body[data-current-game="plinko"] .real-roulette-final-box,
body[data-current-game="plinko"] .real-roulette-box,
body[data-current-game="slots"] #realRouletteFinalBox,
body[data-current-game="slots"] #realRouletteBox,
body[data-current-game="slots"] .real-roulette-final-box,
body[data-current-game="slots"] .real-roulette-box,
body[data-current-game="dice"] #realRouletteFinalBox,
body[data-current-game="dice"] #realRouletteBox,
body[data-current-game="dice"] .real-roulette-final-box,
body[data-current-game="dice"] .real-roulette-box,
body[data-current-game="mines"] #realRouletteFinalBox,
body[data-current-game="mines"] #realRouletteBox,
body[data-current-game="mines"] .real-roulette-final-box,
body[data-current-game="mines"] .real-roulette-box {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

/* Clean Roulette open-close like other games */
body:not([data-current-game="roulette"]) #realRouletteFinalBox,
body:not([data-current-game="roulette"]) #realRouletteBox,
body:not([data-current-game="roulette"]) .real-roulette-final-box,
body:not([data-current-game="roulette"]) .real-roulette-box {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

body[data-current-game="roulette"] #realRouletteFinalBox,
body[data-current-game="roulette"] #realRouletteBox,
body[data-current-game="roulette"] .real-roulette-final-box,
body[data-current-game="roulette"] .real-roulette-box {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

/* RESCUE FINAL Plinko visuals only */
#plinkoBoard {
  position: relative !important;
  min-height: 390px !important;
  padding-bottom: 52px !important;
  overflow: hidden !important;
}

#plinkoBall,
#plinkoBoard .peg-row {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.rescue-plinko-pegs {
  position: absolute !important;
  left: 18px !important;
  right: 18px !important;
  top: 16px !important;
  bottom: 62px !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.rescue-plinko-peg {
  position: absolute !important;
  width: 5px !important;
  height: 5px !important;
  margin-left: -2.5px !important;
  margin-top: -2.5px !important;
  border-radius: 999px !important;
  background: #edf7ff !important;
  box-shadow:
    0 0 8px rgba(237,247,255,.95),
    0 0 14px rgba(255,255,255,.45) !important;
}

.rescue-plinko-ball {
  position: absolute !important;
  z-index: 999999 !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 32% 28%, #fffbe8 0 14%, #ffe477 34%, #f6b21f 66%, #8c5000 100%) !important;
  box-shadow:
    0 0 14px rgba(255, 226, 119, 1),
    0 0 26px rgba(255, 190, 45, .75),
    0 7px 14px rgba(0,0,0,.55) !important;
  pointer-events: none !important;
  will-change: left, top, transform !important;
}

.rescue-plinko-ball::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: inherit;
  background: rgba(255,255,255,.4);
}

.rescue-plinko-landed {
  animation: rescuePlinkoPop .7s ease forwards !important;
}

@keyframes rescuePlinkoPop {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.35; }
  100% { opacity: 0; scale: .7; }
}

#plinkoBoard .multipliers.rescue-plinko-slots {
  position: absolute !important;
  left: 8px !important;
  right: 8px !important;
  bottom: 9px !important;
  top: auto !important;
  z-index: 25 !important;
  display: grid !important;
  grid-template-columns: repeat(17, 1fr) !important;
  gap: 2px !important;
}

#plinkoBoard .multipliers.rescue-plinko-slots b {
  min-width: 0 !important;
  height: 24px !important;
  padding: 0 !important;
  border-radius: 5px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 8px !important;
  font-weight: 900 !important;
}

/* FINAL Plinko hide old duplicate board layers only */
#plinkoBoard .aligned-plinko-pegs,
#plinkoBoard .aligned-plinko-peg,
#plinkoBoard .final17-plinko-pegs,
#plinkoBoard .final17-plinko-peg,
#plinkoBoard .final-plinko-pegs,
#plinkoBoard .final-plinko-peg,
#plinkoBoard .final-falling-plinko-ball,
#plinkoBoard .final17-plinko-ball,
#plinkoBoard .aligned-plinko-ball,
#plinkoBoard .old-plinko-ball,
#plinkoBoard .peg-row,
#plinkoBoard #plinkoBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#plinkoBoard .rescue-plinko-pegs,
#plinkoBoard .rescue-plinko-peg,
#plinkoBoard .rescue-plinko-ball {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* FINAL CLEAN Plinko single board visuals only */
#plinkoBoard.clean-plinko-board {
  position: relative !important;
  min-height: 390px !important;
  overflow: hidden !important;
  padding-bottom: 54px !important;
}

#plinkoBoard .peg-row,
#plinkoBoard #plinkoBall,
#plinkoBoard .aligned-plinko-pegs,
#plinkoBoard .aligned-plinko-peg,
#plinkoBoard .final17-plinko-pegs,
#plinkoBoard .final17-plinko-peg,
#plinkoBoard .final-plinko-pegs,
#plinkoBoard .final-plinko-peg,
#plinkoBoard .rescue-plinko-pegs,
#plinkoBoard .rescue-plinko-peg,
#plinkoBoard .final-falling-plinko-ball,
#plinkoBoard .final17-plinko-ball,
#plinkoBoard .aligned-plinko-ball,
#plinkoBoard .rescue-plinko-ball {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#plinkoBoard .clean-plinko-pegs {
  position: absolute !important;
  inset: 16px 18px 62px 18px !important;
  z-index: 4 !important;
  pointer-events: none !important;
  display: block !important;
}

#plinkoBoard .clean-plinko-pegs i {
  position: absolute !important;
  width: 6px !important;
  height: 6px !important;
  margin-left: -3px !important;
  margin-top: -3px !important;
  border-radius: 999px !important;
  background: #eef8ff !important;
  box-shadow: 0 0 8px rgba(238,248,255,.95), 0 0 15px rgba(255,255,255,.45) !important;
}

#plinkoBoard .clean-plinko-ball {
  position: absolute !important;
  z-index: 999999 !important;
  width: 11px !important;
  height: 11px !important;
  margin-left: 0 !important;
  margin-top: 0 !important;
  border-radius: 999px !important;
  background: radial-gradient(circle at 30% 25%, #fffbe8 0 14%, #ffe477 34%, #f6b21f 66%, #8c5000 100%) !important;
  box-shadow: 0 0 12px rgba(255,226,119,1), 0 0 22px rgba(255,190,45,.75) !important;
  transform: translate(-50%, -50%) !important;
  transition: left .165s linear, top .165s ease-in, transform .165s linear !important;
  pointer-events: none !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

#plinkoBoard .clean-plinko-ball-done {
  animation: cleanPlinkoBallDone .65s ease forwards !important;
}

@keyframes cleanPlinkoBallDone {
  0% { opacity: 1; scale: 1; }
  45% { opacity: 1; scale: 1.3; }
  100% { opacity: 0; scale: .65; }
}

#plinkoBoard .multipliers.clean-plinko-slots {
  position: absolute !important;
  left: 8px !important;
  right: 8px !important;
  bottom: 9px !important;
  top: auto !important;
  z-index: 20 !important;
  display: grid !important;
  grid-template-columns: repeat(17, 1fr) !important;
  gap: 2px !important;
}

#plinkoBoard .multipliers.clean-plinko-slots b {
  min-width: 0 !important;
  height: 24px !important;
  border-radius: 5px !important;
  padding: 0 !important;
  font-size: 8px !important;
  font-weight: 900 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* FINAL Plinko true single round dots only */
#plinkoBoard .clean-plinko-pegs i,
#plinkoBoard .clean-single-plinko-dot {
  position: absolute !important;
  width: 5px !important;
  height: 5px !important;
  min-width: 5px !important;
  min-height: 5px !important;
  max-width: 5px !important;
  max-height: 5px !important;
  margin-left: -2.5px !important;
  margin-top: -2.5px !important;
  border-radius: 50% !important;
  background: #f4fbff !important;
  box-shadow: 0 0 7px rgba(244, 251, 255, .85) !important;
  transform: none !important;
  scale: 1 !important;
  filter: none !important;
}

#plinkoBoard .clean-plinko-pegs i::before,
#plinkoBoard .clean-plinko-pegs i::after,
#plinkoBoard .clean-single-plinko-dot::before,
#plinkoBoard .clean-single-plinko-dot::after {
  content: none !important;
  display: none !important;
}

/* FINAL Roulette winning ball visual fix only */
.roulette-wheel-final,
.roulette-wheel {
  position: relative !important;
}

.roulette-winning-ball-final {
  position: absolute !important;
  z-index: 999999 !important;
  width: 14px !important;
  height: 14px !important;
  margin-left: -7px !important;
  margin-top: -7px !important;
  border-radius: 999px !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
  transition:
    left .42s cubic-bezier(.18,.9,.22,1),
    top .42s cubic-bezier(.18,.9,.22,1) !important;
}

/* FINAL Roulette hide old duplicate ball only */
#realRouletteFinalBox .roulette-ball:not(.roulette-winning-ball-final),
#realRouletteFinalBox .wheel-ball:not(.roulette-winning-ball-final),
#realRouletteFinalBox .real-roulette-ball:not(.roulette-winning-ball-final),
#realRouletteFinalBox .roulette-pointer-ball:not(.roulette-winning-ball-final),
#realRouletteFinalBox .roulette-final-ball:not(.roulette-winning-ball-final),
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall,
.roulette-wheel-final .roulette-ball:not(.roulette-winning-ball-final),
.roulette-wheel-final .wheel-ball:not(.roulette-winning-ball-final),
.roulette-wheel-final .real-roulette-ball:not(.roulette-winning-ball-final),
.roulette-wheel-final .roulette-pointer-ball:not(.roulette-winning-ball-final),
.roulette-wheel-final .roulette-final-ball:not(.roulette-winning-ball-final),
.roulette-wheel .roulette-ball:not(.roulette-winning-ball-final),
.roulette-wheel .wheel-ball:not(.roulette-winning-ball-final),
.roulette-wheel .real-roulette-ball:not(.roulette-winning-ball-final),
.roulette-wheel .roulette-pointer-ball:not(.roulette-winning-ball-final),
.roulette-wheel .roulette-final-ball:not(.roulette-winning-ball-final) {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* FINAL Roulette only one live ball */
#realRouletteFinalBox .roulette-winning-ball-final,
#realRouletteFinalBox .roulette-ball,
#realRouletteFinalBox .wheel-ball,
#realRouletteFinalBox .real-roulette-ball,
#realRouletteFinalBox .roulette-pointer-ball,
#realRouletteFinalBox .roulette-final-ball,
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall,
.roulette-wheel-final .roulette-winning-ball-final,
.roulette-wheel-final .roulette-ball,
.roulette-wheel-final .wheel-ball,
.roulette-wheel-final .real-roulette-ball,
.roulette-wheel-final .roulette-pointer-ball,
.roulette-wheel-final .roulette-final-ball {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#realRouletteFinalBox .roulette-wheel-final::before,
#realRouletteFinalBox .roulette-wheel-final::after,
#realRouletteFinalBox .roulette-wheel::before,
#realRouletteFinalBox .roulette-wheel::after {
  content: none !important;
  display: none !important;
}

.roulette-live-ball {
  position: absolute !important;
  z-index: 999999 !important;
  width: 14px !important;
  height: 14px !important;
  margin-left: -7px !important;
  margin-top: -7px !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
  transition:
    left .22s cubic-bezier(.18,.9,.22,1),
    top .22s cubic-bezier(.18,.9,.22,1) !important;
}

/* FINAL Roulette exact number ball only */
#realRouletteFinalBox .roulette-winning-ball-final,
#realRouletteFinalBox .roulette-ball,
#realRouletteFinalBox .wheel-ball,
#realRouletteFinalBox .real-roulette-ball,
#realRouletteFinalBox .roulette-pointer-ball,
#realRouletteFinalBox .roulette-final-ball,
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#realRouletteFinalBox .roulette-live-ball.exact-number-ball {
  position: absolute !important;
  z-index: 999999 !important;
  width: 15px !important;
  height: 15px !important;
  margin-left: -7.5px !important;
  margin-top: -7.5px !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
}

/* FINAL hide stuck top Roulette ball only */
#realRouletteFinalBox .roulette-wheel-final::before,
#realRouletteFinalBox .roulette-wheel-final::after,
#realRouletteFinalBox .roulette-wheel::before,
#realRouletteFinalBox .roulette-wheel::after,
#realRouletteFinalBox .real-roulette-wheel::before,
#realRouletteFinalBox .real-roulette-wheel::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#realRouletteFinalBox [style*="top: 8px"],
#realRouletteFinalBox [style*="top:8px"],
#realRouletteFinalBox [style*="top: 0"],
#realRouletteFinalBox [style*="top:0"] {
  visibility: hidden !important;
}

#realRouletteFinalBox .exact-number-ball {
  visibility: visible !important;
  opacity: 1 !important;
  display: block !important;
}

/* FINAL CLEAN Roulette remove all old balls, allow one result ball only */
#realRouletteFinalBox .roulette-wheel-final::before,
#realRouletteFinalBox .roulette-wheel-final::after,
#realRouletteFinalBox .roulette-wheel::before,
#realRouletteFinalBox .roulette-wheel::after,
#realRouletteFinalBox .real-roulette-wheel::before,
#realRouletteFinalBox .real-roulette-wheel::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#realRouletteFinalBox .roulette-live-ball:not(#gonnsenRouletteResultBall),
#realRouletteFinalBox .exact-number-ball:not(#gonnsenRouletteResultBall),
#realRouletteFinalBox .roulette-winning-ball-final,
#realRouletteFinalBox .roulette-ball,
#realRouletteFinalBox .wheel-ball,
#realRouletteFinalBox .real-roulette-ball,
#realRouletteFinalBox .roulette-pointer-ball,
#realRouletteFinalBox .roulette-final-ball,
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#gonnsenRouletteResultBall {
  position: absolute !important;
  z-index: 999999 !important;
  width: 15px !important;
  height: 15px !important;
  margin-left: -7.5px !important;
  margin-top: -7.5px !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
}

/* FINAL TRUE Roulette: hide old ball, show ball only on winning number */
#realRouletteFinalBox .roulette-wheel-final::before,
#realRouletteFinalBox .roulette-wheel-final::after,
#realRouletteFinalBox .roulette-wheel::before,
#realRouletteFinalBox .roulette-wheel::after,
#realRouletteFinalBox .real-roulette-wheel::before,
#realRouletteFinalBox .real-roulette-wheel::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#realRouletteFinalBox #gonnsenRouletteResultBall,
#realRouletteFinalBox .roulette-live-ball,
#realRouletteFinalBox .exact-number-ball,
#realRouletteFinalBox .roulette-winning-ball-final,
#realRouletteFinalBox .roulette-ball,
#realRouletteFinalBox .wheel-ball,
#realRouletteFinalBox .real-roulette-ball,
#realRouletteFinalBox .roulette-pointer-ball,
#realRouletteFinalBox .roulette-final-ball,
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#realRouletteFinalBox .roulette-winning-number-label {
  position: relative !important;
  z-index: 99999 !important;
}

#realRouletteFinalBox .roulette-winning-number-label::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 15px !important;
  height: 15px !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
}

/* FINAL TRUE Roulette spinning ball then number landing */
#realRouletteFinalBox .roulette-spin-land-ball {
  position: absolute !important;
  z-index: 999999 !important;
  width: 15px !important;
  height: 15px !important;
  margin-left: -7.5px !important;
  margin-top: -7.5px !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
  transition:
    left .08s linear,
    top .08s linear !important;
}

#realRouletteFinalBox .roulette-spin-land-ball::before,
#realRouletteFinalBox .roulette-spin-land-ball::after {
  content: none !important;
  display: none !important;
}

/* FINAL STABLE Roulette no duplicate or post-result glitch */
#realRouletteFinalBox .roulette-wheel-final::before,
#realRouletteFinalBox .roulette-wheel-final::after,
#realRouletteFinalBox .roulette-wheel::before,
#realRouletteFinalBox .roulette-wheel::after,
#realRouletteFinalBox .real-roulette-wheel::before,
#realRouletteFinalBox .real-roulette-wheel::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#realRouletteFinalBox #gonnsenRouletteResultBall,
#realRouletteFinalBox .roulette-spin-land-ball,
#realRouletteFinalBox .roulette-live-ball,
#realRouletteFinalBox .exact-number-ball,
#realRouletteFinalBox .roulette-winning-ball-final,
#realRouletteFinalBox .roulette-ball,
#realRouletteFinalBox .wheel-ball,
#realRouletteFinalBox .real-roulette-ball,
#realRouletteFinalBox .roulette-pointer-ball,
#realRouletteFinalBox .roulette-final-ball,
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#gonnsenRouletteStableBall {
  position: absolute !important;
  z-index: 999999 !important;
  width: 15px !important;
  height: 15px !important;
  margin-left: -7.5px !important;
  margin-top: -7.5px !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
}

#realRouletteFinalBox .roulette-winning-number-label {
  position: relative !important;
  z-index: 99999 !important;
}

#realRouletteFinalBox .roulette-winning-number-label::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 15px !important;
  height: 15px !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 999px !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  background: radial-gradient(circle at 30% 25%, #ffffff 0 25%, #eaffff 45%, #bfffea 100%) !important;
  box-shadow:
    0 0 8px rgba(255,255,255,.95),
    0 0 16px rgba(124,255,220,.8),
    0 4px 10px rgba(0,0,0,.45) !important;
  pointer-events: none !important;
}

/* FINAL Roulette hide stuck top old ball, keep stable spin ball */
#realRouletteFinalBox .roulette-wheel-final::before,
#realRouletteFinalBox .roulette-wheel-final::after,
#realRouletteFinalBox .roulette-wheel::before,
#realRouletteFinalBox .roulette-wheel::after,
#realRouletteFinalBox .real-roulette-wheel::before,
#realRouletteFinalBox .real-roulette-wheel::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

#realRouletteFinalBox #gonnsenRouletteResultBall,
#realRouletteFinalBox .roulette-live-ball:not(#gonnsenRouletteStableBall),
#realRouletteFinalBox .exact-number-ball,
#realRouletteFinalBox .roulette-winning-ball-final,
#realRouletteFinalBox .roulette-ball,
#realRouletteFinalBox .wheel-ball,
#realRouletteFinalBox .real-roulette-ball,
#realRouletteFinalBox .roulette-pointer-ball,
#realRouletteFinalBox .roulette-final-ball,
#realRouletteFinalBox #rouletteBall,
#realRouletteFinalBox #rouletteFinalBall {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#realRouletteFinalBox #gonnsenRouletteStableBall {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* FINAL Mines manual tile picker only */
#manualMinesPicker {
  margin: 12px 0 !important;
}

.manual-mines-title,
.manual-mines-selected {
  color: rgba(255,255,255,.82) !important;
  font-weight: 800 !important;
  margin: 8px 0 !important;
  font-size: 13px !important;
}

.manual-mines-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  margin: 10px 0 !important;
}

.manual-mines-grid button {
  min-height: 58px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: linear-gradient(180deg, #172334, #0d1420) !important;
  color: white !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 8px 18px rgba(0,0,0,.25) !important;
}

.manual-mines-grid button.selected {
  background: linear-gradient(180deg, #ffd86a, #f6b21f) !important;
  color: #111 !important;
  border-color: rgba(255,220,120,.9) !important;
}

.manual-mines-grid button.safe-tile {
  background: linear-gradient(180deg, #20d47b, #078f4b) !important;
  color: white !important;
}

.manual-mines-grid button.hit-mine {
  background: linear-gradient(180deg, #ff3b5f, #a90024) !important;
  color: white !important;
}

/* FINAL Mines click real boxes only */
#manualMinesPicker {
  display: none !important;
}

.real-mines-selected-text {
  color: rgba(255,255,255,.86) !important;
  font-weight: 900 !important;
  margin: 12px 0 !important;
  font-size: 14px !important;
}

.real-mines-tile {
  cursor: pointer !important;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease !important;
}

.real-mines-tile.real-mines-selected {
  background: linear-gradient(180deg, #ffd86a, #f6b21f) !important;
  color: #111 !important;
  box-shadow: 0 0 0 2px rgba(255,216,106,.85), 0 10px 22px rgba(0,0,0,.35) !important;
  transform: translateY(-1px) !important;
}

.real-mines-tile.real-mines-safe {
  background: linear-gradient(180deg, #20d47b, #078f4b) !important;
  color: white !important;
}

.real-mines-tile.real-mines-hit {
  background: linear-gradient(180deg, #ff3b5f, #a90024) !important;
  color: white !important;
}

/* FINAL Mines clickable real question boxes only */
.real-mines-click-box-final {
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none !important;
  touch-action: manipulation !important;
}

.real-mines-click-box-final.real-mines-selected {
  background: linear-gradient(180deg, #ffd86a, #f6b21f) !important;
  color: #111 !important;
  box-shadow: 0 0 0 2px rgba(255,216,106,.9), 0 10px 22px rgba(0,0,0,.35) !important;
  transform: translateY(-1px) !important;
}

.real-mines-click-box-final.real-mines-safe {
  background: linear-gradient(180deg, #20d47b, #078f4b) !important;
  color: white !important;
}

.real-mines-click-box-final.real-mines-hit {
  background: linear-gradient(180deg, #ff3b5f, #a90024) !important;
  color: white !important;
}

/* FINAL CLEAN Mines one picker system only */
#manualMinesPicker {
  display: none !important;
}

.real-mines-selected-text {
  color: rgba(255,255,255,.86) !important;
  font-weight: 900 !important;
  margin: 12px 0 !important;
  font-size: 14px !important;
}

.mines-clean-box {
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none !important;
  touch-action: manipulation !important;
}

.mines-clean-box.mines-clean-selected {
  box-shadow: 0 0 0 2px rgba(255,216,106,.95), 0 10px 22px rgba(0,0,0,.35) !important;
  border-color: rgba(255,216,106,.95) !important;
}

.mines-clean-box.mines-clean-selected:not(.mines-clean-safe):not(.mines-clean-hit) {
  background: linear-gradient(180deg, #ffd86a, #f6b21f) !important;
  color: #111 !important;
}

.mines-clean-box.mines-clean-safe {
  background: linear-gradient(180deg, #20d47b, #078f4b) !important;
  color: white !important;
}

.mines-clean-box.mines-clean-hit {
  background: linear-gradient(180deg, #ff3b5f, #a90024) !important;
  color: white !important;
}

/* FINAL Mines anti-spam + numbered boxes only */
.mines-play-locked-final {
  opacity: .75 !important;
  pointer-events: none !important;
  filter: grayscale(.15) !important;
}

.mines-board-locked-final {
  pointer-events: none !important;
}

/* FINAL Mines clean numbered boxes no dropdown */
#manualMinesPicker {
  display: none !important;
}

#realMinesSelectedText,
.real-mines-selected-text {
  color: rgba(255,255,255,.86) !important;
  font-weight: 900 !important;
  margin: 12px 0 !important;
  font-size: 14px !important;
}

.mines-clean-final-box {
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none !important;
  touch-action: manipulation !important;
}

.mines-clean-final-box.mines-clean-final-selected {
  background: linear-gradient(180deg, #ffd86a, #f6b21f) !important;
  color: #111 !important;
  border-color: rgba(255,216,106,.95) !important;
  box-shadow: 0 0 0 2px rgba(255,216,106,.9), 0 10px 22px rgba(0,0,0,.35) !important;
}

.mines-clean-final-box.mines-clean-final-safe {
  background: linear-gradient(180deg, #20d47b, #078f4b) !important;
  color: white !important;
}

.mines-clean-final-box.mines-clean-final-hit {
  background: linear-gradient(180deg, #ff3b5f, #a90024) !important;
  color: white !important;
}

/* FINAL Slots spinning animation only */
#slotsSpinDisplayFinal {
  margin: 14px 0 !important;
  padding: 14px !important;
  border-radius: 18px !important;
  background: radial-gradient(circle at 50% 0%, rgba(255,216,106,.18), rgba(8,14,24,.92) 58%) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 12px 28px rgba(0,0,0,.25) !important;
}

.slots-spin-reels-final {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
}

.slots-spin-reel-final {
  min-height: 86px !important;
  border-radius: 16px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 34px !important;
  font-weight: 1000 !important;
  color: #101010 !important;
  background: linear-gradient(180deg, #fff7dc, #e9eef8) !important;
  box-shadow: inset 0 2px rgba(255,255,255,.9), 0 10px 22px rgba(0,0,0,.28) !important;
}

.slots-spin-status-final {
  margin-top: 10px !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  color: rgba(255,255,255,.78) !important;
}

.slots-spinning-final .slots-spin-reel-final {
  filter: blur(.3px) !important;
  box-shadow: 0 0 18px rgba(255,216,106,.42), inset 0 2px rgba(255,255,255,.9) !important;
}

.slots-reel-pop-final {
  transform: translateY(-2px) scale(1.03) !important;
}

.slots-reel-land-final {
  animation: slotsLandPopFinal .35s ease both !important;
}

@keyframes slotsLandPopFinal {
  0% { transform: scale(.92); }
  60% { transform: scale(1.08); }
  100% { transform: scale(1); }
}

/* FINAL FORCE: custom roulette only visible when active game is roulette */
body:not([data-current-game="roulette"]) #realRouletteFinalBox,
body:not([data-current-game="roulette"]) .real-roulette-final-box,
body:not([data-current-game="roulette"]) .real-roulette-box,
body:not([data-current-game="roulette"]) #realRouletteBox {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* FINAL Dice preview uploaded photo only */
.casinoShowTile.casino-dice .casinoTileArt {
  background-image: url("/uploads/dice-preview.png") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.casinoShowTile.casino-dice .casinoTileArt span,
.casinoShowTile.casino-dice .casinoTileArt i,
.casinoShowTile.casino-dice .casinoTileArt b {
  display: none !important;
}

/* FINAL Dice preview uploaded photo only */
.casinoShowTile.casino-dice {
  background-image: url("/dice-preview.png") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.casinoShowTile.casino-dice > * {
  display: none !important;
}

/* FINAL Dice preview image on tile and inner art only */
.casinoShowTile.casino-dice,
.casinoShowTile.casino-dice .casinoTileArt {
  background: url("/dice-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-dice .casinoTileArt span,
.casinoShowTile.casino-dice .casinoTileArt i,
.casinoShowTile.casino-dice .casinoTileArt b {
  display: none !important;
}

/* FINAL Blackjack preview uploaded photo only */
.blackjack-preview-photo-card,
.blackjack-preview-photo-card .casinoTileArt {
  background: url("/blackjack-preview.png") center / cover no-repeat !important;
}

.blackjack-preview-photo-card .casinoTileArt span,
.blackjack-preview-photo-card .casinoTileArt i,
.blackjack-preview-photo-card .casinoTileArt b {
  display: none !important;
}

/* FINAL Blackjack preview direct art class only */
.casinoShowTile.casino-blackjack,
.casinoShowTile.casino-blackjack .casinoTileArt {
  background: url("/blackjack-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-blackjack .casinoTileArt span,
.casinoShowTile.casino-blackjack .casinoTileArt i,
.casinoShowTile.casino-blackjack .casinoTileArt b {
  display: none !important;
}

/* FINAL Blackjack preview image only, hide text overlay */
.casinoShowTile.casino-blackjack h3,
.casinoShowTile.casino-blackjack p,
.casinoShowTile.casino-blackjack strong,
.casinoShowTile.casino-blackjack .casinoTileTag {
  display: none !important;
}

.casinoShowTile.casino-blackjack {
  background: url("/blackjack-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-blackjack .casinoTileArt {
  background: transparent !important;
}

/* FINAL Blackjack preview image only no text overlay */
.casinoShowTile.casino-blackjack {
  background: url("/blackjack-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-blackjack > * {
  display: none !important;
}

/* FINAL Roulette preview image only no text overlay */
.casinoShowTile.casino-roulette {
  background: url("/roulette-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-roulette > * {
  display: none !important;
}

/* FINAL Plinko preview image only no text overlay */
.casinoShowTile.casino-plinko {
  background: url("/plinko-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-plinko > * {
  display: none !important;
}

/* FINAL Reels preview image only no text overlay */
.casinoShowTile.casino-slots {
  background: url("/reels-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-slots > * {
  display: none !important;
}

/* FINAL Reels preview image only no text overlay */
.casinoShowTile.casino-slots {
  background: url("/reels-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-slots > * {
  display: none !important;
}

/* FINAL Mines preview image only no text overlay */
.casinoShowTile.casino-mines {
  background: url("/mines-preview.png") center / cover no-repeat !important;
}

.casinoShowTile.casino-mines > * {
  display: none !important;
}
