.sound-toggle { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:9px 13px; border:1px solid #ffffff24; border-radius:12px; background:#ffffff08; color:var(--ink); font-family:inherit; font-size:12px; font-weight:600; line-height:1.2; cursor:pointer; transition:background .18s,border-color .18s; }
.sound-toggle:hover { background:#ffffff12; border-color:#ffffff50; }
.sound-toggle:focus-visible { outline:2px solid var(--accent,#59c9ff); outline-offset:4px; }
.sound-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sound-off-mark { display:none; }
.sound-toggle[aria-pressed="false"] .sound-off-mark { display:block; }
.sound-toggle[aria-pressed="false"] .sound-waves { display:none; }
.game-coin-stage,.rocket-stage,.level-one-stage,.plinko-stage,.upgrader-stage,.signup-level-status { position:relative; isolation:isolate; }
.fx-pulse { animation:fx-feedback .65s ease-out; }
.fx-win,.fx-payout { --fx-color:var(--positive,#56e2a0); }
.fx-loss { --fx-color:var(--danger,#ff537e); }
.fx-burst { position:absolute; z-index:5; inset:0; overflow:hidden; pointer-events:none; border-radius:inherit; }
.fx-particle { position:absolute; left:50%; top:50%; width:6px; height:11px; background:var(--accent); border-radius:2px; opacity:0; animation:fx-particle 1s cubic-bezier(.15,.6,.4,1) var(--fx-delay,0s) both; }
.fx-particle:nth-child(3n) { background:#bce9ff; }
.fx-particle:nth-child(3n + 1) { background:#8baeff; width:5px; height:5px; border-radius:50%; }
.rocket-stage.is-flying,.level-one-stage.is-flying { box-shadow:inset 0 0 60px #59c9ff0a; }
.rocket-stage.is-flying .rocket-flight-path { filter:drop-shadow(0 0 5px #59c9ff80); }
.level-one-stage.is-flying .level-one-flame { transform-box:fill-box; transform-origin:center; animation:fx-thrust .25s ease-in-out infinite alternate; }
.level-one-stage.is-flying .level-one-flight-path { filter:drop-shadow(0 0 5px #bce9ff70); }
.game-coin.is-flipping { filter:drop-shadow(0 14px 12px #0006); }
.plinko-ball { filter:drop-shadow(0 0 5px #d1efff65); }
.upgrader-stage.is-spinning { box-shadow:inset 0 0 45px #59c9ff10; }

/* Input feedback starts before transport. Nothing in these preparation loops
   lands on a prize, reveals a card or burrow, or advances a cashout multiplier. */
#games-hub [data-game-pending] { isolation:isolate; }
#games-hub #upgrader-stage[data-game-pending="upgrader"] #upgrader-pointer,
#games-hub #roulette-stage[data-game-pending="roulette"] #roulette-segments {
  transform-box:view-box; transform-origin:200px 200px;
  animation:game-pending-turn .64s linear infinite;
}
#games-hub #roulette-stage[data-game-pending="roulette"] #roulette-wheel-number { opacity:0; }
#games-hub [data-game-pending="coinflip"] #game-coin .auth-coin-inner {
  animation:game-pending-coin .6s linear infinite;
}
#games-hub #plinko-stage[data-game-pending="plinko"]::after {
  content:""; position:absolute; pointer-events:none; z-index:3;
  left:calc(50% - 7px); top:17%; width:14px; height:14px; border-radius:50%;
  background:#cff8ff; box-shadow:0 0 12px #59c9ff;
  animation:game-pending-ball .45s ease-in-out infinite alternate;
}
#games-hub #rocket-stage[data-game-pending="rocket"] #rocket-dot .rocket-dot-glow {
  transform-box:fill-box; transform-origin:center;
  animation:game-pending-dot .5s ease-out infinite alternate;
}
#games-hub #blackjack-table[data-game-pending="blackjack"] { position:relative; }
#games-hub #blackjack-table[data-game-pending="blackjack"]::after {
  content:"♠"; position:absolute; pointer-events:none; z-index:4; right:18px; top:18px;
  display:grid; place-items:center; width:40px; height:56px; border:2px solid #74cfff;
  border-radius:6px; background:repeating-linear-gradient(45deg,#152d4a 0 4px,#1e4165 4px 8px);
  color:#c5eeff; box-shadow:5px 4px 0 #234363,9px 8px 0 #10263b;
  font-size:24px; animation:game-pending-deck .55s ease-in-out infinite alternate;
}
#games-hub [data-game-pending="tower"] .tower-tile.is-pending {
  animation:game-pending-pick .45s ease-in-out infinite alternate;
}
#games-hub [data-game-pending="tower"][data-pending-action="tower_start"] .tower-floor {
  animation:game-pending-floor .8s ease-in-out infinite alternate;
}
#games-hub [data-game-pending="tower"] .tower-floor:nth-child(2n) { animation-delay:-.2s; }
#games-hub [data-game-pending="tower"] .tower-floor:nth-child(3n) { animation-delay:-.4s; }
#games-hub [data-game-pending="rabbits"] .rabbits-hole.is-pending {
  animation:game-pending-pick .4s ease-in-out infinite alternate;
}
#games-hub #cases-panel #case-reel[data-game-pending="cases"] #case-reel-track {
  animation:game-pending-reel 1.25s linear infinite; transition:none;
}
/* Only the moving element is promoted. SVG prize trees and wheel shadows are
   already prepared; phones need no repeated blur/shadow rasterization. */
#games-hub #upgrader-stage[data-game-pending="upgrader"] #upgrader-pointer,
#games-hub #roulette-stage[data-game-pending="roulette"] #roulette-segments,
#games-hub [data-game-pending="coinflip"] .auth-coin-inner { will-change:transform; }
@media(max-width:760px),(pointer:coarse) {
  #games-hub #cases-panel[data-phase="opening"] .case-drop-visual,
  #games-hub #upgrader-stage:is([data-game-pending],.is-spinning) #upgrader-pointer,
  #games-hub .game-coin.is-flipping { filter:none; }
}
#games-hub #cases-panel [data-game-pending="cases"] .case-drop-card.is-landed {
  box-shadow:none; border-color:var(--case-line); background:var(--case-surface);
}
@keyframes game-pending-turn { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@keyframes game-pending-coin { from { transform:translateY(-8px) rotateY(0deg); } to { transform:translateY(-8px) rotateY(360deg); } }
@keyframes game-pending-ball { from { transform:translateY(-8px) scale(.9); } to { transform:translateY(5px) scale(1.08); } }
@keyframes game-pending-dot { from { transform:scale(.7); opacity:.45; } to { transform:scale(1.4); opacity:1; } }
@keyframes game-pending-deck { from { transform:translateX(-4px) rotate(-7deg); } to { transform:translateX(5px) rotate(8deg); } }
@keyframes game-pending-pick { from { transform:translateY(-2px) rotateY(-12deg); } to { transform:translateY(1px) rotateY(12deg); } }
@keyframes game-pending-floor { from { opacity:.6; } to { opacity:1; } }
@keyframes game-pending-reel { from { transform:translate3d(0,0,0); } to { transform:translate3d(var(--case-pending-distance,-25%),0,0); } }
/* The neutral acknowledgement is static when the device requests less motion,
   regardless of the site's existing saved replay-speed setting. */
#games-hub [data-game-pending][data-pending-motion="reduced"],
#games-hub [data-game-pending][data-pending-motion="reduced"] * {
  animation:none!important;
}
#games-hub [data-game-pending][data-pending-motion="reduced"]::after,
#games-hub [data-game-pending][data-pending-motion="reduced"] *::after { animation:none!important; }
#games-hub [data-game-pending][data-pending-motion="reduced"] { outline:2px solid color-mix(in srgb,var(--accent,#59c9ff) 55%,transparent); outline-offset:-2px; }
@keyframes fx-feedback { 0% { box-shadow:0 0 0 0 transparent; } 25% { box-shadow:0 0 0 3px var(--fx-color,#59c9ff),0 0 28px #59c9ff1f; } 100% { box-shadow:0 0 0 0 transparent; } }
@keyframes fx-particle { 0% { opacity:0; transform:translate(0,0) rotate(0deg) scale(.5); } 15% { opacity:1; } 75% { opacity:1; } 100% { opacity:0; transform:translate(var(--fx-x,80px),var(--fx-y,-80px)) rotate(var(--fx-rotation,180deg)) scale(.85); } }
@keyframes fx-thrust { from { transform:scale(.8); opacity:.65; } to { transform:scale(1.1); opacity:1; } }
@media (max-width:600px) { .header-actions { gap:8px; } .sound-toggle { padding:9px; } #sound-toggle-label { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; } }
@media (prefers-reduced-motion:reduce) { html:not([data-game-motion="on"]) .fx-pulse,html:not([data-game-motion="on"]) .fx-particle,html:not([data-game-motion="on"]) .level-one-stage.is-flying .level-one-flame { animation:none; } .sound-toggle { transition:none; } html:not([data-game-motion="on"]) .fx-burst { display:none; } }

/* Lobby atmosphere follows the selected theme and real activity connection. */
body:has(> .site-layout) .site-backdrop::before { content:''; position:absolute; inset:-8%; background:radial-gradient(ellipse at 22% 34%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 42%),radial-gradient(ellipse at 80% 72%,color-mix(in srgb,var(--lavender) 11%,transparent),transparent 38%); opacity:.65; animation:lobby-ambient-drift 30s ease-in-out infinite alternate; }
.site-layout .game-tab { transition:background .18s,color .18s,transform .18s,box-shadow .18s; }
.site-layout .game-tab svg { transition:transform .18s; }
.site-layout .game-tab[aria-selected="true"] svg { transform:translateY(-1px); }
.site-layout .game-tab[aria-selected="true"]::after { transform-origin:center; animation:lobby-tab-select .22s ease-out; }
.site-layout .game-panel:not([hidden]),.site-layout .welcome-bonus-page:not([hidden]) { animation:lobby-panel-enter .26s ease-out; }
.site-layout :is(.game-tab,.welcome-bonus-primary,.button,.upgrader-spin,.roulette-spin,.blackjack-play-actions button):not(:disabled):active { transform:translateY(1px) scale(.985); }
.site-layout .activity-feed[data-connection="live"] .activity-feed-dot { animation:lobby-live-pulse 3.4s ease-out infinite; }
.site-layout .activity-arriving { background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent); border-radius:8px; }
@keyframes lobby-ambient-drift { from { transform:translate3d(-2%,-1%,0) scale(1); } to { transform:translate3d(2%,2%,0) scale(1.04); } }
@keyframes lobby-panel-enter { from { opacity:.35; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@keyframes lobby-tab-select { from { opacity:.35; transform:scaleX(.45); } to { opacity:1; transform:scaleX(1); } }
@keyframes lobby-live-pulse { 0%,100% { box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 22%,transparent); } 55% { box-shadow:0 0 0 5px transparent; } }
html[data-lobby-paused="true"] :is(.backdrop-scene,.backdrop-sweep),html[data-lobby-paused="true"] body:has(> .site-layout) .site-backdrop::before,html[data-lobby-paused="true"] .site-layout .activity-feed-dot { animation-play-state:paused; }
@media (hover:hover) and (pointer:fine) { .site-layout .game-tab:hover:not(:disabled) svg { transform:translateY(-2px); } }
@media (max-width:600px) { body:has(> .site-layout) .site-backdrop::before { opacity:.45; } }
@media (prefers-reduced-motion:reduce) { body:has(> .site-layout) .site-backdrop::before,.site-layout .game-panel:not([hidden]),.site-layout .welcome-bonus-page:not([hidden]),.site-layout .game-tab[aria-selected="true"]::after,.site-layout .activity-feed[data-connection="live"] .activity-feed-dot { animation:none; } .site-layout .game-tab,.site-layout .game-tab svg { transition:none; } .site-layout :is(.game-tab,.welcome-bonus-primary,.button,.upgrader-spin,.roulette-spin,.blackjack-play-actions button):not(:disabled):active { transform:none; } }

.site-audio-controls { display:inline-flex; align-items:center; gap:8px; flex:none; }
.site-audio-controls .sound-toggle { width:44px; min-height:44px; padding:9px; }

@media(max-width:650px) { .admin-panel-header:has(.site-audio-controls) { flex-wrap:wrap; } .admin-panel-header-actions:has(.site-audio-controls) { flex-wrap:wrap; min-width:0; max-width:100%; } }
