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: 100px 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: 88px 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 {
    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 {
    transform: scale(0.78);
  }
}

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

/* Very small screens (iPhone SE 320px / older devices) */
@media (max-width: 320px) {
  .slot-game-container {
    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;
  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(135deg, #1a1e3a 0%, #0a0e27 100%);
  border-radius: 24px;
  padding: 30px;
  max-width: 500px;
  width: 100%;
  max-height: 90vh;
  max-height: 90dvh;
  overflow-y: auto;
  position: relative;
  border: 2px solid rgba(255, 215, 0, 0.3);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 40px rgba(255, 215, 0, 0.1);
}

.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;
}

.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:34px; 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; }
}
