/* ARCADE V6 — starfield through the app, filled game states, table texture */
html.av2 #av2bg::before,
html.av2 #av2bg::after {
  content: "";
  position: absolute;
  inset: -40%;
  pointer-events: none;
  background-repeat: repeat;
}
html.av2 #av2bg::before {
  background-image:
    radial-gradient(1px 1px at 18px 26px, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1px 1px at 74px 112px, rgba(160,230,255,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 142px 64px, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1px 1px at 206px 148px, rgba(255,180,230,.75), transparent 60%),
    radial-gradient(1px 1px at 238px 32px, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1.5px 1.5px at 310px 104px, rgba(180,255,180,.65), transparent 60%);
  background-size: 340px 190px;
  opacity: .65;
  animation: av3starPan 90s linear infinite;
}
html.av2 #av2bg::after {
  background-image:
    radial-gradient(1px 1px at 42px 82px, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1px 1px at 128px 24px, rgba(190,220,255,.7), transparent 60%),
    radial-gradient(1px 1px at 188px 122px, rgba(255,255,255,.65), transparent 60%),
    radial-gradient(1px 1px at 284px 68px, rgba(255,220,170,.65), transparent 60%);
  background-size: 260px 170px;
  opacity: .38;
  animation: av3starPanReverse 140s linear infinite;
}
@keyframes av3starPan { to { transform: translate3d(-340px, -190px, 0); } }
@keyframes av3starPanReverse { to { transform: translate3d(260px, 170px, 0); } }

/* background flows through the app itself */
html.av2 #win { background: rgba(5, 6, 12, .34) !important; }
html.av2 #chrome,
html.av2 #winbody,
html.av2 #main {
  background: transparent !important;
  background-image: none !important;
}
html.av2 #top { background: rgba(7, 8, 14, .68) !important; }
html.av2 #ticker { background: rgba(7, 8, 14, .42) !important; }

/* tables feel like tables, not empty forms */
html.av2 #view-bj .panel:first-of-type,
html.av2 #view-baccarat .panel:first-of-type,
html.av2 #view-baccarat .panel:nth-of-type(2) {
  background:
    radial-gradient(ellipse at 50% 20%, rgba(22, 120, 80, .18), transparent 70%),
    linear-gradient(180deg, rgba(17, 28, 25, .86), rgba(10, 16, 15, .9)) !important;
  border-color: rgba(60, 170, 115, .20) !important;
}
html.av2 #view-roulette .panel:last-of-type,
html.av2 #view-mines .panel,
html.av2 #view-crash .panel,
html.av2 #view-towers .panel {
  border-color: rgba(67, 231, 255, .14) !important;
}
html.av2 .cards:empty::before {
  content: "♠   ♥   ♦   ♣";
  font-family: var(--av2-display);
  font-size: 24px;
  letter-spacing: .18em;
  color: rgba(255,255,255,.13);
}
html.av2 .minesgrid button:not(.open):not(.bomb)::before {
  content: "✦";
  font-size: 16px;
  color: rgba(198,255,74,.20);
}
html.av2 .towers .trow button:not(.safe):not(.mine)::before {
  content: "?";
  font-family: var(--av2-display);
  font-size: 11px;
  color: rgba(255,255,255,.22);
}

/* empty states — never leave a blank panel */
html.av2 #pv-rooms:empty::after,
html.av2 #pv-feed:empty::after,
html.av2 #pv-live:empty::after,
html.av2 #cr-feed:empty::after,
html.av2 #cr-history:empty::after,
html.av2 #rl-history:empty::after,
html.av2 #lb-history:empty::after,
html.av2 #bc-bead:empty::after,
html.av2 #mn-grid:empty::after,
html.av2 #winners-list:empty::after,
html.av2 #buddy-list:empty::after,
html.av2 #weekly-list:empty::after {
  display: block;
  padding: 15px 8px;
  text-align: center;
  font-family: var(--av2-ui);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--av2-dim);
}
html.av2 #pv-rooms:empty::after { content: "NO OPEN DUELS · CREATE ONE"; }
html.av2 #pv-feed:empty::after { content: "NO DUELS SETTLED YET"; }
html.av2 #pv-live:empty::after { content: "NO LIVE TABLES"; }
html.av2 #cr-feed:empty::after { content: "WAITING FOR PLAYERS"; }
html.av2 #cr-history:empty::after,
html.av2 #rl-history:empty::after,
html.av2 #lb-history:empty::after { content: "ROUND HISTORY WILL APPEAR HERE"; }
html.av2 #bc-bead:empty::after { content: "BEAD PLATE · NO HANDS YET"; }
html.av2 #mn-grid:empty::after { content: "PRESS START ROUND TO LAY THE MINES"; grid-column: 1 / -1; }
html.av2 #winners-list:empty::after { content: "BIG WINS APPEAR HERE"; }
html.av2 #buddy-list:empty::after { content: "PLAYERS APPEAR HERE"; }
html.av2 #weekly-list:empty::after { content: "WEEKLY TOP STARTS FRESH"; }

/* result messages get a clear outcome plate */
html.av2 .msg.win,
html.av2 .msg.lose {
  border-radius: 10px;
  padding: 9px;
  margin: 5px 0 2px;
  border: 1px solid rgba(198,255,74,.25);
  background: rgba(198,255,74,.07);
  animation: av3respop .35s ease both;
}
html.av2 .msg.lose {
  border-color: rgba(255,91,110,.25);
  background: rgba(255,91,110,.07);
}
@keyframes av3respop { from { transform: scale(.97); opacity: .4; } to { transform: scale(1); opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  html.av2 #av2bg::before,
  html.av2 #av2bg::after { animation: none; }
}

/* stronger starfield through the app */
html.av2 #win { background: rgba(5, 6, 12, .16) !important; }
html.av2 #magicbg { opacity: .58 !important; z-index: 1 !important; }
html.av2 #av2bg::before { opacity: .95 !important; }
html.av2 #av2bg::after { opacity: .55 !important; }
html.av2 #av2bg .b1 { opacity: .5 !important; }
html.av2 #av2bg .b2 { opacity: .38 !important; }
html.av2 #av2bg .b3 { opacity: .4 !important; }
html.av2 #av2bg .b4 { opacity: .28 !important; }
html.av2 #view-home .av2-sec h3,
html.av2 #view-home .av2-sec span { text-shadow: 0 2px 8px rgba(0,0,0,.8); }

/* explicit empty card / table states */
html.av2 #view-bj .cards .empty-note,
html.av2 #view-baccarat .cards .empty-note {
  font-family: var(--av2-ui);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--av2-dim);
}
html.av2 #view-bj .panel:first-of-type::after,
html.av2 #view-baccarat .panel:first-of-type::after {
  content: "DEALER";
  position: absolute;
  right: 16px;
  bottom: 10px;
  font-family: var(--av2-display);
  font-size: 8px;
  letter-spacing: .2em;
  color: rgba(255,255,255,.08);
  pointer-events: none;
}
