:root{--feel-ease:cubic-bezier(.16,1,.3,1)}
html,body{background:transparent;color-scheme:dark}
button{transition:transform .11s,filter .15s,border-color .18s,background .18s}button:not(:disabled):active{transform:translateY(1px) scale(.97)}button:focus-visible,input:focus-visible{outline:2px solid #d3b5ff;outline-offset:3px}.primary:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 24px #ac65ef25}
.limbo-stage{position:relative;isolation:isolate;padding-bottom:125px!important;background:radial-gradient(ellipse at 50% 30%,#a065d917,transparent 65%)}.limbo-eyebrow{position:absolute;top:25%;font-size:10px;font-weight:750;letter-spacing:.18em;color:#9c8cae}#limboValue{font-variant-numeric:tabular-nums;text-shadow:0 0 35px #b888f529;letter-spacing:-.055em}#limboValue.is-rolling{filter:drop-shadow(0 0 12px #be98ee44)}.limbo-meter{position:absolute;bottom:34px;left:11%;right:11%}.limbo-meter-labels,.limbo-meter-scale{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#b49fc7;gap:10px}.limbo-meter-labels strong{font-variant-numeric:tabular-nums;color:#e8d6ff}.limbo-meter-scale{font-size:9px;letter-spacing:.09em;color:#776588;margin-top:10px}.limbo-meter-track{position:relative;margin-top:12px;height:9px;background:#24162e;border:1px solid #41304f;border-radius:20px}.limbo-meter-track>span{display:block;height:100%;width:var(--progress,0%);border-radius:inherit;background:linear-gradient(90deg,#774ac6,#d1b2ff);box-shadow:0 0 16px #ae76f54d}.limbo-meter-track>i{position:absolute;right:0;top:-6px;height:19px;width:2px;background:#dec2ff;border-radius:3px}.limbo-meter-track.reached>span{background:linear-gradient(90deg,#288869,#a0f7c4);box-shadow:0 0 16px #9fffbd33}.limbo-meter-track.reached>i{background:#b5ffcd}
.plinko-stage{background:radial-gradient(ellipse at 50% 45%,#9b6dc414,transparent 64%)}#pegs circle{fill:#9686ac;stroke:#e4dbed26;stroke-width:1}#slots>div{transition:filter .15s,transform .15s;box-shadow:inset 0 1px 0 #ffffff30,0 3px 0 #0006}#slots>div:hover{filter:brightness(1.13)}
.tower-row.current{filter:drop-shadow(0 0 8px #b87afb16)}.tower-row.current button:not(:disabled):hover{transform:translateY(-2px);border-color:#b17adf;box-shadow:0 4px 16px #b66bea20}.tower-row .chosen.safe{animation:feel-item .36s var(--feel-ease)}.tower-row .chosen.trap{animation:feel-miss .25s ease-out}.card{animation:feel-card .32s var(--feel-ease) both;transform-origin:50% 100%;box-shadow:0 8px 18px #0005}.card:nth-child(2){animation-delay:.055s}.card:nth-child(3){animation-delay:.11s}.winning-zone{transition:box-shadow .3s,border-color .3s}.battle-players .winner{animation:feel-item .4s var(--feel-ease)}.room-row{animation:feel-enter .22s ease-out}.history-strip>*:first-child{animation:feel-item .25s var(--feel-ease)}
@keyframes feel-card{from{opacity:0;transform:translate(14px,-20px) rotate(7deg) scale(.95)}to{opacity:1;transform:none}}@keyframes feel-item{0%{opacity:.6;transform:scale(.87)}65%{transform:scale(1.035)}100%{opacity:1;transform:scale(1)}}@keyframes feel-miss{from{filter:brightness(1.6)}to{filter:brightness(1)}}@keyframes feel-enter{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.limbo-eyebrow{position:static;margin-bottom:10px;flex-shrink:0}
@media(max-width:600px){.limbo-meter{left:8%;right:8%;bottom:24px}.limbo-stage{min-height:330px}.limbo-eyebrow{margin-bottom:8px}}
/* A dedicated footer follows the playfield. It never covers a card, peg or tile. */
#arena.game-win-surface{display:flex;flex-direction:column;align-items:stretch}
#arena>.game-win-slot{margin-top:auto}
#arena>.tower-stage{width:100%;align-self:center;box-sizing:border-box}
#arena:has(.game-win-result) #resultText{visibility:hidden}
.game-limbo #arena:has(.game-win-result[data-tone=standard]) #limboValue{color:#76e8af}
.game-limbo #arena:has(.game-win-result[data-tone=epic]) #limboValue{color:#d5a3ff}
.game-limbo #arena:has(.game-win-result[data-tone=legendary]) #limboValue{color:#ffdb82}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.limbo-meter-track>span{box-shadow:none}}

/* The win wrapper is a column flex box; auto margins made Plinko shrink to its content.
   Keep the stage exactly as wide as the board, since app.js sizes #slots as a % of it. */
#arena.game-win-surface>.plinko-stage{align-self:center;width:min(100%,700px);max-width:none;margin:0 auto;box-sizing:border-box}
.plinko-stage #board{max-width:none;max-height:none}
.plinko-stage #slots{max-width:none}
#arena.game-win-surface:has(>.plinko-stage){justify-content:center}

/* Baccarat: empty hands show where the two opening cards will land instead of a blank box. */
.baccarat-table .cards:empty::before,.baccarat-table .cards:empty::after{content:"";flex:none;width:57px;height:82px;border:1.5px dashed #ffffff24;border-radius:6px;background:linear-gradient(160deg,#ffffff08,#ffffff02)}
.baccarat-table .cards:empty{gap:9px}
/* Previous results at the top of Limbo, Towers and Coinflip: same chips as Crash and Royal Wheel */
.history-strip.top-strip{display:flex;gap:6px;margin:0 0 4px;padding:14px 18px 0;min-height:0;border:0;background:none;overflow:hidden;mask-image:linear-gradient(90deg,#000 80%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent)}
.history-strip.top-strip span{--chip:#f18a9c;flex:none;display:grid;place-items:center;min-width:52px;height:28px;padding:0 9px;border:1px solid color-mix(in srgb,var(--chip) 30%,#2c2233);border-radius:8px;background:color-mix(in srgb,var(--chip) 12%,#0f0b14);color:var(--chip);font:800 11px var(--game-mono,ui-monospace),monospace;font-variant-numeric:tabular-nums}
.history-strip.top-strip span.win{--chip:#57efa1}
.history-strip.top-strip span.push{--chip:#cec5d6}
.history-strip.top-strip span.is-latest{border-color:var(--chip);box-shadow:0 0 14px color-mix(in srgb,var(--chip) 30%,transparent);animation:top-chip-in .32s cubic-bezier(.2,1.4,.4,1) both}
.history-strip.top-strip em{color:#7c7085;font-style:normal;font-weight:600;font-size:11px;line-height:28px}
@keyframes top-chip-in{from{opacity:0;transform:translateX(-14px) scale(.8)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.history-strip.top-strip span.is-latest{animation:none}}
