/* BCH Play — Las Vegas casino floor atmosphere */
:root {
    --hx-neon-pink: #ff2d87;
    --hx-neon-blue: #00d4ff;
    --hx-neon-purple: #b44dff;
    --hx-vegas-gold: #ffd700;
    --hx-vegas-red: #e63946;
    --hx-marquee-speed: 45s;
}

/* ── Vegas strip header chrome ── */
.hx-vegas-strip {
    position: relative;
    overflow: hidden;
    background: linear-gradient(90deg, #120818 0%, #1a0a28 25%, #0a1828 50%, #1a0a28 75%, #120818 100%);
    border-bottom: 2px solid rgba(255,215,0,.25);
    padding: .45rem 0;
}
.hx-vegas-strip::before,
.hx-vegas-strip::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 120px;
    pointer-events: none;
    z-index: 2;
}
.hx-vegas-strip::before { left: 0; background: linear-gradient(90deg, #120818, transparent); }
.hx-vegas-strip::after { right: 0; background: linear-gradient(-90deg, #120818, transparent); }

.hx-vegas-lights {
    display: flex;
    gap: .35rem;
    justify-content: center;
    animation: hx-lights-scroll 8s linear infinite;
}
.hx-vegas-bulb {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    animation: hx-bulb-blink 1.2s ease-in-out infinite;
}
.hx-vegas-bulb:nth-child(3n) { background: var(--hx-vegas-gold); box-shadow: 0 0 8px var(--hx-vegas-gold); animation-delay: .1s; }
.hx-vegas-bulb:nth-child(3n+1) { background: var(--hx-neon-pink); box-shadow: 0 0 8px var(--hx-neon-pink); animation-delay: .4s; }
.hx-vegas-bulb:nth-child(3n+2) { background: var(--hx-bch-bright); box-shadow: 0 0 8px var(--hx-bch); animation-delay: .7s; }

@keyframes hx-bulb-blink {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .35; transform: scale(.85); }
}
@keyframes hx-lights-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* ── Live marquee bar ── */
.hx-marquee-bar {
    display: flex;
    align-items: stretch;
    background: rgba(0,0,0,.55);
    border-bottom: 1px solid rgba(255,215,0,.15);
    font-size: .8rem;
    min-height: 36px;
}
.hx-marquee-stat {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem 1rem;
    border-right: 1px solid rgba(255,255,255,.08);
    white-space: nowrap;
    flex-shrink: 0;
}
.hx-marquee-stat strong { color: var(--hx-vegas-gold); font-variant-numeric: tabular-nums; }
.hx-marquee-stat .hx-live-pulse {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 8px #22c55e;
    animation: hx-pulse-live 1.5s ease-in-out infinite;
}
@keyframes hx-pulse-live {
    0%, 100% { opacity: 1; box-shadow: 0 0 8px #22c55e; }
    50% { opacity: .5; box-shadow: 0 0 4px #22c55e; }
}

.hx-marquee-track-wrap {
    flex: 1;
    overflow: hidden;
    display: flex;
    align-items: center;
    position: relative;
}
.hx-marquee-label {
    padding: 0 .85rem;
    color: var(--hx-neon-pink);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .7rem;
    flex-shrink: 0;
    border-right: 1px solid rgba(255,255,255,.08);
}
.hx-marquee-track {
    display: flex;
    gap: 2.5rem;
    animation: hx-marquee var(--hx-marquee-speed) linear infinite;
    padding-left: 100%;
}
.hx-marquee-track:hover { animation-play-state: paused; }
@keyframes hx-marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}
.hx-marquee-item { white-space: nowrap; color: var(--hx-muted); }
.hx-marquee-item strong { color: var(--hx-text); }
.hx-marquee-item .hx-win { color: var(--hx-bch-bright); font-weight: 700; }
.hx-marquee-item .hx-loss { color: var(--hx-red); }

/* ── Jackpot banner ── */
.hx-jackpot-banner {
    position: relative;
    text-align: center;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 20px;
    background:
        radial-gradient(ellipse 80% 120% at 50% 0%, rgba(255,215,0,.18), transparent 60%),
        linear-gradient(135deg, rgba(26,10,40,.9), rgba(10,24,40,.9));
    border: 1px solid rgba(255,215,0,.35);
    box-shadow: 0 0 40px rgba(255,215,0,.12), inset 0 1px 0 rgba(255,255,255,.08);
    overflow: hidden;
}
.hx-jackpot-banner::before {
    content: '';
    position: absolute;
    inset: -50%;
    background: conic-gradient(from 0deg, transparent, rgba(255,215,0,.06), transparent, rgba(10,193,142,.06), transparent);
    animation: hx-jackpot-spin 12s linear infinite;
}
.hx-jackpot-inner { position: relative; z-index: 1; }
.hx-jackpot-eyebrow {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--hx-vegas-gold);
    margin-bottom: .35rem;
}
.hx-jackpot-amount {
    font-family: var(--hx-display);
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 800;
    background: linear-gradient(180deg, #fff8dc 0%, var(--hx-vegas-gold) 50%, #c9971a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: none;
    filter: drop-shadow(0 0 20px rgba(255,215,0,.4));
    font-variant-numeric: tabular-nums;
}
.hx-jackpot-sub { color: var(--hx-muted); font-size: .85rem; margin-top: .35rem; }
@keyframes hx-jackpot-spin { to { transform: rotate(360deg); } }

/* ── Neon category signs ── */
.hx-neon-sign {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    font-family: var(--hx-display);
    font-size: 1.15rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 1rem;
    padding: .35rem 0;
    text-shadow:
        0 0 10px var(--sign-color, var(--hx-bch)),
        0 0 30px color-mix(in srgb, var(--sign-color, var(--hx-bch)) 50%, transparent);
    color: var(--sign-color, var(--hx-bch-bright));
}
.hx-neon-sign::before,
.hx-neon-sign::after {
    content: '';
    height: 2px;
    flex: 1;
    max-width: 60px;
    background: linear-gradient(90deg, transparent, var(--sign-color, var(--hx-bch)));
    opacity: .6;
}
.hx-neon-sign::after { background: linear-gradient(-90deg, transparent, var(--sign-color, var(--hx-bch))); }

/* ── Premium game cards (lobby) ── */
.hx-game-card-v3 {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    background: var(--hx-panel);
    border: 1px solid var(--hx-line);
    transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s;
    display: flex;
    flex-direction: column;
    min-height: 280px;
}
.hx-game-card-v3:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow:
        0 20px 50px rgba(0,0,0,.45),
        0 0 30px color-mix(in srgb, var(--game-color) 25%, transparent);
    border-color: color-mix(in srgb, var(--game-color) 45%, transparent);
}
.hx-game-card-v3__art {
    position: relative;
    height: 130px;
    overflow: hidden;
    background: linear-gradient(160deg, color-mix(in srgb, var(--game-color) 35%, #0a0f1c), #060a14);
}
.hx-game-card-v3__art::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--art-pattern, radial-gradient(circle at 30% 40%, color-mix(in srgb, var(--game-color) 30%, transparent), transparent 55%));
}
.hx-game-card-v3__art-icon {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 3.5rem;
    color: var(--game-color);
    opacity: .85;
    filter: drop-shadow(0 0 20px var(--game-color));
    transition: transform .4s;
}
.hx-game-card-v3:hover .hx-game-card-v3__art-icon { transform: scale(1.12) rotate(-5deg); }
.hx-game-card-v3__badge {
    position: absolute;
    top: .65rem;
    right: .65rem;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.hx-game-card-v3__badge--hot {
    background: linear-gradient(135deg, var(--hx-vegas-red), var(--hx-neon-pink));
    color: #fff;
    animation: hx-badge-pulse 2s ease-in-out infinite;
}
.hx-game-card-v3__badge--new {
    background: linear-gradient(135deg, var(--hx-bch), var(--hx-neon-blue));
    color: #031a12;
}
@keyframes hx-badge-pulse {
    0%, 100% { box-shadow: 0 0 8px rgba(255,45,135,.5); }
    50% { box-shadow: 0 0 18px rgba(255,45,135,.8); }
}
.hx-game-card-v3__body {
    padding: 1.1rem 1.2rem 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.hx-game-card-v3__body h3 { margin: 0; font-size: 1.1rem; font-family: var(--hx-display); }
.hx-game-card-v3__body p { margin: 0; font-size: .82rem; color: var(--hx-muted); flex: 1; line-height: 1.45; }
.hx-game-card-v3__meta {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-top: .25rem;
}
.hx-game-card-v3__chip {
    font-size: .68rem;
    padding: .2rem .5rem;
    border-radius: 6px;
    background: rgba(255,255,255,.05);
    color: var(--hx-muted);
    border: 1px solid rgba(255,255,255,.08);
}
.hx-game-card-v3 .hx-btn { margin-top: .6rem; width: 100%; }

/* Category art patterns */
.hx-game-card-v3[data-cat="classics"] { --art-pattern: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(255,255,255,.03) 8px, rgba(255,255,255,.03) 16px); }
.hx-game-card-v3[data-cat="crash"] { --art-pattern: radial-gradient(ellipse at 50% 100%, rgba(255,107,53,.4), transparent 70%); }
.hx-game-card-v3[data-cat="racing"] { --art-pattern: repeating-linear-gradient(90deg, rgba(212,165,116,.15) 0 20px, transparent 20px 40px); }
.hx-game-card-v3[data-cat="sports"] { --art-pattern: radial-gradient(circle at 70% 30%, rgba(74,222,128,.25), transparent 50%); }
.hx-game-card-v3[data-cat="bingo"] { --art-pattern: linear-gradient(0deg, transparent 48%, rgba(251,113,133,.2) 48%, rgba(251,113,133,.2) 52%, transparent 52%), linear-gradient(90deg, transparent 48%, rgba(251,113,133,.2) 48%, rgba(251,113,133,.2) 52%, transparent 52%); background-size: 16px 16px; }

/* ── Game theater (play screen) ── */
.hx-game-theater {
    position: relative;
    border-radius: 20px;
    padding: 1.5rem;
    margin-bottom: 1.25rem;
    background:
        radial-gradient(ellipse 70% 80% at 50% 0%, color-mix(in srgb, var(--game-color, var(--hx-bch)) 15%, transparent), transparent 65%),
        linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.15));
    border: 1px solid color-mix(in srgb, var(--game-color, var(--hx-bch)) 25%, transparent);
    box-shadow: inset 0 0 60px rgba(0,0,0,.4);
    min-height: 200px;
    display: grid;
    place-items: center;
    overflow: hidden;
}
.hx-game-theater::before {
    content: '';
    position: absolute;
    top: -60%;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 100%;
    background: radial-gradient(ellipse, color-mix(in srgb, var(--game-color, var(--hx-bch)) 20%, transparent), transparent 70%);
    pointer-events: none;
}
.hx-stage-glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(circle at 50% 50%, rgba(255,215,0,.25), transparent 60%);
    transition: opacity .4s;
}
.hx-game-theater.hx-theater-win .hx-stage-glow { opacity: 1; animation: hx-win-flash .6s ease-out; }
@keyframes hx-win-flash {
    0% { opacity: 0; transform: scale(.8); }
    40% { opacity: 1; }
    100% { opacity: 0; transform: scale(1.2); }
}

/* Dice cube */
.hx-dice-cube {
    width: 90px;
    height: 90px;
    position: relative;
    transform-style: preserve-3d;
    transition: transform .8s cubic-bezier(.2,.8,.2,1);
}
.hx-dice-cube.hx-dice-rolling { animation: hx-dice-shake .5s ease-in-out; }
@keyframes hx-dice-shake {
    0%, 100% { transform: rotateX(0) rotateY(0); }
    25% { transform: rotateX(90deg) rotateY(45deg); }
    50% { transform: rotateX(180deg) rotateY(90deg); }
    75% { transform: rotateX(270deg) rotateY(135deg); }
}
.hx-dice-face {
    width: 90px;
    height: 90px;
    display: grid;
    place-items: center;
    font-family: var(--hx-display);
    font-size: 2rem;
    font-weight: 800;
    border-radius: 16px;
    background: linear-gradient(145deg, var(--hx-bch-bright), var(--hx-bch-dim));
    color: #031a12;
    box-shadow: 0 12px 40px var(--hx-glow), inset 0 2px 0 rgba(255,255,255,.3);
}

/* Limbo rocket */
.hx-limbo-rocket {
    font-size: 4rem;
    transition: transform .6s;
    filter: drop-shadow(0 0 20px rgba(255,107,53,.6));
}
.hx-limbo-rocket.hx-launch { animation: hx-rocket-launch 1s ease-out forwards; }
@keyframes hx-rocket-launch {
    0% { transform: translateY(0) scale(1); }
    60% { transform: translateY(-40px) scale(1.15); }
    100% { transform: translateY(-20px) scale(1); }
}

/* Wheel upgrade */
.hx-wheel-wrap { filter: drop-shadow(0 0 25px rgba(197,110,255,.4)); }
.hx-wheel.hx-wheel-spinning { transition: transform 3s cubic-bezier(.15,.85,.2,1) !important; }

/* Plinko board upgrade */
.hx-plinko-board {
    height: 240px !important;
    background: linear-gradient(180deg, #0a1020, #121830) !important;
    border: 1px solid rgba(93,155,255,.25);
}
.hx-plinko-pins {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.hx-plinko-pin {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(93,155,255,.6);
    box-shadow: 0 0 4px rgba(93,155,255,.8);
}

/* Hi-Lo cards */
.hx-hilo-card {
    transition: transform .35s, box-shadow .35s;
}
.hx-hilo-card.hx-card-flip { animation: hx-card-deal .4s ease-out; }
@keyframes hx-card-deal {
    0% { transform: translateY(-30px) rotateY(90deg); opacity: 0; }
    100% { transform: translateY(0) rotateY(0); opacity: 1; }
}

/* Horse race track visual */
.hx-race-lane {
    height: 8px;
    background: repeating-linear-gradient(90deg, #333 0 20px, #fff 20px 40px);
    border-radius: 4px;
    margin: .5rem 0 1rem;
    position: relative;
    overflow: hidden;
}
.hx-race-horse-icon {
    position: absolute;
    top: -14px;
    left: 0;
    font-size: 1.4rem;
    transition: left 1.8s cubic-bezier(.2,.7,.2,1);
}

/* Sports stadium */
.hx-sports-pitch {
    height: 60px;
    border-radius: 12px;
    background: linear-gradient(180deg, #1a5c32, #0d3d20);
    border: 2px solid rgba(255,255,255,.15);
    margin-bottom: .75rem;
    position: relative;
    overflow: hidden;
}
.hx-sports-pitch::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 49%, rgba(255,255,255,.2) 49%, rgba(255,255,255,.2) 51%, transparent 51%);
}

/* Bingo card glow */
.hx-bingo-card .hx-bingo-cell--line {
    animation: hx-bingo-win .8s ease-in-out infinite alternate;
}
@keyframes hx-bingo-win {
    from { box-shadow: 0 0 8px var(--hx-bch); }
    to { box-shadow: 0 0 20px var(--hx-vegas-gold); }
}

/* ── Win celebration overlay ── */
.hx-win-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hx-win-burst {
    font-family: var(--hx-display);
    font-size: clamp(2rem, 6vw, 4rem);
    font-weight: 800;
    color: var(--hx-vegas-gold);
    text-shadow: 0 0 30px rgba(255,215,0,.8), 0 0 60px rgba(255,215,0,.4);
    animation: hx-win-pop 1.2s ease-out forwards;
    opacity: 0;
}
@keyframes hx-win-pop {
    0% { opacity: 0; transform: scale(.3); }
    20% { opacity: 1; transform: scale(1.1); }
    80% { opacity: 1; transform: scale(1); }
    100% { opacity: 0; transform: scale(1.3) translateY(-30px); }
}
.hx-confetti-canvas {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9998;
}

/* ── Balance pulse on win ── */
.hx-balance-amount.hx-balance-pop {
    animation: hx-balance-pop .6s ease-out;
    color: var(--hx-vegas-gold) !important;
}
@keyframes hx-balance-pop {
    0%, 100% { transform: scale(1); }
    30% { transform: scale(1.15); }
}

/* ── Play button casino style ── */
.hx-btn--vegas {
    background: linear-gradient(135deg, var(--hx-vegas-gold) 0%, #c9971a 50%, var(--hx-vegas-gold) 100%);
    background-size: 200% 100%;
    color: #1a0a00;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    box-shadow: 0 8px 30px rgba(255,215,0,.35);
    animation: hx-btn-shine 3s ease-in-out infinite;
}
.hx-btn--vegas:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 40px rgba(255,215,0,.5);
    color: #1a0a00;
}
@keyframes hx-btn-shine {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

/* ── Live activity sidebar ── */
.hx-live-feed {
    max-height: 220px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.hx-live-feed-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .4rem .55rem;
    border-radius: 8px;
    background: rgba(255,255,255,.03);
    font-size: .75rem;
    animation: hx-feed-in .4s ease-out;
}
@keyframes hx-feed-in {
    from { opacity: 0; transform: translateX(10px); }
    to { opacity: 1; transform: translateX(0); }
}

/* ── Lobby hero Vegas ── */
.hx-lobby-vegas {
    position: relative;
    padding: 3rem 0 2rem;
    text-align: center;
    overflow: hidden;
}
.hx-lobby-vegas::before {
    content: 'BCH PLAY';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--hx-display);
    font-size: clamp(4rem, 15vw, 10rem);
    font-weight: 800;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255,215,0,.08);
    pointer-events: none;
    white-space: nowrap;
}
.hx-lobby-vegas h1 {
    position: relative;
    font-family: var(--hx-display);
    font-size: clamp(2rem, 5vw, 3.2rem);
    background: linear-gradient(180deg, #fff 0%, var(--hx-vegas-gold) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ── Controls panel polish ── */
.hx-controls-panel {
    background: rgba(0,0,0,.25);
    border-radius: 16px;
    padding: 1.15rem;
    border: 1px solid rgba(255,255,255,.06);
}
.hx-game-result {
    animation: hx-result-in .35s ease-out;
}
@keyframes hx-result-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Header neon brand ── */
.hx-play-brand-text {
    text-shadow: 0 0 20px rgba(10,193,142,.4);
}
.hx-play-header {
    box-shadow: 0 4px 30px rgba(0,0,0,.4);
}

/* ── Footer casino ── */
.hx-play-footer {
    border-top: 1px solid rgba(255,215,0,.12);
    background: rgba(0,0,0,.4);
}

/* Mobile */
/* ── Multiplayer crash ── */
.hx-crash-layout { display: grid; grid-template-columns: 1fr 280px; gap: 1.25rem; }
@media (max-width: 900px) { .hx-crash-layout { grid-template-columns: 1fr; } }
.hx-crash-stage { position: relative; border-radius: 16px; overflow: hidden; background: #060a14; margin-bottom: 1rem; }
.hx-crash-stage canvas { width: 100%; display: block; }
.hx-crash-mult {
    position: absolute; inset: 0; display: grid; place-items: center;
    font-family: var(--hx-display); font-size: clamp(2.5rem, 8vw, 4.5rem); font-weight: 800;
    color: var(--hx-bch-bright); text-shadow: 0 0 40px var(--hx-glow); pointer-events: none;
}
.hx-crash-mult.hx-crash-bust { color: var(--hx-neon-pink); }
.hx-crash-phase {
    margin-left: auto; padding: .35rem .75rem; border-radius: 999px; font-size: .72rem; font-weight: 800;
    background: rgba(255,255,255,.08);
}
.hx-crash-phase--flying { background: rgba(10,193,142,.2); color: var(--hx-bch-bright); }
.hx-crash-phase--crashed { background: rgba(255,45,135,.25); color: #ff8fa3; }
.hx-crash-history { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.hx-crash-pill {
    padding: .25rem .55rem; border-radius: 8px; font-size: .75rem; font-weight: 700;
    background: rgba(255,255,255,.06);
}
.hx-crash-pill--high { color: var(--hx-bch-bright); background: rgba(10,193,142,.15); }
.hx-crash-pill--low { color: var(--hx-neon-pink); }
.hx-crash-btns { display: flex; gap: .5rem; flex-wrap: wrap; }
.hx-crash-bet-row { display: grid; grid-template-columns: 1fr auto auto; gap: .5rem; font-size: .75rem; padding: .35rem 0; border-bottom: 1px solid rgba(255,255,255,.05); }

/* ── VIP & missions ── */
.hx-vip-panel { border-color: color-mix(in srgb, var(--tier-color, gold) 40%, transparent) !important; }
.hx-vip-bar { height: 6px; background: rgba(255,255,255,.08); border-radius: 999px; overflow: hidden; }
.hx-vip-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--tier-color, gold), var(--hx-bch)); border-radius: 999px; }
.hx-missions { display: flex; flex-direction: column; gap: .65rem; }
.hx-mission {
    display: flex; align-items: center; gap: .75rem; padding: .65rem; border-radius: 12px;
    background: rgba(0,0,0,.2); border: 1px solid rgba(255,255,255,.06);
}
.hx-mission--done { border-color: rgba(10,193,142,.3); }
.hx-mission i { font-size: 1.4rem; color: var(--hx-vegas-gold); }
.hx-mission-bar { height: 4px; background: rgba(255,255,255,.08); border-radius: 4px; margin-top: .35rem; overflow: hidden; }
.hx-mission-bar span { display: block; height: 100%; background: var(--hx-bch); }
.hx-mission-claimed { font-size: .75rem; color: var(--hx-bch); font-weight: 700; }

/* ── Canvas stages ── */
.hx-canvas-stage { width: 100%; max-width: 400px; border-radius: 12px; display: block; margin: 0 auto; }

/* ── Slots demo ── */
.hx-slot-machine-wrap { display: grid; place-items: center; min-height: 420px; }
.hx-slot-machine {
    text-align: center; padding: 2rem; border-radius: 24px;
    background: linear-gradient(160deg, #1a0a28, #0a1020);
    border: 2px solid rgba(255,215,0,.35);
    box-shadow: 0 0 60px rgba(255,215,0,.15);
}
.hx-slot-reels { display: flex; gap: .75rem; justify-content: center; margin-bottom: 1.5rem; }
.hx-slot-reel {
    width: 80px; height: 100px; display: grid; place-items: center;
    font-family: var(--hx-display); font-size: 2rem; font-weight: 800;
    background: #000; border: 3px solid var(--hx-vegas-gold); border-radius: 12px;
    color: var(--hx-vegas-gold);
}
.hx-slot-iframe-wrap { height: calc(100vh - 120px); }
.hx-slot-iframe { width: 100%; height: 100%; border: 0; }

@media (max-width: 768px) {
    .hx-marquee-stat:nth-child(n+3) { display: none; }
    .hx-game-card-v3 { min-height: 260px; }
}