@font-face {
  font-family: 'Maru Buri';
  src: url('/static/fonts/MaruBuri-SemiBold.woff2') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/static/fonts/IBMPlexMono-Medium.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  unicode-range: U+002B-0039, U+0078;
}
:root {
  --font-reading: 'SUIT Variable', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-title: 'Maru Buri', Georgia, serif;
  --font-figure: 'IBM Plex Mono', 'SUIT Variable', sans-serif;
  --base: #0d1410;
  --surface: #17221b;
  --line: #354438;
  --gold: #cfb783;
}
/* Clear roles: editorial titles, readable controls, aligned figures. */
.casino-site .hero-copy h1,
.casino-site .game-select-card .font-extrabold,
.casino-site .game-arena h3,
.casino-site #section-charge h2,
.casino-site #section-ranking h2,
.casino-admin h1 {
  font-family: var(--font-title);
  font-weight: 600 !important;
  letter-spacing: -.025em;
  line-height: 1.45;
}
.casino-site .hero-copy h1 { line-height: 1.27; }
.casino-site .hero-copy h1 em,
.casino-site #section-games h2 > span:first-child,
.casino-site > header .text-xl {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400 !important;
  letter-spacing: .015em;
}
.casino-site .game-select-card .font-extrabold { font-size: 18px; }
.casino-site .game-arena h3 { font-size: 26px; }
.casino-site .hero-copy p { font-family: var(--font-reading); line-height: 1.85; }
#header-user-chips, #global-bet-amount, [id^='my-stat-'], [id^='kpi-'],
#mines-cur-mult, #mines-next-mult, #dice-sum-text,
#mini-ranking-list .text-amber-400, #full-ranking-list .text-amber-400,
#ranking-podium .text-amber-400, #game-result-banner,
.game-arena button, .game-arena .text-xs, .game-arena .text-sm,
#pending-queue .text-amber-400, #deposit-logs .text-amber-400,
#admin-user-list .text-amber-400, #live-game-feed {
  font-family: var(--font-figure);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
#header-user-chips, #global-bet-amount { font-weight: 500 !important; }
/* Compact, squared edges. Circular roulette indicators keep their meaning. */
.casino-site button, .casino-admin button,
.casino-site input, .casino-site select,
.casino-admin input, .casino-admin select,
.casino-site .admin-nav a, .casino-admin .admin-nav a {
  border-radius: 2px !important;
  box-shadow: none !important;
}
.casino-site .rounded-3xl, .casino-site .rounded-2xl, .casino-site .rounded-xl,
.casino-admin .rounded-3xl, .casino-admin .rounded-2xl, .casino-admin .rounded-xl,
.casino-hero, .casino-site .game-select-card {
  border-radius: 4px !important;
}
.casino-site button, .casino-admin button { border-radius: 2px !important; }
.casino-sidebar > a, .casino-site .game-select-card > div:first-child > span:last-child,
.casino-site header .rounded-full, .casino-admin .rounded-full,
#section-charge span.rounded-full, #section-games .game-arena span.rounded-full:not(#roulette-ball) {
  border-radius: 2px !important;
}
.casino-site .shadow-lg, .casino-site .shadow-xl, .casino-site .shadow-2xl,
.casino-site .shadow-inner, .casino-admin .shadow-lg, .casino-admin .shadow-xl {
  box-shadow: none !important;
}
.casino-site .gold-gradient, .casino-admin .gold-gradient,
.casino-site .hero-copy button, .casino-site button.bg-amber-500 {
  background: var(--gold) !important;
  color: #17221b !important;
  border: 1px solid var(--gold) !important;
}
.casino-site .emerald-gradient, .casino-admin .emerald-gradient {
  background: #36523f !important;
}
.casino-hero { background: #1a2b20 !important; border-color: #394b3c; }
.casino-site .game-select-card:nth-child(n) {
  background: #17241c !important;
  border: 1px solid #354438 !important;
  box-shadow: none !important;
  transition: border-color .15s !important;
}
.casino-site .game-select-card:hover { transform: none; border-color: var(--gold) !important; }
.casino-site .game-select-card.selected { border-color: var(--gold) !important; box-shadow: none !important; }
.casino-site .game-select-card::after { content: none; }
.casino-site .panel-elevated { background: #202c23; border-color: #43503e; }
.casino-site .game-arena[id^='arena-'] {
  background: #15251b !important;
  border: 1px solid #43553f !important;
  box-shadow: none !important;
}
.game-arena > div:first-child { border-bottom-color: #40523d !important; }
/* All six tables share the same surfaces; red/black remain on roulette choices. */
.game-arena div[class*='bg-blue-950'], .game-arena div[class*='bg-rose-950'],
.game-arena div[class*='bg-amber-950'], .game-arena div[class*='bg-slate-950'],
.game-arena div[class*='bg-slate-900'] {
  background: #112017 !important;
  border: 1px solid #354c39 !important;
}
.game-arena span[class*='bg-blue-500'], .game-arena span[class*='bg-rose-500'],
.game-arena span[class*='bg-amber-500'] {
  background: #263c2b !important;
  color: #e4e6d7 !important;
}
.game-arena .text-blue-300, .game-arena .text-blue-200,
.game-arena .text-rose-300, .game-arena .text-rose-200,
.game-arena .text-purple-300, .game-arena .text-sky-100,
.game-arena .text-sky-300, .game-arena .text-cyan-300,
.game-arena .text-emerald-300, .game-arena .text-emerald-200 {
  color: #c2cfbb !important;
}
.casino-site .game-arena button[class*='bg-blue'],
.casino-site .game-arena button[class*='bg-purple'],
.casino-site .game-arena button[class*='bg-sky'],
.casino-site .game-arena button[class*='bg-emerald'] {
  background: #2c4432 !important;
  border: 1px solid #52694e !important;
  color: #eeeee0 !important;
}
.casino-site .game-arena button.bg-rose-600 {
  background: #70473f !important;
  border-color: #916259 !important;
}
.casino-site #arena-baccarat button[class*='bg-rose'],
.casino-site #arena-dice button[class*='bg-rose'] {
  background: #2c4432 !important;
  border: 1px solid #52694e !important;
  color: #eeeee0 !important;
}
.casino-site .game-arena button:hover:not(:disabled) { filter: brightness(1.12); }
.casino-site .game-arena #slot-spin-btn,
.casino-site .game-arena #bj-start-btn,
.casino-site .game-arena #mines-start-btn {
  background: var(--gold) !important;
  color: #17221b !important;
  border: 1px solid var(--gold) !important;
}
#arena-slots > div.border-4 { border: 1px solid #7c7951 !important; padding: 20px; }
[id^='slot-reel-'] { border: 1px solid #3c503c !important; background: #0d1911 !important; }
[id^='dice-box-'] { background: transparent !important; }
#arena-baccarat button, #arena-dice button { padding-top: 16px; padding-bottom: 16px; }
#mines-grid button { border-width: 1px; }
#game-result-banner { border-width: 1px; background: #233326 !important; }
#charge-toast { background: #263e2b; border: 1px solid #78916b; border-radius: 3px !important; }
.casino-admin .bg-rose-600 { background: #665537; }
@media (max-width:760px) {
  .casino-site .game-select-card .font-extrabold { font-size: 16px; }
  .casino-site .game-arena h3 { font-size: 22px; }
  .casino-site .hero-copy h1 { font-size: 31px; }
  .casino-site .hero-copy h1 em { font-size: 34px; }
  .casino-site .game-arena { padding: 20px 16px; }
  .casino-site .hero-art > img { object-fit: contain; }
}
/* Translucent legacy slate utilities must also use the shared forest palette. */
.casino-site [class*='bg-slate-900/'], .casino-admin [class*='bg-slate-900/'],
.casino-site [class*='bg-slate-950/'], .casino-admin [class*='bg-slate-950/'],
.casino-site [class*='bg-slate-800/'], .casino-admin [class*='bg-slate-800/'] {
  background-color: #17231b !important;
}
body.casino-site button[class], body.casino-admin button[class],
body.casino-site input[class], body.casino-admin input[class],
body.casino-site select[class], body.casino-admin select[class] {
  border-radius: 2px !important;
}
/* Lobby and personal tables are separate routes; shared rooms use room.html. */
.lobby-view #section-games > .grid{display:none}.personal-view #section-games > .casino-hero,.personal-view #section-games > div:nth-child(3):not(.grid){display:none}.personal-view .game-catalog{display:none}.personal-view #section-games > .casino-hero+div{display:none}
.personal-intro{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:12px 0 20px;font-size:12px;color:var(--gold)}.personal-intro span{font-size:10px;letter-spacing:.12em;color:#9aaf94}.personal-view .game-arena{position:relative}.personal-progress{position:absolute;top:0;left:0;right:0;z-index:10;padding:12px 20px;background:#18291bf5;border-bottom:1px solid #b6a578;color:#e6d2a2;text-align:center;font-size:13px}.personal-busy .game-arena button{pointer-events:none!important;opacity:.6}.personal-busy #game-result-banner{visibility:hidden}.personal-busy .playing-card{animation:personal-deal .6s ease-out both}.personal-busy .playing-card:nth-child(2){animation-delay:.35s}.personal-busy .playing-card:nth-child(3){animation-delay:.7s}.personal-busy .playing-card:nth-child(4){animation-delay:1s}.personal-busy #mines-grid{opacity:.55;transition:opacity .4s}#game-result-banner.personal-result-win{border:2px solid #d4bc87;background:#2d4228!important}#game-result-banner.personal-result-lose{border:2px solid #9e6658;background:#30241c!important}#game-result-banner.personal-result-push{border:2px solid #8b9b82;background:#263329!important}.personal-win #game-result-banner{animation:personal-win 1.2s ease-out 2}#game-result-banner .text-base{font-size:23px;line-height:1.6}#game-result-banner[class*='personal-result']{scroll-margin-top:180px}@keyframes personal-deal{from{opacity:0;transform:translate(25px,-35px) rotateY(90deg)}to{opacity:1;transform:none}}@keyframes personal-win{50%{box-shadow:0 0 26px #d4bc8755}}@media(max-width:760px){.personal-intro span{display:none}.casino-sidebar>a:not(.royal-brand){padding:6px 5px}.personal-view #game-result-banner .text-base{font-size:19px}}
