.collection-table{min-width:0}.board{min-height:310px;display:flex;align-items:center;justify-content:center;position:relative;padding:24px 0;flex-direction:column}.round-result{text-align:center;padding:12px}.round-result output{font-size:32px;font-weight:750}.round-result p{color:#a3aec2;font-size:13px;min-height:20px}.controls select,.controls input{width:100%;background:#101827;color:white;border:1px solid #344059;border-radius:8px;padding:12px;box-sizing:border-box}.controls select{margin-bottom:12px}#actions{display:grid;gap:8px;margin-top:12px}#actions button{padding:13px;background:#283a54;border:1px solid #52668b;border-radius:8px;color:white}#actions button[data-kind=cashout]{background:#60edb4;color:#10231d;font-weight:bold}.grid{display:grid;gap:8px;width:min(100%,460px)}.mines-grid{grid-template-columns:repeat(5,1fr)}.keno-grid{grid-template-columns:repeat(8,1fr)}.tile{border:1px solid #34445e;border-radius:10px;background:linear-gradient(135deg,#293b55,#1b293c);box-shadow:0 4px 0 #0a1220;color:#bdcbe1;aspect-ratio:1;font-size:20px;cursor:pointer;transition:background .15s,transform .15s}@media(hover:hover) and (pointer:fine){.tile:hover:enabled{border-color:#a49aff}}.tile.picked{background:#6251b6;color:white;border-color:#bdb1ff}.tile.gem,.tile.hit{background:#174f42;color:#6cf7be;border-color:#6cf7be}.tile.mine{background:#602738;color:#ff9bae}.tile.drawn{background:#3c4b61;color:#d9e3f2}.tile.revealing{animation:tile-flip .35s ease-out}.tile:disabled{opacity:1;cursor:default}.paytable{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:12px 0;font-size:11px;color:#b6c3d7}.paytable span{padding:8px;background:#1a293d;border-radius:6px}.paytable span.hit{background:#60edb4;color:#0d211b}.plinko{width:100%;max-height:400px;overflow:visible}.plinko .peg{fill:#8697ae}.plinko .ball{fill:#b7a0ff;filter:drop-shadow(0 0 6px #9d79ff)}.plinko text{font-size:10px;fill:#dce6f5;text-anchor:middle}.plinko .bin{fill:#384564;stroke:#152235}.plinko .bin.hit{fill:#55cb9e}.cards{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:15px}.card{height:124px;width:86px;background:#f5f3ef;color:#192637;border-radius:10px;box-shadow:0 5px 10px #070d1744;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:28px;font-weight:bold;border:2px solid #c8c7c2}.card.red{color:#c63856}.card.back{background:repeating-linear-gradient(45deg,#514486,#514486 5px,#66589c 5px,#66589c 10px);color:#cec5f5;border-color:#9581c9}.card.dealing{animation:card-deal .38s ease-out}.hand{border:1px solid transparent;padding:8px;border-radius:12px;text-align:center;color:#9db0ca;font-size:12px}.hand.active{border-color:#b09bff;background:#28234577}.hand-label{margin:5px}.hands{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.hilo-trail{display:flex;max-width:100%;overflow-x:auto;gap:6px;font-size:12px;color:#b4c1d5}.hilo-trail span{padding:8px;background:#233047;border-radius:6px}.limbo-number{font-size:clamp(56px,10vw,100px);font-weight:800;color:#b9a3ff;letter-spacing:-4px;font-variant-numeric:tabular-nums}.limbo-ring{width:230px;height:230px;border:3px solid #4b3c7b;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 70px #7354e71a}.limbo-number.win{color:#60edb4}.limbo-number.loss{color:#f47b95}.wheel-wrap{position:relative;width:min(320px,80vw);aspect-ratio:1}.wheel{position:absolute;inset:0;border:8px solid #b6a577;border-radius:50%;background:#203444;box-shadow:0 0 0 5px #2d3443,0 14px 30px #0005}.wheel-number{position:absolute;left:50%;top:50%;width:22px;text-align:center;color:white;font-size:10px;font-weight:bold;transform-origin:50% 50%}.wheel-hub{position:absolute;inset:29%;background:radial-gradient(#685b43,#171d29);border-radius:50%;border:8px solid #a38a59;display:flex;align-items:center;justify-content:center;color:#c8b484;font-size:22px;font-weight:bold}.wheel-pointer{position:absolute;top:-8px;left:calc(50% - 7px);z-index:2;width:14px;height:14px;background:white;border-radius:50%;box-shadow:0 0 14px white}.roulette-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;width:100%;margin-top:16px}.roulette-grid button{font-size:11px;background:#202c40;color:white;border:1px solid #405270;border-radius:4px;padding:7px 1px}.roulette-grid button.red{background:#87324b}.roulette-grid button.green{background:#246f59}.roulette-grid button.picked{outline:2px solid #e4cf88}.collection-history{display:flex;flex-direction:column;gap:6px}.history-row{display:flex;justify-content:space-between;gap:10px;padding:12px;background:#151f31;border-radius:8px;color:#aabbd1;font-size:12px}.history-row button{background:none;border:0;color:#beafff}.board-caption{color:#8fa1ba;text-align:center;font-size:13px}.chip-list{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.chip-list button{font-size:11px;padding:7px;background:#2d3951;color:#d4c6f2;border:0;border-radius:6px}.crash-svg{width:100%;height:280px}.crash-multiplier{font-size:60px;font-weight:800;color:#c2adff}.crash-meta{font-size:12px;color:#a2b5d0;word-break:break-all}.table-top{flex-wrap:wrap;gap:12px}
@keyframes tile-flip{0%{transform:rotateY(90deg) scale(.8)}100%{transform:rotateY(0) scale(1)}}@keyframes card-deal{0%{transform:translateY(-35px) rotate(-12deg);opacity:0}100%{transform:none;opacity:1}}
@media(max-width:650px){.board{min-height:260px}.card{width:64px;height:94px;font-size:24px}.cards{gap:6px;padding:9px}.keno-grid{gap:5px}.tile{font-size:16px}.roulette-grid{grid-template-columns:repeat(6,1fr)}.controls{order:2}.collection-table{order:1}}
@media(prefers-reduced-motion:reduce){.tile,.card{animation:none!important;transition:none!important}}
/* Board dimensions are independent of result copy and control-panel height. */
.collection-table{align-self:start;width:100%;display:grid;grid-template-rows:42px 440px 132px minmax(60px,auto)}
.board{height:440px;min-height:440px;max-height:440px;overflow:auto;flex-shrink:0;justify-content:center;width:100%;padding:18px 0}
.grid{flex:none;align-content:start;grid-auto-rows:1fr}.tile{min-width:0;min-height:0;flex:none;padding:0}
.card{flex:0 0 86px;width:86px;min-width:86px;max-width:86px;height:124px;min-height:124px;max-height:124px;padding:0;line-height:1}
.cards{min-height:154px;align-items:center;flex:none}.hand-label{height:20px;line-height:20px;white-space:nowrap}.hilo-trail{height:36px;flex:none}.round-result{height:132px;overflow:hidden;padding:8px 0}
.round-result #result{font-size:30px;letter-spacing:-.5px;line-height:38px;height:76px;display:flex;align-items:center;justify-content:center;margin:0;overflow-wrap:anywhere}.round-result #detail{height:36px;line-height:18px;margin:4px 0 0}
.auto-panel{display:grid;gap:10px;border-top:1px solid #393546;padding-top:18px;margin-top:8px}.auto-panel .two-fields{margin:0}
body[data-game=blackjack] .board{height:460px;min-height:460px;max-height:460px}body[data-game=blackjack] .collection-table{grid-template-rows:42px 460px 132px minmax(60px,auto)}
.wheel-wrap{flex:none;max-width:300px}.wheel-number{font-size:9px}.wheel-number{--wheel-radius:122px}
@media(max-width:650px){.collection-table{grid-template-rows:48px 370px 132px minmax(60px,auto)}.board{height:370px;min-height:370px;max-height:370px}.card{flex-basis:64px;width:64px;min-width:64px;max-width:64px;height:94px;min-height:94px;max-height:94px}.cards{min-height:118px}body[data-game=blackjack] .board{height:450px;min-height:450px;max-height:450px}body[data-game=blackjack] .collection-table{grid-template-rows:48px 450px 132px minmax(60px,auto)}}
.mines-grid{width:min(100%,400px)}
body[data-game=roulette] .board{height:510px;min-height:510px;max-height:510px}body[data-game=roulette] .collection-table{grid-template-rows:42px 510px 132px minmax(60px,auto)}
.wheel-wrap{width:min(280px,100%)}.wheel-number{inset:5px;width:auto;text-align:center;font-size:9px}
@media(max-width:650px){body[data-game=roulette] .board{height:600px;min-height:600px;max-height:600px}body[data-game=roulette] .collection-table{grid-template-rows:48px 600px 132px minmax(60px,auto)}}
/* Reveal motion changes position/opacity, never card or tile scale. */
@keyframes tile-flip{0%{opacity:.45;transform:translateY(-3px)}100%{opacity:1;transform:none}}
@keyframes card-deal{0%{transform:translateY(-35px);opacity:0}100%{transform:none;opacity:1}}
.game{background:#12131e}

.volatility-field label{display:flex;justify-content:space-between;gap:4px;white-space:nowrap}.volatility-value{color:#c4b5fd;font-variant-numeric:tabular-nums}.controls .volatility-field input[type=range]{appearance:auto;accent-color:#ac91ec;padding:0 2px;height:40px;background:transparent;border:0;cursor:pointer;min-width:0}.controls .volatility-field input:disabled{cursor:default;opacity:.5}.controls .volatility-field input:focus-visible{outline:2px solid #c4b5fd;outline-offset:0}

/* Fill the existing board, preserving its panel dimensions and all game coordinates. */
body[data-game=plinko] .board{padding:0;overflow:hidden}.plinko{height:100%;max-height:100%;width:100%;flex:none}
.keno-grid{width:min(100%,640px)}
.limbo-ring{width:min(340px,85%);height:auto;aspect-ratio:1;flex:none}
.wheel-wrap{width:min(320px,100%);max-width:320px}
@media(min-width:951px), (min-width:701px) and (min-height:561px){body[data-game=hilo] .card{width:144px;min-width:144px;max-width:144px;height:208px;min-height:208px;max-height:208px;flex-basis:144px;font-size:42px}}

/* JavaScript owns reveal motion; no CSS transform lag after its final frame. */
.tile{transition:background .15s}
/* Hi-Lo choices keep the same nodes, columns and rows for every rank/result. */
body[data-game=hilo] #actions{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:54px 54px;grid-auto-flow:row;gap:6px;height:114px}
body[data-game=hilo] #actions button{min-width:0;height:54px;padding:6px 3px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;overflow:hidden}
body[data-game=hilo] #actions [data-kind=higher]{grid-column:1/3;grid-row:1}
body[data-game=hilo] #actions [data-kind=lower]{grid-column:3/5;grid-row:1}
body[data-game=hilo] #actions [data-kind=same]{grid-column:1;grid-row:2}
body[data-game=hilo] #actions [data-kind=skip]{grid-column:2;grid-row:2}
body[data-game=hilo] #actions [data-kind=cashout]{grid-column:3/5;grid-row:2}
body[data-game=hilo] #actions .action-label{font-size:13px;font-weight:700;line-height:17px}
body[data-game=hilo] #actions .action-detail{font-size:10px;line-height:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
body[data-game=hilo] #actions button:disabled{opacity:.4;cursor:default}

/* Touch uses one server-result reveal, with no synthetic hover lift or tap flash. */
.mines-grid .tile{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.auto-selection{min-width:0;border:1px solid #49506a;border-radius:8px;margin:0;padding:10px}
.auto-selection legend{font-size:12px;font-weight:700;color:#e2d6ff;padding:0 5px}
.auto-selection .hint{line-height:1.5;margin:6px 0 10px}
.auto-picks{display:grid;gap:5px;grid-template-columns:repeat(5,minmax(0,1fr))}
.auto-picks.keno{grid-template-columns:repeat(5,minmax(0,1fr))}
.auto-picks .auto-pick{position:relative;min-width:0;height:38px;padding:3px;background:#24344b;border:1px solid #526481;border-radius:6px;color:#d9e7fc;font-size:12px;font-weight:700;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.auto-picks .auto-pick.picked{background:#6950aa;border-color:#d1baff;color:white}
.auto-picks .auto-pick:disabled{cursor:default}
.auto-picks .pick-order{position:absolute;right:2px;top:1px;background:#ebddff;color:#382458;font-size:8px;line-height:11px;min-width:11px;border-radius:3px}
#auto-picks-clear{width:100%;padding:7px;font-size:11px}
