html {
  overflow-x: hidden;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Segoe UI', system-ui, sans-serif;
  background: linear-gradient(135deg, #0a0e27 0%, #1a1e3a 100%);
  min-height: 100vh;
  color: #fff;
  overflow-x: hidden;
}

.casino-page *,
.slot-modal-overlay *,
.blackjack-modal-overlay *,
.roulette-modal-overlay * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.casino-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 20px 40px;
}

.casino-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  margin-bottom: 40px;
}

.casino-header-text {
  text-align: left;
}

.casino-header h1 {
  font-size: 2.8rem;
  background: linear-gradient(90deg, #ff00ff, #ff6600, #ffcc00, #ff00ff);
  background-size: 300% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 5px;
  animation: textColorFlow 4s ease infinite;
  filter: drop-shadow(0 0 20px rgba(255, 102, 0, 0.5));
}

@keyframes textColorFlow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.casino-header p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.1rem;
  margin-top: 5px;
}

.games-section h2,
.leaderboard-section h2 {
  font-size: 1.5rem;
  color: #00ff88;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid rgba(0, 255, 136, 0.3);
}

.sponsored-banner {
  margin: 30px 0;
  text-align: center;
}

.sponsored-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 30px;
  background: linear-gradient(135deg, #1a1e3a 0%, #2a2e4a 100%);
  border: 2px solid rgba(255, 215, 0, 0.4);
  border-radius: 12px;
  color: #ffd700;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 600;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.sponsored-link:hover {
  background: linear-gradient(135deg, #2a2e4a 0%, #3a3e5a 100%);
  border-color: #ffd700;
  box-shadow: 0 0 20px rgba(255, 215, 0, 0.3);
  transform: translateY(-2px);
}

.sponsored-icon {
  font-size: 1.4rem;
}

.sponsored-text {
  color: #fff;
}

.sponsored-arrow {
  font-size: 1.2rem;
  transition: transform 0.3s ease;
}

.sponsored-link:hover .sponsored-arrow {
  transform: translateX(5px);
}

.games-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
  max-width: 100%;
}

@media (max-width: 600px) {
  .games-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .casino-page {
    padding: 8px 14px 32px;
  }
  .casino-header {
    flex-direction: column;
    gap: 14px;
    text-align: center;
  }
  .casino-header-icon > div {
    width: 150px !important;
    height: 150px !important;
  }
  .casino-header-text {
    text-align: center;
  }
  .casino-header h1 {
    font-size: 1.9rem;
    line-height: 1.08;
  }
  .casino-header p {
    font-size: 0.98rem;
  }
}

.game-card {
  background: rgba(255, 255, 255, 0.05);
  border: 2px solid rgba(255, 215, 0, 0.3);
  border-radius: 16px;
  padding: 25px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 320px;
}

.game-card:hover:not(.coming-soon) {
  transform: translateY(-5px);
  border-color: #ffd700;
  box-shadow: 0 10px 40px rgba(255, 215, 0, 0.2);
}

/* Featured games - larger and more prominent */
.game-card.featured-game {
  grid-column: span 1;
  min-height: 360px;
  border-width: 3px;
  box-shadow: 
    0 0 30px rgba(255, 215, 0, 0.3),
    inset 0 0 60px rgba(255, 215, 0, 0.05);
  animation: featuredPulse 3s ease-in-out infinite;
}

.game-card.featured-game .game-icon img {
  width: 140px;
  height: 140px;
}

.game-card.featured-game h3 {
  font-size: 1.4rem;
}

@keyframes featuredPulse {
  0%, 100% { box-shadow: 0 0 30px rgba(255, 215, 0, 0.3), inset 0 0 60px rgba(255, 215, 0, 0.05); }
  50% { box-shadow: 0 0 50px rgba(255, 215, 0, 0.5), inset 0 0 80px rgba(255, 215, 0, 0.1); }
}

.game-card.lucky-labs {
  background: linear-gradient(135deg, rgba(139, 69, 19, 0.2) 0%, rgba(10, 14, 39, 0.9) 100%);
  border-color: #8b4513;
}

.game-card.lucky-labs:hover {
  border-color: #cd853f;
  box-shadow: 0 10px 40px rgba(139, 69, 19, 0.3);
}

.game-card.coming-soon {
  opacity: 0.6;
  cursor: not-allowed;
}

.game-icon {
  width: 100px;
  height: 100px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.game-icon img,
.game-icon-img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid rgba(255, 215, 0, 0.5);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.game-card h3 {
  font-size: 1.3rem;
  margin-bottom: 8px;
  color: #fff;
  min-height: 1.5em;
}

.game-card p {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.9rem;
  margin-bottom: 12px;
  min-height: 1.2em;
  flex-grow: 0;
}

.game-badges {
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  min-height: 32px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.game-badges.dual-badges {
  flex-direction: row;
}

.game-badge {
  display: inline-block;
  background: linear-gradient(135deg, #ffd700, #ff8c00);
  color: #000;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: bold;
}

.coming-soon-badge {
  display: inline-block;
  background: rgba(255, 255, 255, 0.2);
  color: #888;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: bold;
}

.game-buttons {
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  margin-top: auto;
  width: 100%;
}

.game-buttons.dual-buttons {
  flex-direction: row;
}

.play-btn {
  background: linear-gradient(180deg, #00ff88 0%, #00cc66 50%, #009944 100%);
  color: #003322;
  border: 3px solid #44ffaa;
  padding: 10px 24px;
  border-radius: 25px;
  font-size: 0.95rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 
    0 4px 15px rgba(0, 255, 136, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  position: relative;
  overflow: hidden;
}

.play-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.25), transparent);
  border-radius: 25px 25px 0 0;
  pointer-events: none;
}

.dual-buttons .play-btn {
  padding: 10px 16px;
  font-size: 0.85rem;
  flex: 1;
}

.play-btn.multiplayer-btn {
  background: linear-gradient(180deg, #8a2be2 0%, #6a1cb2 50%, #4a0c82 100%);
  border-color: #aa4bff;
  color: #fff;
  box-shadow: 
    0 4px 15px rgba(138, 43, 226, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.play-btn:hover {
  transform: translateY(-3px) scale(1.05);
  border-color: #88ffcc;
  box-shadow: 
    0 8px 25px rgba(0, 255, 136, 0.5),
    0 0 30px rgba(0, 255, 136, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.play-btn.multiplayer-btn:hover {
  border-color: #cc7bff;
  box-shadow: 
    0 8px 25px rgba(138, 43, 226, 0.5),
    0 0 30px rgba(138, 43, 226, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.leaderboard-section {
  margin-top: 40px;
}

.leaderboard-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 15px;
}

.leaderboard-header h2 {
  margin: 0;
  border: none;
  padding: 0;
}

.period-tabs {
  display: flex;
  gap: 8px;
}

.period-tab {
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  font-size: 0.85rem;
  transition: all 0.3s ease;
}

.period-tab:hover {
  background: rgba(0, 255, 136, 0.1);
  border-color: rgba(0, 255, 136, 0.3);
}

.period-tab.active {
  background: linear-gradient(135deg, rgba(0, 255, 136, 0.2), rgba(0, 200, 100, 0.2));
  border-color: #00ff88;
  color: #00ff88;
}

.leaderboard-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lb-card {
  background: linear-gradient(135deg, rgba(20, 25, 45, 0.9), rgba(30, 35, 55, 0.9));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 16px 20px;
  display: grid;
  grid-template-columns: 50px 1fr auto;
  gap: 16px;
  align-items: center;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.lb-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(0, 255, 136, 0.3), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.lb-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0, 255, 136, 0.3);
  box-shadow: 0 8px 30px rgba(0, 255, 136, 0.15);
}

.lb-card:hover::before {
  opacity: 1;
}

.lb-card.rank-1 {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.15), rgba(40, 35, 20, 0.9));
  border-color: rgba(255, 215, 0, 0.3);
}

.lb-card.rank-2 {
  background: linear-gradient(135deg, rgba(192, 192, 192, 0.1), rgba(35, 35, 40, 0.9));
  border-color: rgba(192, 192, 192, 0.2);
}

.lb-card.rank-3 {
  background: linear-gradient(135deg, rgba(205, 127, 50, 0.1), rgba(35, 30, 25, 0.9));
  border-color: rgba(205, 127, 50, 0.2);
}

.lb-rank-badge {
  width: 45px;
  height: 45px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  font-weight: bold;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.lb-card.rank-1 .lb-rank-badge {
  background: linear-gradient(135deg, #ffd700, #ffaa00);
  color: #1a1a2e;
  border: none;
  box-shadow: 0 4px 15px rgba(255, 215, 0, 0.4);
}

.lb-card.rank-2 .lb-rank-badge {
  background: linear-gradient(135deg, #e0e0e0, #a0a0a0);
  color: #1a1a2e;
  border: none;
}

.lb-card.rank-3 .lb-rank-badge {
  background: linear-gradient(135deg, #cd7f32, #8b4513);
  color: #fff;
  border: none;
}

.lb-user-section {
  display: flex;
  align-items: center;
  gap: 14px;
}

.lb-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(255, 255, 255, 0.1);
}

.lb-card.rank-1 .lb-avatar {
  border-color: #ffd700;
  box-shadow: 0 0 15px rgba(255, 215, 0, 0.3);
}

.lb-user-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.lb-username {
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
}

.lb-record {
  display: flex;
  gap: 12px;
  font-size: 0.8rem;
}

.lb-record span {
  color: rgba(255, 255, 255, 0.6);
}

.lb-wins { color: #00ff88 !important; }
.lb-losses { color: #ff6b6b !important; }

.lb-stats-section {
  display: flex;
  gap: 20px;
  align-items: center;
}

.lb-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 70px;
}

.lb-stat-value {
  font-size: 1.1rem;
  font-weight: bold;
  color: #fff;
}

.lb-stat-value.profit-positive {
  color: #00ff88;
}

.lb-stat-value.profit-negative {
  color: #ff6b6b;
}

.lb-stat-label {
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.lb-hot-streak {
  display: flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, rgba(255, 100, 50, 0.2), rgba(255, 50, 50, 0.2));
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 0.85rem;
  color: #ff6347;
  border: 1px solid rgba(255, 100, 50, 0.3);
}

.lb-parlay-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, rgba(138, 43, 226, 0.2), rgba(75, 0, 130, 0.2));
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 0.85rem;
  color: #ba55d3;
  border: 1px solid rgba(138, 43, 226, 0.3);
}

.loading-state {
  text-align: center;
  padding: 40px;
  color: #888;
  font-size: 1rem;
}

@media (max-width: 768px) {
  .lb-card {
    grid-template-columns: 40px 1fr;
    gap: 12px;
    padding: 14px;
  }
  
  .lb-stats-section {
    grid-column: span 2;
    justify-content: space-around;
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
  
  .lb-avatar {
    width: 44px;
    height: 44px;
  }
  
  .lb-username {
    font-size: 1rem;
  }
  
  .period-tabs {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================
   GAME LEADERBOARD - Compact Tabbed Design
   ========================================== */

.game-leaderboard-section {
  margin-top: 30px;
  background: linear-gradient(135deg, rgba(20, 25, 45, 0.95), rgba(30, 35, 55, 0.95));
  border-radius: 16px;
  padding: 20px;
  border: 1px solid rgba(0, 255, 136, 0.15);
}

.game-leaderboard-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}

.game-leaderboard-header h2 {
  margin: 0;
  font-size: 1.3rem;
  color: #00ff88;
}

.game-tabs {
  display: flex;
  gap: 6px;
}

.game-tab {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 2px solid rgba(255, 255, 255, 0.1);
  font-size: 1.4rem;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.game-tab:hover {
  background: rgba(0, 255, 136, 0.1);
  border-color: rgba(0, 255, 136, 0.3);
  transform: translateY(-2px);
}

.game-tab.active {
  background: linear-gradient(135deg, rgba(0, 255, 136, 0.25), rgba(0, 200, 100, 0.2));
  border-color: #00ff88;
  box-shadow: 0 4px 15px rgba(0, 255, 136, 0.3);
}

.game-leaderboard-container {
  min-height: 150px;
}

.game-lb-title {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.game-lb-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.game-lb-row {
  display: grid;
  grid-template-columns: 40px 1fr 70px 80px;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: all 0.2s ease;
}

.game-lb-row:hover {
  background: rgba(0, 255, 136, 0.05);
  border-color: rgba(0, 255, 136, 0.2);
}

.game-lb-row.top-three {
  background: rgba(255, 215, 0, 0.05);
  border-color: rgba(255, 215, 0, 0.15);
}

.game-lb-rank {
  font-size: 1.2rem;
  text-align: center;
}

.game-lb-user {
  font-weight: 600;
  color: #fff;
  font-size: 0.95rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.game-lb-games {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
}

.game-lb-profit {
  font-weight: 700;
  font-size: 0.95rem;
  text-align: right;
}

.game-lb-profit.profit-positive {
  color: #00ff88;
}

.game-lb-profit.profit-negative {
  color: #ff6b6b;
}

@media (max-width: 600px) {
  .game-leaderboard-section {
    padding: 15px;
  }
  
  .game-tab {
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
  }
  
  .game-lb-row {
    grid-template-columns: 35px 1fr 60px;
    gap: 8px;
    padding: 8px 10px;
  }
  
  .game-lb-games {
    display: none;
  }
  
  .game-lb-user {
    font-size: 0.85rem;
  }
  
  .game-lb-profit {
    font-size: 0.85rem;
  }
}

/* ==========================================
   SLOT MACHINE - CLEAN SIMPLE DESIGN
   ========================================== */

.slot-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #1e5799 0%, #2989d8 30%, #207cca 60%, #1e5799 100%);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  overflow-y: auto;
}

.slot-game-container {
  width: 500px;
  max-width: 500px;
  position: relative;
}

.slot-close-btn {
  position: absolute;
  top: 15px;
  right: 15px;
  background: rgba(0, 0, 0, 0.7);
  border: 2px solid rgba(255, 255, 255, 0.4);
  color: #fff;
  font-size: 28px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 10001;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.slot-close-btn:hover {
  background: rgba(0, 0, 0, 0.9);
  transform: scale(1.1);
}

/* Header with Logo */
.slot-game-header {
  background: linear-gradient(180deg, #1a0a30 0%, #2d1b4e 50%, #1a0a30 100%);
  border-radius: 15px 15px 0 0;
  padding: 8px 15px 15px;
  text-align: center;
  border: 3px solid #ffd700;
  border-bottom: none;
  position: relative;
}

/* Top Light Strip - Edge Lights */
.header-lights-top {
  display: flex;
  justify-content: space-between;
  padding: 0 5px;
  margin-bottom: 6px;
}

.header-lights-top .slot-light {
  width: 10px;
  height: 10px;
}

/* Main Flashing Lights */
.header-lights {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 6px;
}

/* Second Row of Lights */
.header-lights-row2 {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-bottom: 8px;
}

.header-lights-row2 .slot-light {
  width: 12px;
  height: 12px;
}

.slot-light {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 10px #00ff88, 0 0 20px rgba(0, 255, 136, 0.5);
  animation: lightIdleGreen 1.5s ease-in-out infinite;
}

/* Alternating colors */
.slot-light:nth-child(even) {
  background: #ffd700;
  box-shadow: 0 0 10px #ffd700, 0 0 20px rgba(255, 215, 0, 0.5);
  animation: lightIdleGold 1.5s ease-in-out infinite;
}

.slot-light:nth-child(1) { animation-delay: 0s; }
.slot-light:nth-child(2) { animation-delay: 0.15s; }
.slot-light:nth-child(3) { animation-delay: 0.3s; }
.slot-light:nth-child(4) { animation-delay: 0.45s; }
.slot-light:nth-child(5) { animation-delay: 0.6s; }
.slot-light:nth-child(6) { animation-delay: 0.75s; }
.slot-light:nth-child(7) { animation-delay: 0.9s; }
.slot-light:nth-child(8) { animation-delay: 1.05s; }
.slot-light:nth-child(9) { animation-delay: 1.2s; }
.slot-light:nth-child(10) { animation-delay: 1.35s; }

@keyframes lightIdleGreen {
  0%, 100% { 
    background: #00ff88; 
    box-shadow: 0 0 10px #00ff88, 0 0 20px rgba(0, 255, 136, 0.5); 
  }
  50% { 
    background: #00cc6a; 
    box-shadow: 0 0 15px #00cc6a, 0 0 25px rgba(0, 204, 106, 0.6); 
  }
}

@keyframes lightIdleGold {
  0%, 100% { 
    background: #ffd700; 
    box-shadow: 0 0 10px #ffd700, 0 0 20px rgba(255, 215, 0, 0.5); 
  }
  50% { 
    background: #ffaa00; 
    box-shadow: 0 0 15px #ffaa00, 0 0 25px rgba(255, 170, 0, 0.6); 
  }
}

/* Spinning lights - Kennel Royale colors */
.header-lights.spinning .slot-light {
  animation: lightSpin 0.15s linear infinite;
}

.header-lights.spinning .slot-light:nth-child(odd) {
  animation-name: lightSpinMagenta;
}

.header-lights.spinning .slot-light:nth-child(even) {
  animation-name: lightSpinGold;
}

@keyframes lightSpinMagenta {
  0%, 100% { 
    background: #ff00ff; 
    box-shadow: 0 0 15px #ff00ff, 0 0 25px #ff00ff; 
  }
  50% { 
    background: #ff6600; 
    box-shadow: 0 0 15px #ff6600, 0 0 25px #ff6600; 
  }
}

@keyframes lightSpinGold {
  0%, 100% { 
    background: #ffd700; 
    box-shadow: 0 0 15px #ffd700, 0 0 25px #ffd700; 
  }
  50% { 
    background: #ff00ff; 
    box-shadow: 0 0 15px #ff00ff, 0 0 25px #ff00ff; 
  }
}

.game-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.game-logo .logo-icon {
  font-size: 2rem;
}

.game-logo .logo-text {
  font-size: 1.8rem;
  font-weight: bold;
  color: #ffd700;
  text-shadow: 2px 2px 0 #000, 0 0 20px rgba(255, 215, 0, 0.5);
  letter-spacing: 3px;
}

/* Main Game Body */
.slot-game-body {
  background: linear-gradient(180deg, #f0e6d3 0%, #e8dcc4 100%);
  padding: 20px;
  border-left: 3px solid #ffd700;
  border-right: 3px solid #ffd700;
  position: relative;
}

/* Reels Frame */
.reels-frame {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 10px;
  padding: 15px;
  border: 4px solid #8b7355;
  box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.8);
  position: relative;
}

.reels-container {
  display: flex;
  gap: 6px;
  justify-content: center;
}

.reel {
  width: 80px;
  height: 200px;
  background: linear-gradient(180deg, #fff 0%, #f5f5f5 50%, #fff 100%);
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  border: 2px solid #ccc;
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1);
}

.reel::before,
.reel::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 50px;
  z-index: 2;
  pointer-events: none;
}

.reel::before {
  top: 0;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.9), transparent);
}

.reel::after {
  bottom: 0;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.9), transparent);
}

.reel-strip {
  display: flex;
  flex-direction: column;
}

.reel-strip.spinning {
  animation: spinReel 0.1s linear infinite;
}

@keyframes spinReel {
  0% { transform: translateY(0); }
  100% { transform: translateY(-66.66px); }
}

.symbol {
  width: 80px;
  height: 66.66px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
}

.slot-symbol-img {
  width: 55px;
  height: 55px;
  object-fit: cover;
  border-radius: 50%;
  border: 2px solid #ffd700;
  box-shadow: 0 0 8px rgba(255, 215, 0, 0.5);
}

/* Row LED Lights */
.row-leds {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 16px;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  z-index: 5;
}

.row-leds.left-leds {
  left: 0;
}

.row-leds.right-leds {
  right: 0;
}

.led-row {
  position: absolute;
  left: 0;
  right: 0;
  height: 66.66px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

.led-row.top-row {
  top: 15px;
}

.led-row.middle-row {
  top: 81.66px;
}

.led-row.bottom-row {
  top: 148.33px;
}

.led {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #333;
  border: 1px solid #222;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.5);
  transition: all 0.3s ease;
}

.led-row.active .led {
  background: radial-gradient(circle at 30% 30%, #66ffaa, #00ff88 40%, #00cc66);
  border-color: #00ff88;
  box-shadow: 
    0 0 8px #00ff88,
    0 0 15px rgba(0, 255, 136, 0.6),
    inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: ledPulse 1.5s ease-in-out infinite;
}

@keyframes ledPulse {
  0%, 100% {
    box-shadow: 
      0 0 8px #00ff88,
      0 0 15px rgba(0, 255, 136, 0.6),
      inset 0 -2px 4px rgba(0,0,0,0.3);
  }
  50% {
    box-shadow: 
      0 0 12px #00ff88,
      0 0 25px rgba(0, 255, 136, 0.8),
      inset 0 -2px 4px rgba(0,0,0,0.3);
  }
}

/* Win Popup */
.win-popup {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: linear-gradient(135deg, #00ff88 0%, #00cc66 100%);
  padding: 20px 40px;
  border-radius: 15px;
  text-align: center;
  z-index: 100;
  animation: winPop 0.5s ease-out;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.win-popup.jackpot {
  background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
}

@keyframes winPop {
  0% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
  50% { transform: translate(-50%, -50%) scale(1.2); }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

.win-popup .win-text {
  font-size: 1.2rem;
  font-weight: bold;
  color: #000;
  margin-bottom: 5px;
}

.win-popup .win-amount {
  font-size: 2rem;
  font-weight: bold;
  color: #000;
}

/* Controls Section */
.slot-game-controls {
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%);
  padding: 20px;
  border-radius: 0 0 15px 15px;
  border: 3px solid #ffd700;
  border-top: none;
}

/* Info Panel */
.info-panel {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-bottom: 15px;
}

.info-box {
  background: #0a0a15;
  border: 2px solid #444;
  border-radius: 8px;
  padding: 10px 20px;
  text-align: center;
  min-width: 90px;
}

.info-box.win-box {
  border-color: #00ff88;
}

.info-label {
  display: block;
  font-size: 0.7rem;
  color: #888;
  letter-spacing: 1px;
  margin-bottom: 4px;
}

.info-value {
  font-size: 1.3rem;
  font-weight: bold;
  color: #ffd700;
}

.info-box.win-box .info-value {
  color: #00ff88;
}

/* Controls Row */
.controls-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

/* Bet Selector */
.bet-selector {
  display: flex;
  gap: 8px;
}

.bet-btn {
  width: 55px;
  height: 50px;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border: 2px solid #555;
  border-radius: 8px;
  color: #fff;
  font-size: 0.95rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.bet-btn:hover {
  background: linear-gradient(180deg, #555 0%, #333 100%);
  border-color: #ffd700;
}

.bet-btn.active {
  background: linear-gradient(180deg, #00aa66 0%, #006644 100%);
  border-color: #00ff88;
  box-shadow: 0 0 10px rgba(0, 255, 136, 0.4);
}

.bet-btn small {
  display: block;
  font-size: 0.55rem;
  font-weight: normal;
  color: #aaa;
  margin-top: 2px;
}

.bet-btn.active small {
  color: #aaffcc;
}

/* Paylines Indicator */
.paylines-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 12px;
  padding: 8px 15px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 20px;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.lines-label {
  font-size: 0.75rem;
  color: #888;
  letter-spacing: 1px;
}

.line-dots {
  display: flex;
  gap: 6px;
}

.line-dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #333;
  border: 2px solid #555;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: bold;
  color: #666;
  transition: all 0.3s;
}

.line-dot.active {
  background: linear-gradient(180deg, #00cc66 0%, #008844 100%);
  border-color: #00ff88;
  color: #fff;
  box-shadow: 0 0 10px rgba(0, 255, 136, 0.5);
}

/* Spin Button */
.spin-btn {
  width: 100px;
  height: 50px;
  background: linear-gradient(180deg, #00cc66 0%, #008844 100%);
  border: 3px solid #00ff88;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 0 #005533;
}

.spin-btn:hover:not(:disabled) {
  background: linear-gradient(180deg, #00dd77 0%, #009955 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 0 #005533, 0 0 20px rgba(0, 255, 136, 0.4);
}

.spin-btn:active:not(:disabled) {
  transform: translateY(2px);
  box-shadow: 0 2px 0 #005533;
}

.spin-btn:disabled {
  background: linear-gradient(180deg, #555 0%, #333 100%);
  border-color: #666;
  box-shadow: 0 4px 0 #222;
  cursor: not-allowed;
}

.spin-btn .spin-text {
  font-size: 1.2rem;
  font-weight: bold;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  letter-spacing: 2px;
}

/* Paytable Bar */
.paytable-bar {
  margin-top: 15px;
}

.paytable-toggle-btn {
  width: 100%;
  padding: 10px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font-size: 0.9rem;
  transition: all 0.2s;
}

.paytable-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.15);
}

.paytable-dropdown {
  margin-top: 10px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 8px;
  padding: 15px;
}

.paytable-section {
  margin-bottom: 12px;
}

.paytable-section:last-child {
  margin-bottom: 0;
}

.paytable-title {
  font-size: 0.75rem;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.paytable-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.paytable-grid.small .pay-item {
  padding: 6px 10px;
}

.paytable-grid.small .pay-item span:first-child {
  font-size: 0.9rem;
}

.pay-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 6px;
}

.pay-item span:first-child {
  font-size: 1rem;
}

.pay-item span:last-child {
  color: #00ff88;
  font-weight: bold;
  font-size: 0.9rem;
}

.pay-item.jackpot {
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.3);
  grid-column: span 2;
}

.pay-item.jackpot span:last-child {
  color: #ffd700;
}

/* Jackpot Animation */
.slot-game-container.jackpot-shake {
  animation: jackpotShake 0.5s ease-in-out 3;
}

@keyframes jackpotShake {
  0%, 100% { transform: translateX(0); }
  10% { transform: translateX(-10px) rotate(-1deg); }
  20% { transform: translateX(10px) rotate(1deg); }
  30% { transform: translateX(-8px); }
  40% { transform: translateX(8px); }
  50% { transform: translateX(-5px); }
  60% { transform: translateX(5px); }
  70% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}

/* Mobile Responsive - Scale entire slot machine */
@media (max-width: 500px) {
  .slot-modal-overlay {
    padding: 10px;
    align-items: center;
  }
  
  .slot-game-container:not(.ll-cabinet) {
    transform: scale(0.85);
    transform-origin: center center;
  }
  
  .paytable-grid {
    grid-template-columns: 1fr;
  }
  
  .pay-item.jackpot {
    grid-column: span 1;
  }
}

/* Small phones */
@media (max-width: 414px) {
  .slot-game-container:not(.ll-cabinet) {
    transform: scale(0.78);
  }
}

/* Extra small screens (iPhone SE 375px) */
@media (max-width: 375px) {
  .slot-modal-overlay {
    padding: 5px;
  }
  
  .slot-game-container:not(.ll-cabinet) {
    transform: scale(0.68);
  }
}

/* Very small screens (iPhone SE 320px / older devices) */
@media (max-width: 320px) {
  .slot-game-container:not(.ll-cabinet) {
    transform: scale(0.58);
  }
}

/* ============== BEAGLE BLACKJACK STYLES ============== */
/* Premium violet felt table with luxury finishes - matching Hound Hold 'Em */

.game-card.beagle-blackjack {
  border-color: rgba(138, 43, 226, 0.4);
}

.game-card.beagle-blackjack:hover {
  border-color: #8a2be2;
  box-shadow: 0 0 30px rgba(138, 43, 226, 0.4);
}

.game-badge.blackjack-badge {
  background: linear-gradient(135deg, #8a2be2 0%, #6a1cb2 100%);
  color: #fff;
}


/* ============== BEAGLE BLACKJACK — High-Roller Dog Lounge ============== */
.blackjack-modal-overlay {
  position: fixed;
  inset: 0;
  background: radial-gradient(ellipse at center 35%, #11573D 0%, #0A3324 55%, #060913 100%);
  display: flex;
  align-items: stretch;
  justify-content: center;
  z-index: 10000;
  padding: 0;
}

.kr-bj {
  --kr-bg: #060913;
  --kr-surface: #0C1222;
  --kr-green-dark: #0A3324;
  --kr-green-felt: #11573D;
  --kr-green-bright: #1AB273;
  --kr-gold: #D4AF37;
  --kr-gold-light: #FDF0B0;
  --kr-gold-dark: #997A15;
  position: relative;
  width: 100%;
  max-width: none;
  height: 100%;
  display: flex;
  flex-direction: column;
  color: #fff;
  font-family: 'Outfit', system-ui, -apple-system, sans-serif;
  overflow: hidden;
  user-select: none;
}

/* ---- Top HUD ---- */
.kr-bj-hud {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
}
.kr-bj-leave {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(8, 12, 10, 0.62);
  border: 1px solid rgba(212, 175, 110, 0.55);
  border-radius: 999px;
  padding: 7px 16px;
  cursor: pointer;
  color: var(--kr-gold-light);
  font-family: 'Cinzel', Georgia, serif;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.85rem;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.kr-bj-leave:hover {
  color: #fff;
  background: rgba(8, 12, 10, 0.8);
  border-color: var(--kr-gold-light);
}
.kr-bj-leave-ico { font-size: 1.2rem; line-height: 1; }

.kr-bj-wallet {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(6, 9, 19, 0.8);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--kr-gold-dark);
  border-radius: 999px;
  padding: 6px 8px 6px 14px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.kr-bj-coin { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.kr-bj-wallet-amt { font-weight: 700; letter-spacing: 0.03em; color: #fff; }
.kr-bj-gethc {
  display: inline-flex; align-items: center; gap: 4px;
  background: linear-gradient(135deg, var(--kr-green-bright), var(--kr-green-felt));
  color: #fff; border: 1px solid rgba(26, 178, 115, 0.5);
  border-radius: 999px; padding: 6px 14px; font-size: 0.8rem; font-weight: 600;
  cursor: pointer; transition: all 0.2s;
}
.kr-bj-gethc:hover { box-shadow: 0 4px 16px rgba(26, 178, 115, 0.4); transform: translateY(-1px); }
.kr-bj-sound {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px;
  background: rgba(0, 0, 0, 0.35); border: 1px solid var(--kr-gold-dark);
  color: var(--kr-gold-light); cursor: pointer;
  border-radius: 999px; padding: 0;
  transition: all 0.2s;
}
.kr-bj-sound:hover { color: #fff; border-color: var(--kr-gold); }
.kr-bj-sound.is-on { color: #fff; background: rgba(26, 178, 115, 0.22); border-color: var(--kr-green-bright); }
.kr-bj-sound-ico { font-size: 1.15rem; line-height: 1; }

/* ============================================================
   3D DEALER TABLE — the player is seated across from the beagle.
   The felt is a real surface tilted away into the screen (perspective),
   the dealer stands upright at the far edge dealing toward you, and his
   tools (shoe, chip tray), the betting circle and both hands live ON the
   felt so nothing reads as a flat cut-out pasted on top.
   ============================================================ */
.kr-bj-table {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #060b08;
  container-type: size;
}
/* The entire scene — casino room, felt table and the animated beagle dealer —
   is baked into ONE 16:9 video (room + table + green-screen dealer composited
   at build time). The stage is locked to 16:9 and fitted inside the table area,
   so the video shows with NO crop and every overlay (cards, bet chip) lands on
   the exact same felt spot at any size — desktop or mobile. */
.kr-bj-stage {
  position: relative;
  height: 100%;
  aspect-ratio: 16 / 9;
  margin: auto;
  container-type: inline-size;
  /* Everything on the felt (cards, chip) is sized RELATIVE to the stage via
     container units, so the whole scene scales as one unit — the desktop
     layout simply shrunk to fit. The min() caps keep desktop pixel-identical
     (the cqw value only wins once the stage gets small, e.g. on phones). */
  --card-w: min(84px, 10.5cqw);
  --chip-w: min(46px, 5.75cqw);
}
/* When the table area is taller/narrower than 16:9 (e.g. phones), fit by width
   instead so nothing overflows; the stage stays exactly 16:9 either way. */
@container (max-aspect-ratio: 16 / 9) {
  .kr-bj-stage { height: auto; width: 100%; }
}
/* NOTE: no @media(max-aspect-ratio) fallback here on purpose — @media reads the
   VIEWPORT aspect, but this stage's container (the table area) is wide-and-short
   on desktop, so a viewport-based rule wrongly fits-by-width and crops desktop.
   The @container rule above is the correct (container-aware) mechanism; browsers
   without container queries (pre-iOS16, now ~1%) fall back to the base rule and
   degrade gracefully: the stage stays 16:9 and centered, so the dealer + felt +
   cards remain aligned and only the side patrons crop. */
.kr-bj-dealer-vid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Two idle copies ping-pong underneath for a seamless loop (only the .is-active
   one is visible); one-shot clips stack on top as .kr-bj-overlay and fade in/out,
   so every transition reveals the live idle with NO reload and NO pause. */
.kr-bj-idle {
  z-index: 1;
  opacity: 0;
  transition: opacity 0.4s ease;
  will-change: opacity;
}
.kr-bj-idle.is-active { opacity: 1; }
.kr-bj-overlay {
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease;
  will-change: opacity;
}
.kr-bj-overlay.is-playing { opacity: 1; }
/* card holders anchored on the baked felt (percentages of the 16:9 stage) */
.kr-bj-onfelt {
  position: absolute; left: 50%;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  z-index: 4;
  pointer-events: none;
}
.kr-bj-onfelt-dealer {
  top: 45%;
  transform: translateX(-50%) scale(0.58);
}
.kr-bj-onfelt-player {
  top: 70%;
  transform: translateX(-50%) scale(0.78);
}
/* The hand-total pill is inside the scaled hand wrappers, so it shrinks with the
   cards (the dealer's especially). Counter-scale it so the TOTAL stays a readable
   ~18px regardless of how small the cards are — cards/positions are untouched. */
.kr-bj-onfelt-dealer .kr-bj-score { transform: scale(1.9); transform-origin: center top; }
.kr-bj-onfelt-player .kr-bj-score { transform: scale(1.45); transform-origin: center top; }

/* Small (phone) stages: cards become proportionally bigger here (10.5cqw beats
   the 84px desktop cap once the stage is < 800px wide), so the two hands used to
   collide and the player's cards covered the HOUSE total. Fix, scoped to small
   stages so desktop stays pixel-identical: (1) pull the hands further apart, and
   (2) move the dealer's TOTAL ABOVE its cards with a higher z-index so the
   player's cards below can never cover it. */
@container (max-width: 800px) {
  .kr-bj-onfelt-dealer { top: 36%; z-index: 6; flex-direction: column-reverse; }
  .kr-bj-onfelt-player { top: 73%; }
  .kr-bj-onfelt-dealer .kr-bj-score {
    margin: 0 0 8px; transform-origin: center bottom;
  }
}

/* ---- Your bet chip on the rail in front of you ---- */
.kr-bj-betchip {
  position: absolute; left: 16%; top: 90%; transform: translate(-50%, -50%);
  z-index: 6;
  --chip-w: 28px;
  display: flex; align-items: center; gap: calc(var(--chip-w) * 0.2);
}
.kr-bj-chip {
  width: var(--chip-w); height: var(--chip-w); border-radius: 50%;
  border: max(2px, 0.087em) dashed #fff; background: var(--kr-green-dark);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.4); flex-shrink: 0;
}
.kr-bj-chip img { width: calc(var(--chip-w) * 0.478); height: calc(var(--chip-w) * 0.478); opacity: 0.9; border-radius: 50%; object-fit: cover; }
.kr-bj-bet-label {
  color: var(--kr-gold-light);
  font-size: max(9px, min(0.8rem, 1.45cqw)); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap;
}
/* Blackjack's bet chip is moved out to the .kr-bj-table (the visible, non-
   overflowing box) and pinned to its bottom-left corner, so it can never land
   on the centered player-score pill no matter how far the zoomed stage
   overflows the screen on a given phone. */
#blackjack-modal .kr-bj-betchip,
#topdogwar-modal .kr-bj-betchip,
#threecardhound-modal .kr-bj-betchip { left: 3%; bottom: 5%; top: auto; right: auto; transform: none; }

/* ---- Score pills ---- */
.kr-bj-score {
  margin-top: 12px;
  background: rgba(0, 0, 0, 0.82);
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  color: #fff; font-weight: 800; letter-spacing: 0.04em;
  font-size: 1rem; padding: 5px 16px; border-radius: 999px;
  min-width: 44px; text-align: center;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.95);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
}
.kr-bj-score:empty { display: none; }
.kr-bj-score-gold {
  background: rgba(212, 175, 55, 0.18);
  border: 1px solid var(--kr-gold);
  color: var(--kr-gold-light);
  box-shadow: 0 0 15px rgba(212, 175, 55, 0.3);
}

/* ---- Cards ---- */
.kr-bj-cards {
  display: flex; align-items: center; justify-content: center;
  min-height: calc(var(--card-w) * 1.452);
}
.kr-bj-cards .playing-card:not(:first-child) { margin-left: calc(var(--card-w) * -0.405); }

.playing-card {
  position: relative;
  width: var(--card-w); height: calc(var(--card-w) * 1.452);
  font-size: var(--card-w); /* inner rank/suit/pip use em, so they scale with the card */
  border-radius: 0.143em;
  background: #fff;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.4);
  flex-shrink: 0;
  color: #1a1a1a;
  animation: kr-card-deal 0.4s ease backwards;
}
.kr-bj-cards .playing-card:nth-child(odd) { transform: rotate(-4deg); }
.kr-bj-cards .playing-card:nth-child(even) { transform: rotate(4deg); }
.playing-card.card-red { color: #D32F2F; }
.playing-card.card-black { color: #1a1a1a; }

.playing-card .card-corner {
  position: absolute;
  display: flex; flex-direction: column; align-items: center;
  line-height: 1; font-weight: 700;
}
.playing-card .card-corner-tl { top: 0.107em; left: 0.119em; }
.playing-card .card-corner-br { bottom: 0.107em; right: 0.119em; transform: rotate(180deg); }
.playing-card .cc-rank { font-size: 0.219em; }
.playing-card .cc-suit { font-size: 0.19em; margin-top: 0.012em; }
.playing-card .card-pip {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  font-size: 0.61em; opacity: 0.15;
}

.playing-card.card-back {
  background:
    linear-gradient(135deg, #060913 25%, #0C1222 25%, #0C1222 50%, #060913 50%, #060913 75%, #0C1222 75%, #0C1222 100%);
  background-size: 18px 18px;
  border: 2px solid #fff;
  display: flex; align-items: center; justify-content: center;
}
.playing-card.card-back::after {
  content: ''; position: absolute; inset: 0.095em;
  border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 0.095em;
}
.playing-card.card-back .card-back-img {
  width: 0.452em; height: 0.452em; opacity: 0.35; position: relative; z-index: 1;
}

@keyframes kr-card-deal {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ---- Result overlay ---- */
/* Transparent floating text near the top so it NEVER covers the cards/felt. */
.blackjack-result {
  position: absolute; top: 26%; left: 50%; transform: translate(-50%, -50%);
  z-index: 60;
  text-align: center;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  pointer-events: none;
  animation: kr-result-pop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.blackjack-result .result-text {
  font-family: 'Cinzel', Georgia, serif; font-size: 2.4rem; font-weight: 900; margin-bottom: 6px;
  text-shadow: 0 2px 6px rgba(0,0,0,0.95), 0 0 22px rgba(0,0,0,0.9), 0 0 44px rgba(0,0,0,0.7);
}
.blackjack-result .result-amount { font-size: 1.4rem; font-weight: 700;
  text-shadow: 0 2px 6px rgba(0,0,0,0.95), 0 0 18px rgba(0,0,0,0.85); }
.blackjack-result.win .result-text { color: var(--kr-gold-light); }
.blackjack-result.win .result-amount { color: var(--kr-green-bright); }
.blackjack-result.lose .result-text { color: #ff6b6b; }
.blackjack-result.lose .result-amount { color: #ff6b6b; }
.blackjack-result.push .result-text { color: #cbd5e1; }
.blackjack-result.push .result-amount { color: var(--kr-gold-light); }
@keyframes kr-result-pop {
  from { transform: translate(-50%, -50%) scale(0.8); opacity: 0; }
  to { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

/* ---- Bottom controls ---- */
.kr-bj-controls {
  position: relative; z-index: 40;
  background: rgba(6, 9, 19, 0.95);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--kr-gold-dark);
  padding: 20px 16px 24px;
  /* Locked height so the table area NEVER resizes between betting / action /
     newgame states — otherwise the felt (positioned as a % of the table) jumps. */
  min-height: 248px;
  display: flex; flex-direction: column; justify-content: center;
}
.kr-bj-action, .kr-bj-newgame {
  max-width: 640px; margin: 0 auto;
  display: flex; align-items: center; justify-content: center; gap: 18px;
}
.kr-bj-betting {
  max-width: 640px; margin: 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
/* Top Dog War: DEAL button stays its natural (small) size, dead-center, with
   clear space above the amount buttons. flex:0 0 auto + width:auto stop the
   mobile `.kr-bj-btn { flex:1 1 0 }` rule from stretching/enlarging it. */
#tdw-betting-panel, #betting-panel, #tch-betting-panel { gap: 24px; }
#tdw-betting-panel #tdw-deal-btn,
#betting-panel #deal-btn,
#tch-betting-panel #tch-deal-btn {
  align-self: center;
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
}
.kr-bj-betrow { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; }
.kr-bj-betrow-label {
  color: var(--kr-gold-light); font-size: 0.72rem; letter-spacing: 0.18em;
  text-transform: uppercase; font-weight: 700;
}
.kr-bj-chips { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }

.chip-btn, .tdw-chip-btn, .tch-chip-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(12, 18, 34, 0.9);
  border: 2px solid var(--kr-gold-dark);
  color: #fff; font-weight: 700; font-size: 0.85rem;
  padding: 8px 14px; border-radius: 999px; cursor: pointer;
  transition: all 0.2s;
}
.chip-btn img, .tdw-chip-btn img, .tch-chip-btn img { width: 16px; height: 16px; border-radius: 50%; object-fit: cover; }
.chip-btn:hover, .tdw-chip-btn:hover, .tch-chip-btn:hover { border-color: var(--kr-gold); transform: translateY(-2px); }
.chip-btn.selected, .tdw-chip-btn.selected, .tch-chip-btn.selected {
  background: linear-gradient(135deg, var(--kr-gold), var(--kr-gold-dark));
  color: var(--kr-bg); border-color: var(--kr-gold-light);
  box-shadow: 0 0 16px rgba(212, 175, 55, 0.4);
}

.kr-bj-btn {
  min-width: 120px; padding: 15px 18px;
  border-radius: 12px; font-weight: 800; font-size: 1.05rem;
  text-transform: uppercase; letter-spacing: 0.06em; cursor: pointer;
  transition: transform 0.12s, box-shadow 0.12s;
  border: 1px solid;
  white-space: nowrap; text-align: center; box-sizing: border-box;
}
.kr-bj-btn:active:not(:disabled) { transform: translateY(3px); }
.kr-bj-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.kr-bj-btn-dark {
  color: #fff; background: linear-gradient(to bottom, #4A4A4A, #2D2D2D);
  border-color: #666; box-shadow: 0 4px 0 #1A1A1A;
}
.kr-bj-btn-green {
  color: #fff; background: linear-gradient(to bottom, var(--kr-green-bright), var(--kr-green-felt));
  border-color: #2EE59D; box-shadow: 0 4px 0 var(--kr-green-dark);
}
.kr-bj-btn-green:hover:not(:disabled) { box-shadow: 0 4px 0 var(--kr-green-dark), 0 0 20px rgba(26, 178, 115, 0.4); }
.kr-bj-btn-gold {
  color: var(--kr-bg); background: linear-gradient(to bottom, var(--kr-gold-light), var(--kr-gold));
  border-color: #fff; box-shadow: 0 4px 0 var(--kr-gold-dark);
}
.kr-bj-btn-gold:hover:not(:disabled) { box-shadow: 0 4px 0 var(--kr-gold-dark), 0 0 20px rgba(212, 175, 55, 0.4); }

/* ---- Rules ---- */
.kr-bj-rules-wrap { max-width: 640px; margin: 14px auto 0; text-align: center; }
.kr-bj-rules-toggle {
  background: none; border: none; color: rgba(253, 240, 176, 0.6);
  font-size: 0.78rem; cursor: pointer; letter-spacing: 0.1em; text-transform: uppercase;
}
.kr-bj-rules-toggle:hover { color: var(--kr-gold-light); }
.kr-bj-rules { margin-top: 10px; color: #94a3b8; font-size: 0.8rem; line-height: 1.7; }
.kr-bj-rules strong { color: var(--kr-gold-light); }

/* ---- Responsive ---- */
@media (max-width: 640px) {
  /* A 16:9 video is short on a tall phone, so the table area (which fills all
     the height above the bet panel) left a big empty felt band. Bottom-align the
     stage so the game sits FLUSH directly above the bet controls as one unit;
     the unavoidable leftover space consolidates at the TOP under the HUD, where
     it reads as the back of the room instead of a floaty gap in the middle.
     The video isn't cropped or resized, so every on-felt overlay stays aligned.
     Scoped to #blackjack-modal because .kr-bj-table is shared by the Top Dog War
     and Three Card Hound modals too — they keep their original centered layout.
     We ENLARGE the 16:9 stage to the table's full height so the video fills the
     screen instead of floating in a short band; the extra width overflows and is
     clipped by .kr-bj-table's overflow:hidden (centered, so only the room's far
     edges crop — the dealer, felt and cards stay centered). Every on-felt overlay
     is positioned as a % of the stage, so they scale up with it and stay glued to
     the felt. The bet chip normally hugs the left edge (16%) which would be
     cropped away, so we re-center it for the zoomed-in mobile view. */
  /* On a wide full-height stage --card-w hits its 84px desktop cap, making each
     hand tall and crowding the bottom rail. Shrink the cards so both hands stay
     compact, then re-space them for this zoomed-in view: dealer high on the felt,
     player mid, bet chip alone on the rail below the player's total (which clears
     the rounded table bottom). */
  #blackjack-modal .kr-bj-stage { height: 88%; width: auto; --card-w: 56px; }
  #blackjack-modal .kr-bj-onfelt-dealer { top: 40%; }
  #blackjack-modal .kr-bj-onfelt-player { top: 66%; }
  #blackjack-modal .kr-bj-betchip { left: 3%; bottom: 4%; top: auto; transform: none; gap: 3px; --chip-w: 22px; }
  /* Top Dog War gets the SAME mobile zoom + centered, readable bet chip as
     Beagle Blackjack. Its felt is a duel (two seats side-by-side + a VS badge)
     that already scales uniformly, so only the stage fill and the bet chip
     position need overriding — the seat anchors stay as authored. */
  #topdogwar-modal .kr-bj-stage { height: 88%; width: auto; }
  #topdogwar-modal .kr-bj-betchip { left: 3%; bottom: 4%; top: auto; transform: none; gap: 3px; --chip-w: 22px; }
  /* Three Card Hound gets the SAME mobile zoom + centered bet chip. Its felt is a
     two-row layout (dealer hand up, your hand along the front rail) that scales
     uniformly, so only the stage fill and bet chip position need overriding. */
  #threecardhound-modal .kr-bj-stage { height: 88%; width: auto; --card-w: 50px; }
  /* Spread the two hands apart so the dealer row and your row aren't stacked on
     top of each other on the tall mobile felt, and shrink the cards so both fit. */
  #threecardhound-modal .kr-tch-onfelt-dealer { top: 48%; }
  #threecardhound-modal .kr-tch-onfelt-player { top: 80%; }
  /* Ante chip is pinned to the visible table corner (same mechanism as blackjack)
     so it never overlaps the centered cards regardless of stage overflow. */
  #threecardhound-modal .kr-bj-betchip { left: 3%; bottom: 4%; top: auto; transform: none; gap: 3px; --chip-w: 22px; }
  /* Gold-on-green is hard to read here, so give the bet amount a dark pill and
     bright text on mobile so it pops off the felt (all three games). */
  #blackjack-modal .kr-bj-bet-label,
  #topdogwar-modal .kr-bj-bet-label,
  #threecardhound-modal .kr-bj-bet-label {
    background: rgba(0, 0, 0, 0.72);
    color: #ffd86b;
    padding: 4px 11px;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.55);
    font-size: max(11px, min(0.85rem, 1.6cqw));
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
  }
  /* Blackjack: keep the bet chip compact and tucked in the bottom-left corner
     so it can never overlap the centered player-score pill. */
  #blackjack-modal .kr-bj-bet-label,
  #topdogwar-modal .kr-bj-bet-label,
  #threecardhound-modal .kr-bj-bet-label {
    font-size: 10px;
    padding: 3px 8px;
    letter-spacing: 0.04em;
  }
  /* ---- Top HUD: scale every element fluidly so the sound toggle, coin,
     balance and Get HC pill shrink to fit instead of crowding the bar. ---- */
  .kr-bj-hud { padding: min(12px, 3vw) min(14px, 3.6vw); }
  .kr-bj-leave { font-size: min(0.72rem, 3vw); letter-spacing: 0.08em; }
  .kr-bj-leave-ico { font-size: min(1.1rem, 4.4vw); }
  .kr-bj-wallet { gap: min(8px, 2vw); padding: min(5px, 1.4vw) min(8px, 2vw) min(5px, 1.4vw) min(11px, 2.8vw); }
  .kr-bj-coin { width: min(22px, 5.4vw); height: min(22px, 5.4vw); }
  .kr-bj-wallet-amt { font-size: min(0.95rem, 3.6vw); }
  .kr-bj-gethc { padding: min(6px, 1.6vw) min(12px, 3vw); font-size: min(0.78rem, 3vw); gap: 2px; }
  .kr-bj-sound { width: min(34px, 8.4vw); height: min(34px, 8.4vw); }
  .kr-bj-sound-ico { font-size: min(1.05rem, 4.2vw); }
  /* Hands, score pills and the bet chip now scale with the stage via container
     units (see .kr-bj-stage), so there are NO per-width card/hand overrides
     here — the felt is just the desktop layout shrunk uniformly to fit. */
  .blackjack-result { top: 24%; }
  .blackjack-result .result-text { font-size: 1.7rem; }
  .blackjack-result .result-amount { font-size: 1.1rem; }
  /* Action buttons live below the felt. CRITICAL: .kr-bj-action has
     `margin: 0 auto`, and auto margins on a flex item cancel align-items:stretch,
     collapsing the row to content width — which squeezed the three buttons so
     DOUBLE clipped. Force the row to full width so flex:1 gives equal thirds. */
  .kr-bj-action { width: 100%; gap: min(8px, 1.4vw); }
  .kr-bj-btn { min-width: 0; flex: 1 1 0; padding: min(13px, 1.7vw) min(10px, 1.3vw); font-size: min(0.95rem, 3.6vw); letter-spacing: 0.02em; }
  .chip-btn, .tdw-chip-btn, .tch-chip-btn { padding: 7px 11px; font-size: 0.78rem; }
}
@media (max-width: 360px) {
  .chip-btn, .tdw-chip-btn, .tch-chip-btn { padding: 6px 9px; font-size: 0.72rem; }
}

/* ============== ROVER ROULETTE STYLES ============== */

.game-card.rover-roulette {
  border-color: rgba(255, 165, 0, 0.4);
}

.game-card.rover-roulette:hover {
  border-color: #ffa500;
  box-shadow: 0 0 30px rgba(255, 165, 0, 0.4);
}

.game-badge.roulette-badge {
  background: linear-gradient(135deg, #ffa500 0%, #ff6600 100%);
  color: #0a0e27;
}

.game-card.puppy-plunge {
  border-color: rgba(0, 255, 136, 0.4);
}

.game-card.puppy-plunge:hover {
  border-color: #00ff88;
  box-shadow: 0 0 30px rgba(0, 255, 136, 0.4);
}

.game-badge.plunge-badge {
  background: linear-gradient(135deg, #00ff88 0%, #00cc66 100%);
  color: #0a0e27;
}

.game-card.hound-holdem {
  border-color: rgba(138, 43, 226, 0.4);
}

.game-card.hound-holdem:hover {
  border-color: #8a2be2;
  box-shadow: 0 0 30px rgba(138, 43, 226, 0.4);
}

.game-badge.poker-badge {
  background: linear-gradient(135deg, #8a2be2 0%, #6a1bb0 100%);
  color: #fff;
}

.roulette-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 10px;
}

.roulette-game-container {
  background: linear-gradient(180deg, #1a1e3a 0%, #0a0e27 100%);
  border-radius: 15px;
  width: 100%;
  max-width: 700px;
  max-height: 90vh;
  position: relative;
  border: 3px solid #ffa500;
  box-shadow: 0 0 50px rgba(255, 165, 0, 0.3);
  padding: 12px;
  display: flex;
  flex-direction: column;
}

.roulette-close-btn {
  position: absolute;
  top: 10px;
  right: 15px;
  background: none;
  border: none;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
  z-index: 10;
  opacity: 0.7;
  transition: all 0.3s;
}

.roulette-close-btn:hover {
  opacity: 1;
  transform: scale(1.1);
}

.roulette-header {
  text-align: center;
  margin-bottom: 8px;
  flex-shrink: 0;
}

.roulette-logo {
  font-size: 1.3rem;
  font-weight: bold;
  color: #ffa500;
  text-shadow: 0 0 20px rgba(255, 165, 0, 0.5);
}

.roulette-game-area {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 20px;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.wheel-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
}

.wheel-container {
  position: relative;
  width: 280px;
  height: 280px;
}

.roulette-game-area .wheel-pointer {
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.5rem;
  color: #ff0000;
  z-index: 10;
  filter: drop-shadow(0 0 8px #000) drop-shadow(0 0 15px rgba(255, 0, 0, 0.8));
  text-shadow: 0 0 3px #fff, 0 0 6px #fff;
}

.roulette-wheel {
  width: 280px;
  height: 280px;
  border-radius: 50%;
  position: relative;
  border: 6px solid #ffd700;
  box-shadow: 
    0 0 30px rgba(255, 215, 0, 0.6),
    0 0 60px rgba(255, 215, 0, 0.3),
    inset 0 0 30px rgba(0, 0, 0, 0.5);
  background: conic-gradient(
    from 0deg,
    #8B4513 0deg 30deg,
    #FFD700 30deg 60deg,
    #1a1a1a 60deg 90deg,
    #8B4513 90deg 120deg,
    #FFD700 120deg 150deg,
    #1a1a1a 150deg 180deg,
    #8B4513 180deg 210deg,
    #FFD700 210deg 240deg,
    #1a1a1a 240deg 270deg,
    #8B4513 270deg 300deg,
    #FFD700 300deg 330deg,
    #1a1a1a 330deg 360deg
  );
  transition: transform 4s cubic-bezier(0.17, 0.67, 0.12, 0.99);
}

.roulette-wheel.spinning {
  animation: none;
}

.wheel-segment {
  position: absolute;
  width: 50%;
  height: 50%;
  left: 50%;
  top: 0;
  transform-origin: 0% 100%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 20px;
}

.wheel-segment:nth-child(1) { transform: rotate(15deg); }
.wheel-segment:nth-child(2) { transform: rotate(45deg); }
.wheel-segment:nth-child(3) { transform: rotate(75deg); }
.wheel-segment:nth-child(4) { transform: rotate(105deg); }
.wheel-segment:nth-child(5) { transform: rotate(135deg); }
.wheel-segment:nth-child(6) { transform: rotate(165deg); }
.wheel-segment:nth-child(7) { transform: rotate(195deg); }
.wheel-segment:nth-child(8) { transform: rotate(225deg); }
.wheel-segment:nth-child(9) { transform: rotate(255deg); }
.wheel-segment:nth-child(10) { transform: rotate(285deg); }
.wheel-segment:nth-child(11) { transform: rotate(315deg); }
.wheel-segment:nth-child(12) { transform: rotate(345deg); }

.segment-icon {
  font-size: 1.4rem;
  transform: rotate(0deg);
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.9));
}

.roulette-wheel .wheel-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 55px;
  height: 55px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffd700 0%, #ffa500 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  border: 4px solid #fff;
  box-shadow: 0 0 20px rgba(255, 215, 0, 0.6);
}

.wheel-result {
  margin-top: 20px;
  text-align: center;
  padding: 15px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  border: 2px solid #ffa500;
}

.result-pocket {
  font-size: 1.5rem;
  color: #fff;
  margin-bottom: 10px;
}

.result-payout {
  font-size: 1.8rem;
  font-weight: bold;
}

.result-payout.win {
  color: #00ff88;
}

.result-payout.lose {
  color: #ff4444;
}

.betting-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: hidden;
}

.roulette-balance {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 0, 0, 0.3);
  padding: 6px 12px;
  border-radius: 6px;
  flex-shrink: 0;
  border: 1px solid rgba(255, 165, 0, 0.3);
}

.roulette-balance .balance-label {
  color: rgba(255, 255, 255, 0.7);
}

.roulette-balance .balance-value {
  font-size: 1.4rem;
  font-weight: bold;
  color: #ffd700;
}

.roulette-balance .balance-unit {
  color: rgba(255, 255, 255, 0.7);
}

.bet-amount-section {
  background: rgba(0, 0, 0, 0.3);
  padding: 8px;
  border-radius: 6px;
}

.section-label {
  display: block;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 5px;
}

.bet-amount-section .bet-chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.bet-amount-section .chip-btn {
  padding: 5px 12px;
  background: rgba(255, 165, 0, 0.2);
  border: 2px solid rgba(255, 165, 0, 0.5);
  color: #fff;
  border-radius: 15px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 0.85rem;
}

.bet-amount-section .chip-btn:hover {
  background: rgba(255, 165, 0, 0.4);
}

.bet-amount-section .chip-btn.active {
  background: #ffa500;
  color: #0a0e27;
  font-weight: bold;
}

.bet-category {
  background: rgba(0, 0, 0, 0.3);
  padding: 8px;
  border-radius: 6px;
}

.category-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}

.category-title {
  font-size: 0.85rem;
  font-weight: bold;
  color: #fff;
}

.category-payout {
  font-size: 0.8rem;
  color: #00ff88;
  font-weight: bold;
}

.color-bet-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.color-bet {
  flex: 1;
  min-width: 80px;
  padding: 10px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-weight: bold;
  transition: all 0.2s;
}

.color-bet.brown {
  background: linear-gradient(135deg, #8B4513 0%, #A0522D 100%);
  color: #fff;
}

.color-bet.gold {
  background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
  color: #0a0e27;
}

.color-bet.black {
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
  color: #fff;
  border: 1px solid #444;
}

.color-bet.bet-selected,
.icon-bet.bet-selected {
  animation: betPulse 1.5s ease-in-out infinite;
  box-shadow: 0 0 15px 5px #00ff88, 0 0 30px 10px rgba(0, 255, 136, 0.5);
  border: 3px solid #00ff88 !important;
  transform: scale(1.05);
}

@keyframes betPulse {
  0%, 100% {
    box-shadow: 0 0 15px 5px #00ff88, 0 0 30px 10px rgba(0, 255, 136, 0.5);
  }
  50% {
    box-shadow: 0 0 25px 8px #00ff88, 0 0 45px 15px rgba(0, 255, 136, 0.7);
  }
}

.color-bet:hover {
  transform: scale(1.05);
  box-shadow: 0 0 15px rgba(255, 255, 255, 0.3);
}

.color-bet.selected {
  box-shadow: 0 0 15px rgba(0, 255, 136, 0.8);
  border: 2px solid #00ff88;
}

.icon-bet-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.icon-bet {
  flex: 1;
  min-width: 70px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  transition: all 0.2s;
}

.icon-bet:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.05);
}

.icon-bet.selected {
  background: rgba(0, 255, 136, 0.3);
  border-color: #00ff88;
}

.exact-bet-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}

.exact-bet {
  padding: 8px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1rem;
  transition: all 0.2s;
}

.exact-bet.brown {
  background: linear-gradient(135deg, #8B4513 0%, #A0522D 100%);
}

.exact-bet.gold {
  background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
}

.exact-bet.black {
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
  border: 1px solid #444;
}

.exact-bet:hover {
  transform: scale(1.1);
}

.exact-bet.selected {
  box-shadow: 0 0 10px rgba(0, 255, 136, 0.8);
  border: 2px solid #00ff88;
}

.current-bets-section {
  background: rgba(0, 0, 0, 0.4);
  padding: 8px;
  border-radius: 6px;
  border: 1px solid rgba(255, 165, 0, 0.3);
}

.current-bets-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.current-bets-header span {
  font-weight: bold;
  color: #ffa500;
  font-size: 0.85rem;
}

.clear-bets-btn {
  background: rgba(255, 0, 0, 0.2);
  border: 1px solid rgba(255, 0, 0, 0.5);
  color: #ff6666;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
  cursor: pointer;
}

.clear-bets-btn:hover {
  background: rgba(255, 0, 0, 0.4);
}

.current-bets-list {
  max-height: 60px;
  overflow-y: auto;
  margin-bottom: 6px;
}

.no-bets {
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  padding: 5px;
  font-size: 0.8rem;
}

.bet-item {
  display: flex;
  justify-content: space-between;
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 5px;
  margin-bottom: 5px;
  font-size: 0.9rem;
}

.bet-item .bet-type {
  color: #fff;
}

.bet-item .bet-amount {
  color: #ffd700;
  font-weight: bold;
}

.total-bet {
  display: flex;
  justify-content: space-between;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  font-weight: bold;
  font-size: 0.85rem;
}

.total-bet span:first-child {
  color: rgba(255, 255, 255, 0.8);
}

#total-bet-amount {
  color: #ffd700;
  font-size: 0.95rem;
}

.spin-roulette-btn {
  width: 100%;
  padding: 10px;
  font-size: 1.1rem;
  font-weight: bold;
  background: linear-gradient(135deg, #ffa500 0%, #ff6600 100%);
  border: none;
  border-radius: 10px;
  color: #0a0e27;
  cursor: pointer;
  transition: all 0.3s;
  text-transform: uppercase;
}

.spin-roulette-btn:hover:not(:disabled) {
  transform: scale(1.02);
  box-shadow: 0 0 20px rgba(255, 165, 0, 0.5);
}

.spin-roulette-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.roulette-legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.7);
}

.legend-color {
  width: 20px;
  height: 20px;
  border-radius: 4px;
}

.legend-color.brown {
  background: #8B4513;
}

.legend-color.gold {
  background: #FFD700;
}

.legend-color.black-legend {
  background: #1a1a1a;
  border: 1px solid #444;
}

@media (max-width: 700px) {
  .roulette-game-area {
    grid-template-columns: 1fr;
    overflow: hidden;
  }
  
  .wheel-section {
    order: 1;
  }
  
  .betting-section {
    order: 2;
    overflow: hidden;
  }
  
  .wheel-container {
    width: 240px;
    height: 240px;
  }
  
  .roulette-wheel {
    width: 240px;
    height: 240px;
  }
  
  .wheel-center {
    width: 50px;
    height: 50px;
    font-size: 1.5rem;
  }
  
  .segment-icon {
    font-size: 1.2rem;
  }
  
  .exact-bet-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ================================================
   POKER TOURNAMENTS SECTION — Kennel Royale styling
   ================================================ */
.kr2-tourney-section { margin-bottom:48px; }
.kr2-tourney-soon { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; padding:5px 14px; border:1px solid rgba(212,175,55,.35); border-radius:999px; font-family:var(--kr-body); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--kr-gold-light); background:rgba(212,175,55,.08); }
.kr2-tourney-sub { color:rgba(255,255,255,.55); font-size:.95rem; font-weight:300; margin:-12px 0 24px; }

.kr2-tourney-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,360px)); gap:24px; }

.kr2-tourney-card { position:relative; overflow:hidden; padding:26px 24px; border-radius:20px; border:1px solid rgba(212,175,55,.18); background:linear-gradient(180deg,rgba(12,18,34,.9),rgba(6,9,19,.94)); box-shadow:0 10px 30px rgba(0,0,0,.5); transition:transform .35s cubic-bezier(.175,.885,.32,1.275), border-color .35s, box-shadow .35s; }
.kr2-tourney-card:hover { transform:translateY(-6px); border-color:rgba(212,175,55,.55); box-shadow:0 16px 36px rgba(212,175,55,.16), 0 0 16px rgba(26,178,115,.18); }
.kr2-tourney-card.premium { border-color:rgba(212,175,55,.3); background:linear-gradient(180deg,rgba(17,87,61,.28),rgba(6,9,19,.95)); }
.kr2-tourney-card.premium::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--kr-gold),transparent); }

.kr2-tourney-badge { position:absolute; top:16px; right:16px; padding:5px 14px; border-radius:999px; font-family:var(--kr-body); font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--kr-bg-base); background:linear-gradient(135deg,var(--kr-gold-light),var(--kr-gold)); box-shadow:0 3px 10px rgba(212,175,55,.35); z-index:2; }

.kr2-tourney-cardhead { padding-right:96px; margin-bottom:18px; }
.kr2-tourney-cardhead h3 { font-family:var(--kr-display); font-size:1.3rem; font-weight:700; color:#fff; margin:0 0 10px; border:none; padding:0; }
.kr2-tourney-type { display:inline-block; padding:4px 12px; border-radius:999px; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--kr-green-bright); background:rgba(26,178,115,.12); border:1px solid rgba(26,178,115,.3); }

.kr2-tourney-prize { text-align:center; padding:16px; margin-bottom:16px; border-radius:14px; background:rgba(0,0,0,.3); border:1px solid rgba(212,175,55,.12); }
.kr2-tourney-prizelabel { display:block; font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:6px; }
.kr2-tourney-prizeamt { font-family:var(--kr-display); font-size:1.9rem; font-weight:900; background:linear-gradient(to bottom,var(--kr-gold-light),var(--kr-gold)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

.kr2-tourney-details { display:flex; gap:12px; margin-bottom:16px; }
.kr2-tourney-detail { flex:1; display:flex; flex-direction:column; gap:3px; padding:10px 12px; border-radius:12px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); }
.kr2-tourney-detaillabel { font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.4); }
.kr2-tourney-detailval { font-size:.98rem; font-weight:700; color:#fff; }

.kr2-tourney-countdown { text-align:center; margin-bottom:20px; }
.kr2-tourney-cdlabel { display:block; font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:10px; }
.kr2-tourney-countdown .countdown-timer { display:flex; justify-content:center; gap:10px; }
.kr2-time-block { min-width:58px; padding:10px 8px; border-radius:12px; background:var(--kr-bg-base); border:1px solid rgba(212,175,55,.18); text-align:center; }
.kr2-time-block .time-value { display:block; font-family:var(--kr-display); font-size:1.45rem; font-weight:700; color:var(--kr-gold-light); line-height:1; }
.kr2-time-unit { display:block; font-size:.62rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-top:5px; }

.kr2-tourney-btn { width:100%; cursor:pointer; padding:14px 24px; border:none; border-radius:12px; font-family:var(--kr-body); font-size:.98rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--kr-bg-base); background:linear-gradient(135deg,var(--kr-gold),var(--kr-gold-dark)); box-shadow:0 4px 14px rgba(212,175,55,.25); transition:transform .25s,box-shadow .25s; }
.kr2-tourney-btn:hover { transform:translateY(-2px); box-shadow:0 8px 26px rgba(212,175,55,.45); }
.kr2-tourney-btn:disabled { cursor:default; color:var(--kr-gold-light); background:transparent; border:1px solid var(--kr-gold-dark); box-shadow:none; }
.kr2-tourney-btn:disabled:hover { transform:none; box-shadow:none; }

/* Live indicator (shown when a tournament goes live) */
.tournament-live-indicator { position:absolute; top:16px; left:16px; display:flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px; font-size:.72rem; font-weight:700; letter-spacing:.06em; color:#fff; background:linear-gradient(135deg,#e0392b,#a31d12); z-index:2; }
.live-dot { width:8px; height:8px; border-radius:50%; background:#fff; animation:livePulse 1s ease-in-out infinite; }
@keyframes livePulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.5;transform:scale(.8);} }

@media (max-width: 600px) {
  .kr2-tourney-grid { grid-template-columns:1fr; }
  .kr2-tourney-prizeamt { font-size:1.6rem; }
}

/* ========== DAILY SPIN WHEEL STYLES ========== */

/* Daily Spin Game Card */
.game-card.daily-spin {
  background: linear-gradient(135deg, #1a1e3a 0%, #2a2e4a 100%);
  border: 2px solid rgba(255, 215, 0, 0.3);
  position: relative;
  overflow: visible;
}

.game-card.daily-spin:hover {
  border-color: rgba(255, 215, 0, 0.6);
  box-shadow: 0 10px 40px rgba(255, 215, 0, 0.2);
}

.daily-spin-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.spin-wheel-preview {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: conic-gradient(
    #FFD700 0deg 45deg,
    #9B59B6 45deg 90deg,
    #3498DB 90deg 135deg,
    #E67E22 135deg 180deg,
    #2ECC71 180deg 225deg,
    #1ABC9C 225deg 270deg,
    #E74C3C 270deg 315deg,
    #95A5A6 315deg 360deg
  );
  position: relative;
  animation: spinPreview 10s linear infinite;
  box-shadow: 0 0 20px rgba(255, 215, 0, 0.3);
}

@keyframes spinPreview {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.wheel-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 30px;
  background: linear-gradient(135deg, #ffd700, #ff8c00);
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
}

.game-badge.spin-badge {
  background: linear-gradient(135deg, #ffd700, #ff8c00);
  color: #000;
  font-weight: 700;
}

.play-btn.spin-btn {
  background: linear-gradient(180deg, #00ff88 0%, #00cc66 50%, #009944 100%);
  border-color: #44ffaa;
  color: #003322;
  min-width: 140px;
  padding: 12px 28px;
  white-space: nowrap;
  box-shadow: 
    0 4px 15px rgba(0, 255, 136, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* Spin Modal Overlay */
.spin-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  background: rgba(0, 0, 0, 0.9);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  padding-top: calc(20px + env(safe-area-inset-top, 0px));
  padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
}

.spin-modal-content {
  background: linear-gradient(180deg, #0e1b15 0%, #081009 100%);
  border-radius: 24px;
  padding: 26px 22px 28px;
  max-width: 460px;
  width: 100%;
  max-height: 90vh;
  max-height: 90dvh;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  position: relative;
  border: 1px solid rgba(214, 175, 90, 0.35);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.spin-modal-content::-webkit-scrollbar { width: 0; height: 0; display: none; }

.spin-close-btn {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: #fff;
  font-size: 24px;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 10;
}

.spin-close-btn:hover {
  background: rgba(255, 0, 0, 0.3);
  transform: rotate(90deg);
}

.spin-header {
  text-align: center;
  margin-bottom: 20px;
}

.spin-header h2 {
  font-size: 2rem;
  background: linear-gradient(90deg, #ffd700, #ff8c00, #ffd700);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: textColorFlow 3s ease infinite;
}

.spin-header p {
  color: rgba(255, 255, 255, 0.7);
  margin-top: 5px;
}

/* Spin Wheel Container - Wheel of Fortune Style */
.spin-wheel-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 15px 0;
  position: relative;
}

/* ===== Daily Spin — approved wheel stage ===== */
.ds-stage {
  position: relative;
  width: min(80vw, 340px);
  aspect-ratio: 1;
  margin: 10px auto 4px;
}
.ds-frame,
.ds-frame-img {
  position: absolute; left: 50%; top: 48%;
  width: 185%; max-width: none; transform: translate(-50%, -50%);
  z-index: 2; pointer-events: none;
  filter: drop-shadow(0 12px 34px rgba(0, 0, 0, 0.55));
}
/* Static PNG fallback (touch/iOS) is tightly cropped vs the 1280x720 webm, so it
   needs its own size/offset to place the frame's inner ring where the video's is. */
.ds-frame-img {
  width: 109%; top: 51.4%;
}
.ds-wheel {
  position: absolute; left: 50%; top: 59.5%;
  width: 72%; transform: translate(-50%, -50%) rotate(0deg);
  z-index: 1; pointer-events: none;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.5));
}
.ds-pointer {
  position: absolute; top: 25%; left: 50%; transform: translateX(-50%);
  z-index: 4; width: 0; height: 0;
  border-left: 13px solid transparent;
  border-right: 13px solid transparent;
  border-top: 22px solid #f5c542;
  filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.6));
}
.ds-dog,
.ds-dog-img {
  position: absolute; left: 50%; top: -3%;
  width: 33%; max-width: none; transform: translateX(-50%);
  z-index: 5; pointer-events: none;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.5));
}
.ds-hub {
  position: absolute; left: 50%; top: 59.5%;
  transform: translate(-50%, -50%); z-index: 3;
  width: 20%; aspect-ratio: 1; border-radius: 50%;
  border: 3px solid #7a5a10; cursor: pointer;
  background: radial-gradient(circle at 50% 35%, #ffe08a, #d98e1e);
  color: #3a2700; font-weight: 900; font-size: 12.5px; letter-spacing: 0.5px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.5);
  display: flex; align-items: center; justify-content: center;
}
.ds-hub:disabled {
  cursor: default;
  background: radial-gradient(circle at 50% 35%, #c9a24a, #8a6a1a);
}
.ds-hub span { pointer-events: none; }

/* Reward popup overlay — does not resize the modal */
.ds-reward-overlay {
  position: absolute; inset: 0; z-index: 20;
  display: flex; align-items: center; justify-content: center;
  background: rgba(4, 10, 7, 0.72);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  border-radius: 24px;
}
.ds-reward-card {
  position: relative; width: 78%; max-width: 300px;
  padding: 28px 22px 22px; border-radius: 18px; text-align: center;
  background: linear-gradient(160deg, #16271d, #0b130e);
  border: 1px solid rgba(214, 175, 90, 0.5);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
  animation: ds-pop 0.4s cubic-bezier(0.2, 1.3, 0.4, 1);
}
.ds-reward-close {
  position: absolute; top: 8px; right: 12px; background: transparent;
  border: none; color: rgba(255, 255, 255, 0.6); font-size: 24px;
  cursor: pointer; line-height: 1;
}
.ds-reward-kicker {
  font-size: 13px; color: #8aa394; letter-spacing: 1.5px; text-transform: uppercase;
}
.ds-reward-amount {
  font-size: 40px; font-weight: 900; color: #f5c542; margin: 6px 0 16px;
}
.ds-reward-collect {
  width: 100%; padding: 12px 0; border-radius: 999px; border: none;
  cursor: pointer; font-weight: 800; font-size: 15px; color: #04140b;
  background: linear-gradient(135deg, #5af09a, #2ecc71 60%, #1e8b4d);
  box-shadow: 0 8px 22px rgba(46, 204, 113, 0.4);
}
@keyframes ds-pop {
  from { transform: scale(0.7); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
/* ===== end Daily Spin stage ===== */

.spin-wheel {
  width: 240px;
  height: 240px;
  position: relative;
  margin-bottom: 15px;
}

/* Wheel of Fortune style outer frame */
.wheel-frame {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: linear-gradient(145deg, #2a1810, #1a0f08);
  padding: 8px;
  box-shadow: 
    0 0 0 4px #8b4513,
    0 0 0 8px #5c3310,
    0 0 30px rgba(139, 69, 19, 0.6),
    inset 0 0 20px rgba(0, 0, 0, 0.5);
}

/* Decorative pegs around wheel */
.wheel-pegs {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 3;
}

.wheel-peg {
  position: absolute;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle at 30% 30%, #ffd700, #b8860b);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  left: 50%;
  top: 0;
  transform-origin: 0 120px;
}

.wheel-inner {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  position: relative;
  transition: transform 4s cubic-bezier(0.17, 0.67, 0.12, 0.99);
  overflow: hidden;
  box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.4);
}

/* Wheel sections using conic gradient - Wheel of Fortune style */
.wheel-sections {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    #FFD700 0deg 45deg,      /* Tier 1: Jackpot - Gold */
    #9B59B6 45deg 90deg,     /* Tier 2: Major Win - Purple */
    #3498DB 90deg 135deg,    /* Tier 3: Boost Pack - Blue */
    #E67E22 135deg 180deg,   /* Tier 4: Challenge Token - Orange */
    #2ECC71 180deg 225deg,   /* Tier 5: Lucky Treat - Green */
    #1ABC9C 225deg 270deg,   /* Tier 6: Streak Shield - Teal */
    #E74C3C 270deg 315deg,   /* Tier 7: Fetch Bonus - Red */
    #95A5A6 315deg 360deg    /* Tier 8: Pup Snack - Gray */
  );
}

/* Section dividers */
.wheel-sections::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: repeating-conic-gradient(
    from 0deg,
    transparent 0deg 44deg,
    rgba(0, 0, 0, 0.4) 44deg 46deg,
    transparent 46deg 90deg
  );
}

/* Prize labels on wheel segments - radially positioned in each slice */
.wheel-label {
  position: absolute;
  font-size: 10px;
  font-weight: 900;
  color: #fff;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 1), 0 0 4px rgba(0, 0, 0, 0.9);
  text-align: center;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 50px;
  margin-left: -25px;
  margin-top: -8px;
  pointer-events: none;
  transform-origin: center center;
}

/* Each label: rotate to segment center, translate outward, counter-rotate for readability */
.wheel-label:nth-child(2) { transform: rotate(22.5deg) translateY(-85px) rotate(-22.5deg); }
.wheel-label:nth-child(3) { transform: rotate(67.5deg) translateY(-85px) rotate(-67.5deg); }
.wheel-label:nth-child(4) { transform: rotate(112.5deg) translateY(-85px) rotate(-112.5deg); }
.wheel-label:nth-child(5) { transform: rotate(157.5deg) translateY(-85px) rotate(-157.5deg); }
.wheel-label:nth-child(6) { transform: rotate(202.5deg) translateY(-85px) rotate(-202.5deg); }
.wheel-label:nth-child(7) { transform: rotate(247.5deg) translateY(-85px) rotate(-247.5deg); }
.wheel-label:nth-child(8) { transform: rotate(292.5deg) translateY(-85px) rotate(-292.5deg); }
.wheel-label:nth-child(9) { transform: rotate(337.5deg) translateY(-85px) rotate(-337.5deg); }

/* Wheel of Fortune style pointer (at top) */
/* Daily Spin wheel pointer - scoped to spin wheel only */
.spin-wheel .wheel-pointer {
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.spin-wheel .wheel-pointer::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-top: 35px solid #ffd700;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.5));
}

.spin-wheel .wheel-pointer::after {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 25px solid #ffeb3b;
}

/* Center hub with SPIN button */
.wheel-center-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 65px;
  height: 65px;
  background: 
    linear-gradient(180deg, #ffd700 0%, #ff9800 50%, #e65100 100%);
  border-radius: 50%;
  border: 4px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 
    0 4px 15px rgba(255, 152, 0, 0.6),
    0 0 0 2px rgba(0, 0, 0, 0.3),
    inset 0 2px 0 rgba(255, 255, 255, 0.4),
    inset 0 -2px 0 rgba(0, 0, 0, 0.2);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 5;
}

.wheel-center-btn:hover:not(.spinning) {
  transform: translate(-50%, -50%) scale(1.1);
  box-shadow: 
    0 6px 25px rgba(255, 152, 0, 0.8),
    0 0 40px rgba(255, 215, 0, 0.4),
    0 0 0 2px rgba(0, 0, 0, 0.3),
    inset 0 2px 0 rgba(255, 255, 255, 0.5);
}

.wheel-center-btn span {
  font-size: 14px;
  font-weight: 900;
  color: #1a0f08;
  text-transform: uppercase;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
  letter-spacing: 1px;
}

.wheel-center-btn.spinning {
  pointer-events: none;
  animation: centerPulse 0.3s ease infinite;
}

.wheel-center-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: linear-gradient(180deg, #888 0%, #666 50%, #444 100%);
}

@keyframes centerPulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.08); }
}

/* Spin Info */
.spin-info {
  text-align: center;
  padding: 15px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  margin-bottom: 20px;
}

.spin-status {
  display: flex;
  justify-content: center;
  gap: 10px;
  font-size: 1rem;
}

.status-label {
  color: rgba(255, 255, 255, 0.6);
}

.status-value {
  color: #00ff88;
  font-weight: 600;
}

.status-value.unavailable {
  color: #ff6b6b;
}

.spin-countdown {
  margin-top: 10px;
  display: flex;
  justify-content: center;
  gap: 10px;
}

.countdown-label {
  color: rgba(255, 255, 255, 0.6);
}

.countdown-time {
  color: #ffd700;
  font-weight: 700;
  font-family: monospace;
  font-size: 1.1rem;
}

/* Spin Actions - Casino Style Buttons */
.spin-actions {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
  padding: 0 10px;
  justify-content: center;
}

.spin-action-btn {
  padding: 14px 24px;
  min-width: 120px;
  border: 3px solid transparent;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 900;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  position: relative;
  overflow: visible;
  white-space: nowrap;
  text-align: center;
  display: inline-block;
  line-height: 1.2;
}

.spin-action-btn::after {
  display: none;
}

/* Free Spin Button - Green like Deal/Hit buttons */
.free-spin-btn {
  background: 
    linear-gradient(180deg, #00ff88 0%, #00cc66 50%, #009944 100%);
  border-color: #44ffaa;
  color: #003322;
  box-shadow: 
    0 6px 20px rgba(0, 255, 136, 0.5),
    0 0 0 1px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    inset 0 -2px 0 rgba(0, 0, 0, 0.15);
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3);
}

.free-spin-btn:hover:not(:disabled) {
  transform: translateY(-5px) scale(1.05);
  border-color: #88ffcc;
  box-shadow: 
    0 8px 30px rgba(0, 255, 136, 0.7),
    0 0 50px rgba(0, 255, 136, 0.4),
    0 0 0 1px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.free-spin-btn:disabled {
  background: linear-gradient(180deg, #444 0%, #333 50%, #222 100%);
  border-color: #555;
  color: rgba(255, 255, 255, 0.3);
  cursor: not-allowed;
  box-shadow: none;
}

/* Bonus Spin Button - Green accent */
.bonus-spin-btn {
  background: 
    linear-gradient(180deg, #00ff88 0%, #00cc66 50%, #009944 100%);
  border-color: #44ffaa;
  color: #003322;
  box-shadow: 
    0 6px 20px rgba(0, 255, 136, 0.5),
    0 0 0 1px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    inset 0 -2px 0 rgba(0, 0, 0, 0.2);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.bonus-spin-btn:hover:not(:disabled) {
  transform: translateY(-5px) scale(1.05);
  border-color: #88ffcc;
  box-shadow: 
    0 8px 30px rgba(0, 255, 136, 0.7),
    0 0 50px rgba(0, 255, 136, 0.4),
    0 0 0 1px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* Buy Spin Button - Gold like betting buttons */
.buy-spin-btn {
  background: 
    linear-gradient(180deg, #ffd700 0%, #ff9800 50%, #e65100 100%);
  border-color: #ffeb3b;
  color: #442200;
  box-shadow: 
    0 6px 20px rgba(255, 152, 0, 0.5),
    0 0 0 1px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    inset 0 -2px 0 rgba(0, 0, 0, 0.15);
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3);
}

.buy-spin-btn:hover:not(:disabled) {
  transform: translateY(-5px) scale(1.05);
  border-color: #fff59d;
  box-shadow: 
    0 8px 30px rgba(255, 152, 0, 0.7),
    0 0 50px rgba(255, 215, 0, 0.4),
    0 0 0 1px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.spin-action-btn:active:not(:disabled) {
  transform: translateY(-2px) scale(1.02);
}

/* Spin Result */
.spin-result {
  padding: 12px 15px;
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.1), rgba(255, 140, 0, 0.1));
  border-radius: 12px;
  border: 2px solid rgba(255, 215, 0, 0.3);
  margin-bottom: 15px;
  text-align: center;
  animation: resultPop 0.5s ease;
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
}

@keyframes resultPop {
  0% { transform: scale(0.8); opacity: 0; }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); opacity: 1; }
}

.result-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.result-icon {
  font-size: 32px;
}

.result-text {
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
}

.result-amount {
  font-size: 1.4rem;
  font-weight: 800;
  background: linear-gradient(90deg, #ffd700, #ff8c00);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.result-amount.jackpot {
  font-size: 2.5rem;
  animation: jackpotGlow 0.5s ease infinite alternate;
}

@keyframes jackpotGlow {
  from { filter: drop-shadow(0 0 10px rgba(255, 215, 0, 0.5)); }
  to { filter: drop-shadow(0 0 30px rgba(255, 215, 0, 1)); }
}

/* Spin Stats */
.spin-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.spin-stats .stat-item {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 12px;
  text-align: center;
}

.spin-stats .stat-label {
  display: block;
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  margin-bottom: 5px;
}

.spin-stats .stat-value {
  display: block;
  font-size: 1.1rem;
  font-weight: 700;
  color: #00ff88;
}

/* Mobile responsive for spin wheel */
@media (max-width: 480px) {
  .spin-modal-overlay {
    padding: 10px;
    padding-top: calc(10px + env(safe-area-inset-top, 0px));
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  }
  
  .spin-modal-content {
    padding: 15px 10px;
    max-height: 95vh;
    max-height: 95dvh;
    overflow-y: auto;
    border-radius: 20px;
  }
  
  .spin-header {
    margin-bottom: 10px;
  }
  
  .spin-header h2 {
    font-size: 1.4rem;
  }
  
  .spin-header p {
    font-size: 0.8rem;
  }
  
  .spin-wheel-container {
    padding: 10px 0;
  }
  
  /* Scale wheel down proportionally */
  .spin-wheel {
    width: 200px;
    height: 200px;
    margin-bottom: 10px;
  }
  
  /* Scale wheel pegs proportionally */
  .wheel-peg {
    width: 8px;
    height: 8px;
    transform-origin: 0 100px;
  }
  
  /* Scale wheel labels proportionally */
  .wheel-label {
    font-size: 8px;
    width: 45px;
    margin-left: -22.5px;
  }
  
  .wheel-label:nth-child(2) { transform: rotate(22.5deg) translateY(-70px) rotate(-22.5deg); }
  .wheel-label:nth-child(3) { transform: rotate(67.5deg) translateY(-70px) rotate(-67.5deg); }
  .wheel-label:nth-child(4) { transform: rotate(112.5deg) translateY(-70px) rotate(-112.5deg); }
  .wheel-label:nth-child(5) { transform: rotate(157.5deg) translateY(-70px) rotate(-157.5deg); }
  .wheel-label:nth-child(6) { transform: rotate(202.5deg) translateY(-70px) rotate(-202.5deg); }
  .wheel-label:nth-child(7) { transform: rotate(247.5deg) translateY(-70px) rotate(-247.5deg); }
  .wheel-label:nth-child(8) { transform: rotate(292.5deg) translateY(-70px) rotate(-292.5deg); }
  .wheel-label:nth-child(9) { transform: rotate(337.5deg) translateY(-70px) rotate(-337.5deg); }
  
  /* Scale center button proportionally */
  .wheel-center-btn {
    width: 55px;
    height: 55px;
  }
  
  .wheel-center-btn span {
    font-size: 12px;
  }
  
  /* Scale pointer proportionally */
  .spin-wheel .wheel-pointer::before {
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 28px solid #ffd700;
  }
  
  .spin-wheel .wheel-pointer::after {
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 20px solid #ffeb3b;
  }
  
  .spin-actions {
    flex-direction: column;
    gap: 10px;
  }
  
  .spin-action-btn {
    padding: 12px 20px;
    font-size: 0.9rem;
    min-width: 140px;
    width: 100%;
  }
  
  .spin-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  
  .spin-stats .stat-item {
    padding: 8px;
  }
  
  .spin-stats .stat-label {
    font-size: 0.65rem;
  }
  
  .spin-stats .stat-value {
    font-size: 0.95rem;
  }
}

/* Very small screens */
@media (max-width: 375px) {
  .spin-wheel {
    width: 180px;
    height: 180px;
  }
  
  .wheel-peg {
    width: 7px;
    height: 7px;
    transform-origin: 0 90px;
  }
  
  .wheel-label {
    font-size: 7px;
    width: 40px;
    margin-left: -20px;
  }
  
  .wheel-label:nth-child(2) { transform: rotate(22.5deg) translateY(-62px) rotate(-22.5deg); }
  .wheel-label:nth-child(3) { transform: rotate(67.5deg) translateY(-62px) rotate(-67.5deg); }
  .wheel-label:nth-child(4) { transform: rotate(112.5deg) translateY(-62px) rotate(-112.5deg); }
  .wheel-label:nth-child(5) { transform: rotate(157.5deg) translateY(-62px) rotate(-157.5deg); }
  .wheel-label:nth-child(6) { transform: rotate(202.5deg) translateY(-62px) rotate(-202.5deg); }
  .wheel-label:nth-child(7) { transform: rotate(247.5deg) translateY(-62px) rotate(-247.5deg); }
  .wheel-label:nth-child(8) { transform: rotate(292.5deg) translateY(-62px) rotate(-292.5deg); }
  .wheel-label:nth-child(9) { transform: rotate(337.5deg) translateY(-62px) rotate(-337.5deg); }
  
  .wheel-center-btn {
    width: 48px;
    height: 48px;
    border-width: 3px;
  }
  
  .wheel-center-btn span {
    font-size: 10px;
  }
  
  .spin-wheel .wheel-pointer::before {
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 24px solid #ffd700;
  }
  
  .spin-wheel .wheel-pointer::after {
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 16px solid #ffeb3b;
  }
}

.slot-preplay-ad {
  position: absolute;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
}

.preplay-ad-content {
  text-align: center;
  max-width: 340px;
  width: 90%;
}

.preplay-ad-label {
  color: #aaa;
  font-size: 14px;
  margin-bottom: 16px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.preplay-ad-unit {
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  background: rgba(255,255,255,0.03);
  border-radius: 8px;
}

.preplay-skip-btn {
  padding: 12px 36px;
  background: linear-gradient(135deg, #333 0%, #444 100%);
  color: #888;
  border: 1px solid #555;
  border-radius: 8px;
  font-size: 15px;
  cursor: not-allowed;
  transition: all 0.3s;
}

.preplay-skip-btn:not(:disabled) {
  background: linear-gradient(135deg, #1a8d1a 0%, #22b822 100%);
  color: #fff;
  border-color: #2ecc40;
  cursor: pointer;
  box-shadow: 0 0 12px rgba(46, 204, 64, 0.3);
}

.preplay-skip-btn:not(:disabled):hover {
  transform: translateY(-2px);
  box-shadow: 0 0 20px rgba(46, 204, 64, 0.5);
}

.slot-timed-ad {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 500;
  animation: slideUpAd 0.4s ease-out;
}

@keyframes slideUpAd {
  from { opacity: 0; transform: translateX(-50%) translateY(20px); }
  to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.timed-ad-inner {
  position: relative;
  background: rgba(15, 15, 30, 0.95);
  border: 1px solid #333;
  border-radius: 8px;
  padding: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
}

.timed-ad-close {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  background: #333;
  color: #fff;
  border: 1px solid #555;
  border-radius: 50%;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.timed-ad-close:hover {
  background: #e74c3c;
  border-color: #e74c3c;
}

.timed-ad-unit {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================
   Kennel Royale — High-Roller Dog Lounge redesign (lobby)
   ============================================================ */
.casino-page.kr2 {
  --kr-bg-base: #060913;
  --kr-bg-surface: #0C1222;
  --kr-green-dark: #0A3324;
  --kr-green-felt: #11573D;
  --kr-green-bright: #1AB273;
  --kr-gold: #D4AF37;
  --kr-gold-light: #FDF0B0;
  --kr-gold-dark: #997A15;
  --kr-display: 'Cinzel', serif;
  --kr-body: 'Outfit', sans-serif;
  font-family: var(--kr-body);
}

/* HUD bar */
.kr2-hud { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 18px; margin-bottom:14px; background:rgba(12,18,34,.8); border:1px solid var(--kr-gold-dark); border-radius:16px; }
.kr2-hud-brand { display:flex; align-items:center; gap:12px; }
.kr2-hud-crest { width:42px; height:42px; object-fit:contain; filter:drop-shadow(0 0 8px rgba(212,175,55,.4)); }
.kr2-hud-word { font-family:var(--kr-display); font-weight:700; font-size:1.2rem; letter-spacing:.18em; text-transform:uppercase; background:linear-gradient(to bottom,var(--kr-gold-light),var(--kr-gold)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.kr2-hud-wallet { display:flex; align-items:center; gap:10px; background:var(--kr-bg-surface); border:1px solid var(--kr-gold-dark); border-radius:999px; padding:6px 8px 6px 14px; }
.kr2-hud-coin { width:24px; height:24px; object-fit:contain; }
.kr2-hud-balance { font-weight:700; color:#fff; letter-spacing:.03em; }
.kr2-hud-gethc { display:inline-flex; align-items:center; gap:4px; border:none; cursor:pointer; border-radius:999px; padding:7px 16px; font-family:var(--kr-body); font-weight:600; color:#fff; background:linear-gradient(135deg,var(--kr-green-bright),var(--kr-green-felt)); box-shadow:0 4px 14px rgba(26,178,115,.25); transition:transform .2s,box-shadow .2s; }
.kr2-hud-gethc:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(26,178,115,.4); }

/* Win ticker */
.kr2-ticker { position:relative; overflow:hidden; background:var(--kr-bg-surface); border:1px solid rgba(212,175,55,.12); padding:8px 0; margin-bottom:8px; border-radius:10px; }
.kr2-ticker::before, .kr2-ticker::after { content:''; position:absolute; top:0; bottom:0; width:80px; z-index:2; pointer-events:none; }
.kr2-ticker::before { left:0; background:linear-gradient(to right,var(--kr-bg-surface),transparent); }
.kr2-ticker::after { right:0; background:linear-gradient(to left,var(--kr-bg-surface),transparent); }
.kr2-ticker-track { display:flex; width:max-content; animation:kr2Ticker 38s linear infinite; }
.kr2-ticker-item { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:0 34px; font-size:.86rem; color:var(--kr-gold-light); opacity:.82; }
.kr2-ticker-item::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--kr-green-bright); box-shadow:0 0 8px var(--kr-green-bright); flex:0 0 auto; }
@keyframes kr2Ticker { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* Daily-bonus button docked in the HUD bar (center) */
.kr2-hud-bonus { display:inline-flex; align-items:center; gap:8px; cursor:pointer; border:1px solid var(--kr-gold-light); border-radius:999px; padding:8px 20px; font-family:var(--kr-body); font-size:.92rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; color:var(--kr-bg-base); background:linear-gradient(135deg,var(--kr-gold),var(--kr-gold-dark)); box-shadow:0 4px 14px rgba(212,175,55,.25); transition:transform .25s,box-shadow .25s; }
.kr2-hud-bonus img { width:18px; height:18px; object-fit:cover; border-radius:50%; }
.kr2-hud-bonus:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(212,175,55,.45); }

/* Thin lounge identity banner (replaces the old oversized hero) */
.kr2-lounge-banner { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:4px 14px; text-align:center; padding:12px 18px; margin-bottom:26px; border:1px solid rgba(212,175,55,.2); border-radius:14px; background:radial-gradient(ellipse at center, rgba(10,51,36,.4) 0%, var(--kr-bg-surface) 80%); }
.kr2-lounge-name { font-family:var(--kr-display); font-weight:900; font-size:1.5rem; letter-spacing:.08em; text-transform:uppercase; background:linear-gradient(to bottom,var(--kr-gold-light),var(--kr-gold)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.kr2-lounge-tag { color:var(--kr-gold-light); opacity:.75; font-weight:300; font-size:.95rem; }

/* Section headings */
.kr2-section { margin-bottom:48px; }
.kr2-section-head { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-bottom:24px; }
.kr2-section-head h2 { font-family:var(--kr-display); font-weight:700; font-size:1.55rem; letter-spacing:.14em; color:#fff; margin:0; border:none; padding:0; }
.kr2-rule { flex:1; height:1px; background:linear-gradient(to right,var(--kr-gold-dark),transparent); opacity:.5; }

/* Shared card look */
.kr2-feat-card, .kr2-floor-card { position:relative; overflow:hidden; cursor:pointer; background:linear-gradient(180deg,rgba(12,18,34,.85),rgba(6,9,19,.92)); border:1px solid rgba(212,175,55,.15); border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.5); transition:transform .35s cubic-bezier(.175,.885,.32,1.275), border-color .35s, box-shadow .35s; }
.kr2-feat-card:hover, .kr2-floor-card:hover { transform:translateY(-6px); border-color:rgba(212,175,55,.6); box-shadow:0 16px 36px rgba(212,175,55,.16), 0 0 16px rgba(26,178,115,.2); }

/* Featured grid */
.kr2-featured-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.kr2-feat-card { display:flex; align-items:center; gap:24px; padding:26px; }
.kr2-feat-iconwrap { flex:0 0 auto; width:150px; height:150px; border-radius:50%; padding:8px; background:var(--kr-bg-base); border:1px solid var(--kr-gold-dark); box-shadow:0 0 20px rgba(0,0,0,.8); }
.kr2-feat-icon { width:100%; height:100%; border-radius:50%; object-fit:cover; transition:transform .5s; }
.kr2-feat-card:hover .kr2-feat-icon { transform:scale(1.05); }
.kr2-feat-info { flex:1; min-width:0; }

/* Featured "table screen" — at-the-table idle dealer video */
.kr2-feat-screen { flex:0 0 auto; position:relative; width:248px; aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:var(--kr-bg-base); border:1px solid var(--kr-gold-dark); box-shadow:0 0 22px rgba(0,0,0,.8), inset 0 0 0 1px rgba(212,175,55,.08); }
.kr2-feat-screen::after { content:''; position:absolute; inset:0; pointer-events:none; border-radius:16px; box-shadow:inset 0 0 40px rgba(0,0,0,.55); }
.kr2-feat-vid { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.kr2-feat-card:hover .kr2-feat-vid { transform:scale(1.05); }

/* Top Dog War featured-card screen (placeholder until dealer video ships) */
.kr2-feat-screen--tdw { display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 50% 38%, #143a26 0%, #061b12 68%, #03100a 100%); }
.kr2-tdw-cardduel { display:flex; align-items:center; gap:14px; }
.kr2-tdw-duelcard { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; width:46px; height:64px; border-radius:7px; background:#fff; color:#1a1a1a; font-family:var(--kr-display); font-weight:700; font-size:1.25rem; line-height:1; box-shadow:0 8px 16px rgba(0,0,0,.45); }
.kr2-tdw-duelcard small { font-size:.9rem; }
.kr2-tdw-duelcard-d { color:#1a1a1a; transform:rotate(-9deg); }
.kr2-tdw-duelcard-p { color:#D32F2F; transform:rotate(9deg); }
.kr2-tdw-duelvs { font-family:var(--kr-display); font-weight:700; font-size:1rem; letter-spacing:.1em; color:var(--kr-gold-light); }

/* Top Dog War — the two cards, labels and VS pill overlay the baked husky-dealer
   16:9 scene. Reuses the same .kr-bj-stage engine as Beagle Blackjack; only the
   on-felt anchor positions differ (single card per side). */
.kr-tdw-seat-label { font-family:var(--kr-display); font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--kr-gold-light); }
.kr-tdw-cards { display:flex; align-items:center; justify-content:center; gap:calc(var(--card-w) * 0.08); min-height:calc(var(--card-w) * 1.452); }
/* Dealer (left) and You (right) face off side-by-side on the felt in front of
   the husky — the playing band between his paws and the front rail is shallow,
   so a duel layout reads far better than stacking the cards vertically. */
.kr-tdw-stage .kr-tdw-seat-label { font-size:calc(var(--card-w) * 0.26); text-shadow:0 1px 3px rgba(0,0,0,.9); margin-bottom:3px; }
.kr-tdw-onfelt-dealer { top:62%; left:41%; transform:translateX(-50%); --card-w:min(54px, 6.8cqw); }
.kr-tdw-onfelt-player { top:62%; left:59%; transform:translateX(-50%); --card-w:min(54px, 6.8cqw); }
.kr-tdw-vs-wrap { position:absolute; left:50%; top:70%; transform:translate(-50%,-50%); z-index:5; pointer-events:none; }
.kr-tdw-vs { font-family:var(--kr-display); font-weight:700; font-size:calc(var(--card-w) * 0.3); letter-spacing:.08em; color:#fff; opacity:.92; padding:.1em .4em; border:1px solid var(--kr-gold-dark); border-radius:999px; background:rgba(0,0,0,.6); }

/* Three Card Hound — the casino room + felt + animated golden-retriever dealer are
   baked into ONE 16:9 video (animated background loop with welcome/dealing/win/lose
   dealer clips composited over it). Reuses the same .kr-bj-stage engine as Beagle
   Blackjack & Top Dog War; only the on-felt anchor positions differ (three cards
   per side — dealer hand up near the dealer, your hand along the front rail). */
.kr-tch-stage {
  --card-w:min(46px, 5.8cqw);
}
.kr-tch-seat-label { font-family:var(--kr-display); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--kr-gold-light); font-size:calc(var(--card-w) * 0.26); text-shadow:0 1px 3px rgba(0,0,0,.9); margin-bottom:2px; }
.kr-tch-hand { color:#fff; opacity:.9; font-weight:600; letter-spacing:.04em; text-transform:none; }
.kr-tch-cards { display:flex; align-items:center; justify-content:center; gap:calc(var(--card-w) * 0.08); min-height:calc(var(--card-w) * 1.452); }
.kr-tch-onfelt-dealer { top:63%; left:50%; transform:translateX(-50%); z-index:4; }
.kr-tch-onfelt-player { top:84%; left:50%; transform:translateX(-50%); z-index:5; }
.kr-tch-stage .kr-bj-betchip { z-index:6; }
.kr2-cat { display:block; font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--kr-green-bright); margin-bottom:6px; }
.kr2-feat-info .kr2-name { font-family:var(--kr-display); font-size:1.55rem; font-weight:700; color:#fff; margin:0 0 6px; }
.kr2-desc { color:rgba(255,255,255,.6); font-size:.92rem; margin:0 0 14px; }

/* Floor grid */
.kr2-floor-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.kr2-floor-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; padding:26px 18px; }
.kr2-floor-iconwrap { width:110px; height:110px; border-radius:50%; padding:6px; background:var(--kr-bg-base); border:1px solid var(--kr-gold-dark); box-shadow:inset 0 2px 8px rgba(0,0,0,.6); }
.kr2-floor-icon { width:100%; height:100%; border-radius:50%; object-fit:cover; transition:transform .5s; }
.kr2-floor-card:hover .kr2-floor-icon { transform:scale(1.1); }
.kr2-floor-card .kr2-name { font-family:var(--kr-display); font-size:1.12rem; font-weight:700; color:#fff; margin:0; line-height:1.15; min-height:2.3em; display:flex; align-items:center; justify-content:center; }
.kr2-floor-card .kr2-cat { margin:0; color:var(--kr-gold-dark); }
.kr2-floor-card .kr2-badges { margin-top:auto; }
.kr2-floor-card .kr2-floor-btns { margin-top:auto; }

/* Play buttons */
.kr2-playbtn { cursor:pointer; border:1px solid var(--kr-gold-dark); border-radius:999px; padding:9px 22px; font-family:var(--kr-body); font-size:.9rem; font-weight:600; color:var(--kr-gold-light); background:transparent; transition:background .25s,color .25s; }
.kr2-playbtn:hover { background:var(--kr-gold-dark); color:#fff; }
.kr2-floor-btns { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:2px; }
.kr2-playbtn--sm { padding:7px 14px; font-size:.8rem; }
.kr2-playbtn--disabled { opacity:.45; cursor:not-allowed; border-color:#444; color:#888; }
.kr2-playbtn--disabled:hover { background:transparent; color:#888; }

/* Badges within new cards */
.kr2-badges { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin:2px 0 4px; }
.kr2-feat-info .kr2-badges { justify-content:flex-start; }

/* Responsive */
@media (max-width: 900px) {
  .kr2-floor-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 760px) {
  .kr2-featured-grid { grid-template-columns:1fr; gap:18px; }
  .kr2-feat-card { flex-direction:column; text-align:center; gap:16px; }
  .kr2-feat-info .kr2-badges { justify-content:center; }
  .kr2-feat-screen { width:100%; }
  .kr2-lounge-name { font-size:1.25rem; }
}
@media (max-width: 480px) {
  .kr2-floor-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
  .kr2-hud { flex-wrap:wrap; gap:10px; }
  .kr2-hud-word { display:none; }
  .kr2-hud-bonus { order:3; flex:1 1 100%; justify-content:center; padding:9px 16px; font-size:.85rem; }
  .kr2-lounge-name { font-size:1.1rem; }
  .kr2-lounge-tag { font-size:.8rem; }
  .kr2-floor-iconwrap { width:88px; height:88px; }
  .kr2-feat-iconwrap { width:120px; height:120px; }
}

/* ============== LUCKY LABS VIDEO CABINET ============== */
.slot-game-container.ll-cabinet {
  width: min(96vw, calc((100dvh - 240px) * 16 / 9), 1100px);
  max-width: none;
}
.ll-stage-wrap {
  width: 100%;
  overflow: hidden;
  border-radius: 14px 14px 0 0;
  background: #000;
  border: 3px solid #ffd700;
  border-bottom: none;
}
.ll-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 auto;
}
.ll-vid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.ll-vid.is-active { opacity: 1; }
.ll-reel {
  position: absolute;
  top: 50%;
  height: 25.5%;
  overflow: hidden;
  background: linear-gradient(180deg, #141021 0%, #201738 50%, #141021 100%);
  border-radius: 4px;
  z-index: 2;
}
.ll-reel::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 8px 12px rgba(0, 0, 0, 0.75), inset 0 -8px 12px rgba(0, 0, 0, 0.75);
}
.ll-reel .reel-strip {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 200%;
  display: flex;
  flex-direction: column;
}
.ll-reel .reel-strip.spinning {
  animation: llSpinReel 0.18s linear infinite;
  filter: blur(1px);
}
@keyframes llSpinReel {
  0% { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
.ll-reel .symbol {
  width: 100%;
  height: 16.67%;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14px, 2.4vw, 32px);
}
.ll-reel .slot-symbol-img {
  width: 80%;
  height: 88%;
  object-fit: contain;
  border-radius: 6px;
}
.ll-stage .win-popup { top: 42%; }

/* Mobile: zoom stage so the machine fills the width, crop ambiance */
@media (max-width: 700px) {
  .slot-game-container.ll-cabinet {
    width: 96vw;
    transform: none !important;
  }
  .ll-cabinet .ll-stage {
    width: 165%;
    margin-left: -32.5%;
  }
}

.slot-modal-overlay {
  background: radial-gradient(ellipse at 50% 30%, #1c1533 0%, #0d0a1a 70%, #070510 100%);
}

/* Game titles on one line */
.kr2-feat-info .kr2-name { font-size: clamp(1rem, 1.45vw, 1.4rem); white-space: nowrap; }
.kr2-floor-card .kr2-name { white-space: nowrap; font-size: clamp(.9rem, 1.05vw, 1.12rem); min-height: 1.3em; }

/* LL: fit whole cabinet on screen; machine baked at 80% bottom-anchored */
.slot-game-container.ll-cabinet {
  width: min(96vw, calc((100dvh - 330px) * 16 / 9), 1100px);
  margin: auto;
}
.ll-reel { top: 60%; height: 20.4%; }
.ll-stage .win-popup { top: 53.6%; }


/* LL HUD (Leave Machine + wallet) — absolute overlay like blackjack */
.ll-hud { padding: 12px 16px; }

/* ============================================================
   LUCKY LABS — Kennel Royale theme for display + controls
   ============================================================ */
.slot-modal-overlay {
  --kr-bg: #060913;
  --kr-surface: #0C1222;
  --kr-green-dark: #0A3324;
  --kr-green-felt: #11573D;
  --kr-green-bright: #1AB273;
  --kr-gold: #D4AF37;
  --kr-gold-light: #FDF0B0;
  --kr-gold-dark: #997A15;
}
.ll-stage-wrap {
  border: 1px solid var(--kr-gold-dark);
  border-bottom: none;
  border-radius: 14px 14px 0 0;
}
.ll-cabinet .slot-game-controls {
  background: rgba(6, 9, 19, 0.95);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid var(--kr-gold-dark);
  border-top: 1px solid var(--kr-gold-dark);
  border-radius: 0 0 14px 14px;
  padding: 18px 16px 20px;
}

/* Info boxes */
.ll-cabinet .info-panel { gap: 14px; margin-bottom: 14px; }
.ll-cabinet .info-box {
  background: rgba(12, 18, 34, 0.9);
  border: 1px solid var(--kr-gold-dark);
  border-radius: 12px;
  padding: 10px 18px;
  min-width: 96px;
}
.ll-cabinet .info-box.win-box { border-color: var(--kr-green-bright); }
.ll-cabinet .info-label {
  font-family: 'Cinzel', Georgia, serif;
  color: var(--kr-gold-light);
  opacity: 0.75;
  letter-spacing: 0.18em;
  font-size: 0.68rem;
}
.ll-cabinet .info-value { color: #fff; }
.ll-cabinet .info-box.win-box .info-value { color: var(--kr-green-bright); }

/* Lines indicator */
.ll-cabinet .paylines-indicator {
  background: rgba(12, 18, 34, 0.9);
  border: 1px solid var(--kr-gold-dark);
  border-radius: 999px;
  padding: 7px 16px;
}
.ll-cabinet .lines-label {
  font-family: 'Cinzel', Georgia, serif;
  color: var(--kr-gold-light);
  opacity: 0.75;
  letter-spacing: 0.18em;
  font-size: 0.68rem;
}
.ll-cabinet .line-dot { background: rgba(0, 0, 0, 0.4); border-color: var(--kr-gold-dark); color: rgba(253, 240, 176, 0.45); }
.ll-cabinet .line-dot.active {
  background: linear-gradient(180deg, var(--kr-green-bright), var(--kr-green-felt));
  border-color: #2EE59D;
  color: #fff;
  box-shadow: 0 0 10px rgba(26, 178, 115, 0.5);
}

/* Bet buttons — KR chip pills */
.ll-cabinet .bet-btn {
  width: auto;
  min-width: 64px;
  height: 48px;
  background: rgba(12, 18, 34, 0.9);
  border: 2px solid var(--kr-gold-dark);
  border-radius: 999px;
  padding: 0 16px;
  transition: all 0.2s;
}
.ll-cabinet .bet-btn:hover { background: rgba(12, 18, 34, 0.9); border-color: var(--kr-gold); transform: translateY(-2px); }
.ll-cabinet .bet-btn small { color: rgba(253, 240, 176, 0.55); }
.ll-cabinet .bet-btn.active {
  background: linear-gradient(135deg, var(--kr-gold), var(--kr-gold-dark));
  border-color: var(--kr-gold-light);
  color: var(--kr-bg);
  box-shadow: 0 0 16px rgba(212, 175, 55, 0.4);
}
.ll-cabinet .bet-btn.active small { color: rgba(6, 9, 19, 0.75); }

/* Spin button — KR green action button */
.ll-cabinet .spin-btn {
  width: auto;
  min-width: 130px;
  height: auto;
  padding: 15px 22px;
  background: linear-gradient(to bottom, var(--kr-green-bright), var(--kr-green-felt));
  border: 1px solid #2EE59D;
  border-radius: 12px;
  box-shadow: 0 4px 0 var(--kr-green-dark);
}
.ll-cabinet .spin-btn:hover:not(:disabled) {
  background: linear-gradient(to bottom, var(--kr-green-bright), var(--kr-green-felt));
  transform: none;
  box-shadow: 0 4px 0 var(--kr-green-dark), 0 0 20px rgba(26, 178, 115, 0.4);
}
.ll-cabinet .spin-btn:active:not(:disabled) { transform: translateY(3px); box-shadow: 0 1px 0 var(--kr-green-dark); }
.ll-cabinet .spin-btn:disabled {
  background: linear-gradient(to bottom, #4A4A4A, #2D2D2D);
  border-color: #666;
  box-shadow: 0 4px 0 #1A1A1A;
  opacity: 0.6;
}
.ll-cabinet .spin-btn .spin-text { letter-spacing: 0.12em; }

/* Paytable */
.slot-modal-overlay .paytable-bar { width: min(96vw, calc((100dvh - 330px) * 16 / 9), 1100px); margin: 14px auto 0; }
.slot-modal-overlay .paytable-toggle-btn {
  background: rgba(6, 9, 19, 0.85);
  border: 1px solid var(--kr-gold-dark);
  border-radius: 999px;
  color: var(--kr-gold-light);
  font-family: 'Cinzel', Georgia, serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.8rem;
}
.slot-modal-overlay .paytable-toggle-btn:hover { background: rgba(6, 9, 19, 0.95); border-color: var(--kr-gold); color: #fff; }
.slot-modal-overlay .paytable-dropdown {
  background: rgba(6, 9, 19, 0.95);
  border: 1px solid var(--kr-gold-dark);
  border-radius: 14px;
}
.slot-modal-overlay .paytable-title { color: var(--kr-gold-light); opacity: 0.7; border-bottom-color: rgba(153, 122, 21, 0.4); }
.slot-modal-overlay .pay-item { background: rgba(12, 18, 34, 0.9); border: 1px solid rgba(153, 122, 21, 0.25); }
.slot-modal-overlay .pay-item span:last-child { color: var(--kr-green-bright); }
.slot-modal-overlay .pay-item.jackpot { background: rgba(212, 175, 55, 0.12); border-color: rgba(212, 175, 55, 0.4); }
.slot-modal-overlay .pay-item.jackpot span:last-child { color: var(--kr-gold); }

/* Mobile: controls scale by layout, not transform */
@media (max-width: 700px) {
  .ll-cabinet .slot-game-controls { padding: 14px 10px 16px; }
  .ll-cabinet .info-panel { gap: 8px; margin-bottom: 10px; }
  .ll-cabinet .info-box { flex: 1 1 0; min-width: 0; padding: 8px 10px; }
  .ll-cabinet .info-value { font-size: 1.1rem; }
  .ll-cabinet .paylines-indicator { margin-bottom: 10px; }
  .ll-cabinet .controls-row { gap: 10px; flex-wrap: wrap; }
  .ll-cabinet .bet-selector { gap: 6px; width: 100%; }
  .ll-cabinet .bet-btn { min-width: 0; flex: 1 1 0; padding: 0 10px; height: 44px; font-size: 0.85rem; }
  .ll-cabinet .spin-btn { flex: 1 1 100%; min-width: 0; padding: 13px 18px; }
  .ll-cabinet .spin-btn .spin-text { font-size: 1.05rem; }
  .slot-modal-overlay .paytable-bar { width: 96vw; }
}

/* Lucky Labs featured-style card living in The Floor grid */
.kr2-floor-grid .kr2-feat-card { grid-column: span 2; }

/* Lucky Labs win popup — Kennel Royale theme */
.slot-modal-overlay .win-popup {
  background: linear-gradient(160deg, #1a1426 0%, #241b38 55%, #141021 100%);
  border: 2px solid var(--kr-gold-dark);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.65), 0 0 30px rgba(212, 175, 55, 0.25);
}
.slot-modal-overlay .win-popup .win-text {
  color: var(--kr-gold-light);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.slot-modal-overlay .win-popup .win-amount { color: var(--kr-gold); }
.slot-modal-overlay .win-popup.jackpot {
  background: linear-gradient(160deg, #2a1f0a 0%, #3a2c10 55%, #1c1406 100%);
  border-color: var(--kr-gold);
  box-shadow: 0 0 45px rgba(255, 215, 0, 0.45), 0 18px 50px rgba(0, 0, 0, 0.65);
}

/* ===== Dachshund Dash live game modal (iframe, scale-to-fit) ===== */
.dd-modal-overlay {
  position: fixed; inset: 0; z-index: 100000;
  background: #060913;
  display: none; align-items: center; justify-content: center;
  overflow: hidden;
}
.dd-modal-stage {
  position: absolute; top: 50%; left: 50%;
  width: 1280px; height: 800px;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center center;
  will-change: transform;
}
.dd-modal-frame {
  width: 100%; height: 100%; border: 0; display: block; background: #060913;
}
.dd-modal-loading {
  position: absolute; inset: 0; z-index: 100003;
  display: flex; align-items: center; justify-content: center;
  background: #060913; color: #F4D58D;
  font-family: 'Cinzel', Georgia, serif;
  letter-spacing: 0.15em; font-size: 15px; text-align: center;
}
.dd-modal-loading.dd-hidden { display: none; }
.dd-welcome-overlay {
  position: fixed; inset: 0; z-index: 100004;
  display: flex; align-items: center; justify-content: center;
  background: #060913;
}
.dd-welcome-overlay.dd-hidden { display: none; }
.dd-welcome-vid {
  width: 100%; height: 100%; object-fit: contain;
  background: #060913; display: block;
}

/* ============ TDW CURRENCY TOGGLE ============ */
.tdw-currency-toggle {
  display: flex; gap: 3px;
  background: rgba(6, 9, 19, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px; padding: 3px;
}
.tdw-toggle-btn {
  padding: 5px 13px; border-radius: 999px; border: none;
  background: transparent; color: rgba(255,255,255,0.45);
  font-weight: 700; font-size: 0.75rem; letter-spacing: 0.05em;
  cursor: pointer; transition: all 0.18s; white-space: nowrap;
}
.tdw-toggle-btn.active {
  background: linear-gradient(135deg, var(--kr-gold), var(--kr-gold-dark));
  color: #000;
  box-shadow: 0 2px 8px rgba(212,175,55,0.35);
}
.tdw-toggle-btn#tdw-toggle-cash.active {
  background: linear-gradient(135deg, #00cc66, #1a7a4a);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0,204,102,0.35);
}

/* Wallet currency sub-label */
.tdw-wallet-curr-label {
  font-size: 0.68rem; color: rgba(255,255,255,0.45);
  font-weight: 600; letter-spacing: 0.04em; margin-left: -3px;
}
/* Cash dollar sign in wallet */
.tdw-cash-dollar-sign {
  font-size: 1.1rem; font-weight: 800; color: #00cc66; line-height: 1;
}
/* Cash dollar icon in betchip */
.tdw-betchip-cash-icon {
  font-size: 1rem; font-weight: 800; color: #00cc66;
  width: 24px; height: 24px; display: inline-flex;
  align-items: center; justify-content: center;
}

/* Cash chip buttons — green theme */
.tdw-cash-chip { border-color: #1a7a4a !important; }
.tdw-cash-chip:hover { border-color: #00cc66 !important; }
.tdw-cash-chip.selected {
  background: linear-gradient(135deg, #00cc66, #1a7a4a) !important;
  border-color: #00ff88 !important;
  box-shadow: 0 0 16px rgba(0,204,102,0.45) !important;
  color: #fff !important;
}

/* BJ + TDW betchip — toggle sits inline on the same row */
.tdw-betchip-with-toggle, .bj-betchip-with-toggle { gap: 8px; }
.tdw-betchip-with-toggle .tdw-currency-toggle,
.bj-betchip-with-toggle .tdw-currency-toggle { margin-left: 4px; }

/* Group coin icon + bet label as one left-side unit (TDW) */
.tdw-bet-left {
  display: flex; align-items: center; gap: 4px;
}

/* TDW betchip desktop: bet left, toggle right — spans full table width */
#topdogwar-modal .kr-bj-betchip.tdw-betchip-with-toggle {
  left: 3%;
  right: 3%;
  bottom: 5%;
  top: auto;
  width: auto;
  transform: none;
  justify-content: space-between;
}

/* ---- Desktop chip coin size fix ----
   .kr-bj-chip lives OUTSIDE .kr-bj-stage so the stage's --chip-w variable
   is never inherited. Force explicit pixel sizes here so the coin icon is
   small and readable, not the image's natural full size. */
#blackjack-modal .kr-bj-betchip .kr-bj-chip,
#topdogwar-modal .kr-bj-betchip .kr-bj-chip,
#threecardhound-modal .kr-bj-betchip .kr-bj-chip {
  width: 28px; height: 28px;
}
#blackjack-modal .kr-bj-betchip .kr-bj-chip img,
#topdogwar-modal .kr-bj-betchip .kr-bj-chip img,
#threecardhound-modal .kr-bj-betchip .kr-bj-chip img {
  width: 14px; height: 14px;
}

/* Cash icon in betchip */
.bj-betchip-cash-icon {
  font-size: 1.1rem; font-weight: 800; color: #00cc66;
  line-height: 1; display: flex; align-items: center;
}

/* Cash chip buttons — green theme (shared with tdw-cash-chip) */
.bj-cash-chip {
  background: linear-gradient(135deg, #006633 0%, #009944 100%) !important;
  border-color: #00cc66 !important;
  color: #fff !important;
}
.bj-cash-chip.selected,
.bj-cash-chip:hover {
  background: linear-gradient(135deg, #009944 0%, #00cc66 100%) !important;
  box-shadow: 0 0 16px rgba(0,204,102,0.45) !important;
  color: #fff !important;
}

/* Group coin icon + bet label as one left-side unit */
.bj-bet-left {
  display: flex; align-items: center; gap: 4px;
}

/* BJ betchip: bet left, toggle right — spans full table width */
#blackjack-modal .kr-bj-betchip.bj-betchip-with-toggle {
  left: 3%;
  right: 3%;
  bottom: 5%;
  top: auto;
  width: auto;
  transform: none;
  justify-content: space-between;
}

/* Mobile: all game betchips span full width left/right with toggle on right */
@media (max-width: 767px) {
  #topdogwar-modal .kr-bj-betchip.tdw-betchip-with-toggle {
    left: 3%;
    right: 3%;
    bottom: 4%;
    top: auto;
    transform: none;
    justify-content: space-between;
  }
  #blackjack-modal .kr-bj-betchip.bj-betchip-with-toggle {
    left: 3%;
    right: 3%;
    bottom: 4%;
    top: auto;
    transform: none;
    justify-content: space-between;
  }
}

/* ============ TCH CURRENCY TOGGLE ============ */
.tch-bet-left {
  display: flex; align-items: center; gap: 4px;
}
.tch-betchip-cash-icon {
  font-size: 1.1rem; font-weight: 800; color: #00cc66;
  line-height: 1; display: flex; align-items: center;
}
#threecardhound-modal .kr-bj-betchip.tch-betchip-with-toggle {
  left: 3%;
  right: 3%;
  bottom: 5%;
  top: auto;
  width: auto;
  transform: none;
  justify-content: space-between;
}
@media (max-width: 767px) {
  #threecardhound-modal .kr-bj-betchip.tch-betchip-with-toggle {
    left: 3%;
    right: 3%;
    bottom: 4%;
    top: auto;
    transform: none;
    justify-content: space-between;
  }
}

/* ============ LUCKY LABS CURRENCY TOGGLE ============ */
.ll-currency-row {
  display: flex;
  justify-content: center;
  margin: 5px 0 2px;
}
.ll-currency-toggle {
  display: inline-flex;
  background: rgba(6, 9, 19, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 3px;
  gap: 3px;
}
.ll-toggle-btn {
  padding: 4px 12px;
  border-radius: 999px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.45);
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.73rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.18s;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 4px;
}
.ll-toggle-btn.active {
  background: linear-gradient(135deg, var(--kr-gold), var(--kr-gold-dark));
  color: #000;
  box-shadow: 0 2px 8px rgba(212, 175, 55, 0.35);
}
.ll-toggle-btn#ll-toggle-cash.active {
  background: linear-gradient(135deg, #00cc66, #1a7a4a);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 204, 102, 0.35);
}
.ll-toggle-icon {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  object-fit: cover;
}
.ll-hud-cash-dollar {
  font-size: 1.1rem;
  font-weight: 800;
  color: #00cc66;
  line-height: 1;
}

/* ============ DACHSHUND DASH CURRENCY TOGGLE ============ */
/* Toggle is now injected into the iframe DOM — outer overlay is hidden. */
.dd-currency-overlay {
  display: none !important;
}
.dd-currency-toggle {
  display: inline-flex;
  background: rgba(6, 9, 19, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  padding: 3px;
  gap: 3px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.55);
}
.dd-toggle-btn {
  padding: 5px 14px;
  border-radius: 999px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.45);
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.18s;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 4px;
}
.dd-toggle-btn.active {
  background: linear-gradient(135deg, var(--kr-gold), var(--kr-gold-dark));
  color: #000;
  box-shadow: 0 2px 8px rgba(212,175,55,0.35);
}
.dd-toggle-btn#dd-toggle-cash.active {
  background: linear-gradient(135deg, #00cc66, #1a7a4a);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0,204,102,0.35);
}
.dd-toggle-icon {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  object-fit: cover;
}
@media (min-width: 821px) {
  /* Desktop: game is 1280x800 scaled-to-fit; betting panel starts ~60% down */
  .dd-currency-overlay {
    top: calc(60% + 8px);
  }
}

/* ============== ROVER ROULETTE (rr2 — graduated from canvas mockup) ============== */
.rr2-overlay {
  position: fixed; inset: 0; z-index: 100002;
  overflow: hidden; background: #050e07;
  font-family: Georgia, 'Times New Roman', serif;
}
.rr2-bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0; pointer-events: none;
}
/* HUD */
.rr2-hud {
  position: absolute; top: 0; left: 0; right: 0; z-index: 60;
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px;
}
.rr2-leave {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(6,9,19,0.8); backdrop-filter: blur(8px);
  border: 1px solid #997A15; border-radius: 999px;
  padding: 6px 14px 6px 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.4); cursor: pointer;
  color: #FDF0B0; font-family: Cinzel, Georgia, serif; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase; font-size: 0.85rem;
  transition: color 0.2s;
}
.rr2-leave-arrow { font-size: 1.2rem; line-height: 1; }
.rr2-wallet-pill {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(6,9,19,0.8); backdrop-filter: blur(8px);
  border: 1px solid #997A15; border-radius: 999px;
  padding: 6px 8px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.4);
}
.rr2-sound {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 999px; padding: 0; cursor: pointer;
  background: rgba(0,0,0,0.35); border: 1px solid #997A15; color: #FDF0B0;
  transition: all 0.2s; flex-shrink: 0;
}
.rr2-sound span { font-size: 1.15rem; line-height: 1; }
.rr2-sound.on { background: rgba(26,178,115,0.22); border-color: #1AB273; color: #fff; }
.rr2-coin-img { width: 24px; height: 24px; }
.rr2-cash-sign { color: #00cc66; font-size: 1.1rem; font-weight: 800; width: 24px; text-align: center; }
.rr2-balance { font-weight: 700; letter-spacing: 0.03em; color: #fff; }
.rr2-balance-label {
  color: #FDF0B0; font-size: 0.75rem; letter-spacing: 0.1em;
  text-transform: uppercase; padding-right: 6px;
}
/* TABLE */
.rr2-table {
  position: absolute; left: 0; right: 0; bottom: 90px; top: 30%;
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -8px 40px rgba(0,0,0,0.7);
  z-index: 10;
}
.rr2-table-in { position: relative; width: 100%; height: 100%; }
.rr2-table-img {
  width: 100%; height: 100%; object-fit: fill; display: block;
  border-radius: 8px 8px 0 0;
}
.rr2-watermark-cover {
  position: absolute; bottom: 16%; right: 4%; width: 5%; height: 10%;
  background: #3a1f0d; z-index: 6;
}
.rr2-zone {
  position: absolute;
  background: rgba(255,255,255,0.02);
  border: 2px solid transparent; border-radius: 3px;
  box-sizing: border-box; cursor: pointer; user-select: none;
  z-index: 5; transform: scale(1); transition: all 0.18s;
}
.rr2-zone.selected {
  background: rgba(0,255,136,0.18); border-color: #00ff88;
  z-index: 20; transform: scale(1.04);
  box-shadow: 0 0 10px 3px rgba(0,255,136,0.5), 0 0 22px 6px rgba(0,255,136,0.25);
  animation: rr2BetPulse 1.5s ease-in-out infinite;
}
.rr2-badge-wrap { position: absolute; transform: translate(-50%,-50%); z-index: 50; pointer-events: none; }
.rr2-badge {
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(0,0,0,0.92); border: 2px solid #00ff88;
  border-radius: 999px; padding: 5px 12px; white-space: nowrap;
  box-shadow: 0 2px 10px rgba(0,0,0,0.8); transition: all 0.3s;
}
.rr2-badge img { width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0; display: block; }
.rr2-badge .rr2-badge-txt { color: #fff; font-size: 14px; font-weight: 800; line-height: 1; }
.rr2-badge .rr2-badge-cash { color: #fff; font-size: 13px; font-weight: 700; line-height: 1; }
.rr2-badge.won  { background: rgba(0,255,136,0.18); border-color: #00ff88; }
.rr2-badge.won  .rr2-badge-txt, .rr2-badge.won .rr2-badge-cash { color: #00ff88; }
.rr2-badge.lost { background: rgba(255,68,85,0.18); border-color: #ff4455; }
.rr2-badge.lost .rr2-badge-txt, .rr2-badge.lost .rr2-badge-cash { color: #ff4455; }
/* DEALER — behind table */
.rr2-dealer {
  position: absolute; left: 12.857vw; top: 0;
  width: 37.143vw; height: 30vw;
  z-index: 4; filter: drop-shadow(4px 8px 24px rgba(0,0,0,0.9));
  pointer-events: none;
}
.rr2-dealer canvas { display: block; width: 111.54%; height: auto; }
/* WHEEL — vw-scaled so it stays proportional to the full-width table at any screen size */
.rr2-wheel {
  position: absolute; left: 7.857vw; top: 29%;
  width: 27.143vw; height: 27.143vw;
  z-index: 20;
}
.rr2-wheel-pin {
  position: absolute; top: 4px; left: 50%; transform: translateX(-50%);
  width: 14px; height: 14px; border-radius: 50%;
  background: #e8c84a; box-shadow: 0 0 12px #e8c84a, 0 0 24px #e8c84a66;
  z-index: 25;
}
.rr2-wheel-frame {
  position: absolute; inset: 0; z-index: 22; pointer-events: none;
  -webkit-mask-image: radial-gradient(circle, transparent 61%, black 65%);
  mask-image: radial-gradient(circle, transparent 61%, black 65%);
}
.rr2-rotor {
  position: absolute; inset: 0; border-radius: 50%; overflow: hidden;
  z-index: 21;
}
.rr2-wheel canvas { display: block; width: 100%; height: 100%; }
.rr2-ball {
  position: absolute; left: 50%; top: 50%; width: 14px; height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #fff, #bbb 60%, #888);
  box-shadow: 0 2px 8px rgba(0,0,0,0.8);
  z-index: 30; pointer-events: none;
}
/* RESULT BANNER */
.rr2-banner {
  position: absolute; top: 38%; left: 50%;
  transform: translate(-50%,-50%);
  background: rgba(0,0,0,0.94);
  border: 2px solid #00ff88; border-radius: 16px;
  padding: 18px 44px; text-align: center; z-index: 50;
  box-shadow: 0 0 60px #00ff8855;
  animation: rr2PopIn 0.3s cubic-bezier(0.34,1.56,0.64,1);
  min-width: 200px;
}
.rr2-banner.lose { border-color: #ff4455; box-shadow: 0 0 60px #ff445555; }
.rr2-banner .rr2-b-label { color: #777; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 4px; }
.rr2-banner .rr2-b-num { font-size: 52px; font-weight: bold; line-height: 1; }
.rr2-banner .rr2-b-sub { color: #888; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; margin-bottom: 14px; }
.rr2-banner .rr2-b-body { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 12px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.rr2-banner .rr2-b-verdict { font-size: 13px; font-weight: 800; letter-spacing: 3px; text-transform: uppercase; }
.rr2-banner .rr2-b-amt { font-size: 26px; font-weight: 900; letter-spacing: 0.02em; }
.rr2-banner .rr2-b-count { font-size: 11px; color: rgba(255,255,255,0.35); margin-top: 2px; }
/* BOTTOM CONTROLS */
.rr2-controls {
  position: absolute; bottom: 0; left: 0; right: 0; min-height: 210px;
  background: linear-gradient(to bottom, rgba(6,9,19,0) 0%, rgba(6,9,19,0.97) 18px, rgba(6,9,19,0.97) 100%);
  backdrop-filter: blur(10px);
  border-top: 1px solid #997A15;
  padding: 18px 32px 16px;
  display: flex; flex-direction: column; justify-content: center;
  align-items: center; gap: 10px; z-index: 40;
  box-sizing: border-box;
}
.rr2-row1 { width: 100%; display: flex; align-items: center; justify-content: center; position: relative; }
.rr2-totalbet {
  position: absolute; left: 0;
  display: flex; align-items: center; gap: 6px;
  color: #cbd5e1; font-size: 0.85rem;
}
.rr2-totalbet-amt { color: #FDF0B0; font-weight: 700; }
.rr2-totalbet-spots { color: rgba(255,255,255,0.4); font-size: 0.75rem; }
.rr2-selectbet { display: flex; align-items: center; gap: 16px; }
.rr2-selectbet-label {
  color: #FDF0B0; font-size: 0.72rem; letter-spacing: 0.18em;
  text-transform: uppercase; font-weight: 700;
}
.rr2-curr-toggle {
  display: flex; gap: 3px;
  background: rgba(6,9,19,0.85);
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 999px; padding: 3px;
}
.rr2-curr-btn {
  padding: 7px 18px; border-radius: 999px; border: none;
  background: transparent; color: rgba(255,255,255,0.65);
  font-weight: 700; font-size: 0.9rem; letter-spacing: 0.05em;
  cursor: pointer; transition: all 0.18s; white-space: nowrap;
}
.rr2-curr-btn.active-coins {
  background: linear-gradient(135deg,#D4AF37,#997A15); color: #000;
  box-shadow: 0 2px 8px rgba(212,175,55,0.35);
}
.rr2-curr-btn.active-cash {
  background: linear-gradient(135deg,#00cc66,#1a7a4a); color: #fff;
  box-shadow: 0 2px 8px rgba(0,204,102,0.35);
}
.rr2-chips { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.rr2-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(12,18,34,0.9); border: 2px solid #997A15; color: #fff;
  font-weight: 700; font-size: 1rem; padding: 11px 20px; border-radius: 999px;
  cursor: pointer; transition: all 0.2s;
}
.rr2-chip img { width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; }
.rr2-chip.active {
  background: linear-gradient(135deg,#D4AF37,#997A15);
  border-color: #FDF0B0; color: #0A0E1A;
  box-shadow: 0 0 16px rgba(212,175,55,0.4);
}
.rr2-chip:disabled { opacity: 0.45; cursor: not-allowed; }
.rr2-spin-btn {
  min-width: 160px; padding: 15px 40px;
  border-radius: 12px; font-weight: 800; font-size: 1.05rem;
  text-transform: uppercase; letter-spacing: 0.06em;
  cursor: not-allowed; border: 1px solid #333;
  color: #555; background: rgba(255,255,255,0.06);
  transition: transform 0.12s, box-shadow 0.12s;
  opacity: 0.4;
}
.rr2-spin-btn.ready {
  cursor: pointer; color: #0A0E1A;
  background: linear-gradient(to bottom,#FDF0B0,#D4AF37);
  border-color: #fff; box-shadow: 0 4px 0 #997A15;
  opacity: 1;
}
.rr2-spin-btn:disabled.spinning { opacity: 1; }
@keyframes rr2PopIn {
  from { opacity: 0; transform: translate(-50%,-50%) scale(0.85); }
  to   { opacity: 1; transform: translate(-50%,-50%) scale(1); }
}
@keyframes rr2BetPulse {
  0%, 100% { box-shadow: 0 0 10px 3px rgba(0,255,136,0.5), 0 0 22px 6px rgba(0,255,136,0.25); }
  50%      { box-shadow: 0 0 18px 6px rgba(0,255,136,0.75), 0 0 36px 10px rgba(0,255,136,0.4); }
}
/* ---- Rotate-your-phone prompt (portrait on small screens) ---- */
.rr2-rotate-prompt {
  display: none; /* hidden by default; shown only in portrait via media query */
  position: absolute; inset: 0; z-index: 200;
  background: rgba(5,14,7,0.96);
  align-items: center; justify-content: center;
}
.rr2-rotate-inner {
  text-align: center; padding: 40px 32px;
}
.rr2-rotate-icon {
  font-size: 72px; line-height: 1; margin-bottom: 20px;
  animation: rr2RotateHint 2s ease-in-out infinite;
  display: inline-block;
  color: #D4AF37;
}
.rr2-rotate-title {
  font-family: Cinzel, Georgia, serif; font-size: 1.6rem; font-weight: 700;
  color: #FDF0B0; letter-spacing: 0.12em; text-transform: uppercase;
  margin-bottom: 12px;
}
.rr2-rotate-sub {
  color: rgba(255,255,255,0.55); font-size: 0.95rem; line-height: 1.5;
}
@keyframes rr2RotateHint {
  0%   { transform: rotate(0deg);   }
  30%  { transform: rotate(90deg);  }
  60%  { transform: rotate(90deg);  }
  90%  { transform: rotate(0deg);   }
  100% { transform: rotate(0deg);   }
}

/* Portrait on any phone/small tablet → show rotate prompt, hide game */
@media (orientation: portrait) and (max-width: 900px) {
  .rr2-rotate-prompt { display: flex; }
  .rr2-hud, .rr2-table, .rr2-dealer, .rr2-wheel, .rr2-controls, #rr2-banner { visibility: hidden; }
}

/* Landscape on small screens → compact controls so table + wheel are fully
   visible. Controls collapse to ~100px; table bottom offset matches. */
@media (orientation: landscape) and (max-height: 500px) {
  /* HUD: tighter top padding so the Leave pill sits higher, clear of the wheel */
  .rr2-hud { padding: 6px 16px; }

  /* Table: bottom cleared for compact controls */
  .rr2-table { bottom: 104px; top: 27%; }

  /* Controls strip: 3 tight rows */
  .rr2-controls { padding: 5px 16px 6px; min-height: 0; gap: 3px; }

  /* Row 1: total-bet + select-bet toggle all in one line */
  .rr2-row1 { justify-content: space-between; gap: 0; }
  .rr2-totalbet { position: static; font-size: 0.76rem; }
  .rr2-totalbet-amt { font-size: 0.76rem; }
  .rr2-selectbet { gap: 8px; }
  .rr2-selectbet-label { font-size: 0.64rem; }
  .rr2-curr-btn { padding: 4px 11px; font-size: 0.76rem; }

  /* Row 2: chips compact single line */
  .rr2-chips { gap: 4px; flex-wrap: nowrap; }
  .rr2-chip { padding: 5px 9px; font-size: 0.73rem; gap: 3px; }
  .rr2-chip img { width: 13px; height: 13px; }

  /* Row 3: spin button short */
  .rr2-spin-btn { padding: 6px 24px; font-size: 0.8rem; min-width: 100px; }

  /* Wheel: move up so it sits ON the table felt, nudge right, slightly smaller */
  .rr2-wheel {
    top: 16%;
    left: min(90px, 9vw);
    width: min(320px, 24vw);
    height: min(320px, 24vw);
  }
}
