/* LIMBO rebuild: all rules are prefixed .lb- / .lq- so the legacy .limbo-* rules in games.css never apply */
#v-limbo .lb-ctrl .betbox{margin:0}
.lb-target-field{margin-bottom:7px}.lb-target-presets{display:flex;gap:4px;padding:4px 0}
.lb-target-presets button{height:36px;min-width:40px;border:0;border-radius:6px;background:var(--control);color:var(--text);font-size:14px;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums;padding:0 9px}
.lb-target-presets button:hover:not(:disabled){background:var(--control-hi)}
.lb-target-presets button.on{box-shadow:inset 0 0 0 1.5px var(--gold);color:var(--gold)}
.lb-target-presets button:disabled{opacity:.5;cursor:not-allowed}
#v-limbo .lb-go{margin-top:16px;font-size:16px}
#v-limbo .lb-go.rolling{opacity:.85;cursor:progress}
.lq-sum{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.lq-sum > div{background:var(--inset);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;min-width:0}
.lq-sum small{display:block;color:var(--muted);font-size:12.5px;font-weight:600;white-space:nowrap}
.lq-sum b{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lq-sum b.w{color:var(--win)}

/* ---------- stage ---------- */
.lb-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px, 2vh, 18px);padding:56px clamp(20px, 4vw, 56px) 26px;
  background:radial-gradient(ellipse 62% 54% at 50% 44%, #1d3a6c 0%, #0f2147 55%, #0a1631 100%)}
.lb-stage.won{box-shadow:inset 0 0 0 2px #2fe08f55, inset 0 0 72px -10px #2fe08f3a}
.lb-stage.lost{box-shadow:inset 0 0 0 2px #ff547044, inset 0 0 72px -16px #ff547030}

.lb-recent{position:absolute;top:14px;left:16px;right:16px;display:flex;align-items:center;gap:10px;height:30px;z-index:4;pointer-events:none}
.lb-recent-l{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);flex:none}
.lb-chips{display:flex;gap:6px;overflow:hidden;flex:1;min-width:0;height:28px}
.lb-chips .chip{flex:none;font-size:13px;padding:4px 10px;line-height:18px;background:#0a1730;border:1px solid #ffffff12}
.lb-chips .chip:first-child{border-color:currentColor}
.lb-chips:empty::after{content:"No bets yet";font-size:13px;color:var(--dim);line-height:28px}

/* the target: gold, labelled, outside the ring, never styled like the result */
.lb-target{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:99px;background:#2a2108;border:1.5px solid #ffc94a99;color:var(--gold);flex:none}
.lb-target .ic{width:18px;height:18px}
.lb-target span{font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.lb-target b{font-size:20px;font-weight:800}

.lb-ring{--ring:clamp(150px, calc(var(--stage-h) - 310px), 300px);--len:5;position:relative;width:var(--ring);height:var(--ring);flex:none}
.lb-ring svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
/* the donut (dough + blue frosting + sprinkles): always appetizing, never a bare gauge */
.lb-donut{filter:drop-shadow(0 8px 12px #00000066)}
.lb-sheen{opacity:.85}
.lb-spr rect{opacity:.96}
/* progress track + glaze arc that fills toward the gold target notch */
.lb-track{stroke:#ffffff14}
.lb-glaze{stroke:#dcf1ff;filter:drop-shadow(0 0 3px #bfe8ffaa);transition:stroke-dashoffset .25s ease, stroke .25s, filter .25s}
.lb-stage.revealing .lb-glaze{transition:stroke .25s, filter .25s}
.lb-stage.won .lb-glaze{stroke:#49f0a6;filter:drop-shadow(0 0 6px #2fe08fcc)}
.lb-stage.lost .lb-glaze{stroke:#ff8ba0;filter:drop-shadow(0 0 5px #ff547099)}
.lb-notch{fill:var(--gold);stroke:#1c1403;stroke-width:1.6;filter:drop-shadow(0 0 3px #ffc94a66)}
.lb-pop{stroke:#8effc2;opacity:0;transform-origin:100px 100px}
.lb-conf circle{opacity:0}
/* the hole */
.lb-core{position:absolute;inset:20%;border-radius:50%;background:radial-gradient(circle at 50% 38%, #163058, #0a1631 72%);
  box-shadow:inset 0 5px 16px #000a, inset 0 0 0 1px #ffffff12, inset 0 -2px 6px #ffffff0a;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.lb-core small{font-size:clamp(9px, calc(var(--ring) * .046), 12px);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;margin-bottom:2px;transition:color .2s}
.lb-num{font-size:min(calc(var(--ring) * .2), calc(var(--ring) * .94 / var(--len)));font-weight:800;letter-spacing:-.02em;line-height:1.1;color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums}
.lb-num.idle{color:#ffffff4d}
.lb-num.rolling{color:var(--cyan)}
.lb-num.w{color:var(--win)}
.lb-num.l{color:var(--lose)}
.lb-num.land{animation:lb-land .24s cubic-bezier(.2,.9,.3,1.3)}
.lb-stage.won .lb-core small{color:#86efbf}
.lb-stage.lost .lb-core small{color:#ff9fb0}
@keyframes lb-land{from{transform:scale(.9)}to{transform:scale(1)}}
/* win: donut pop + a little sprinkle burst; loss: a muted settle */
.lb-stage.won .lb-ring{animation:lb-pop .52s cubic-bezier(.2,.9,.3,1.35)}
.lb-stage.won .lb-pop{animation:lb-burst .6s ease-out}
.lb-stage.won .lb-conf circle{animation:lb-conf .62s ease-out}
.lb-stage.lost .lb-donut{animation:lb-settle .5s ease}
@keyframes lb-pop{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes lb-burst{0%{opacity:.9;transform:scale(.72)}100%{opacity:0;transform:scale(1.14)}}
@keyframes lb-conf{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--dx),var(--dy))}}
@keyframes lb-settle{0%{filter:drop-shadow(0 8px 12px #00000066)}50%{filter:drop-shadow(0 8px 12px #00000066) saturate(.72) brightness(.9)}100%{filter:drop-shadow(0 8px 12px #00000066)}}

.lb-out{height:46px;position:relative;width:100%;flex:none}
.lb-out .outcome{bottom:auto;top:0}

.lq-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:min(100%, 280px);flex:none}
.lq-f{display:block;min-width:0}
.lq-f small{display:block;font-size:13px;font-weight:700;color:var(--muted);margin:0 0 6px 2px}
.lq-in{display:flex;align-items:center;min-height:48px;background:var(--inset);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 6px 0 12px;transition:border-color .15s, box-shadow .15s}
.lq-in:focus-within{border-color:var(--accent);box-shadow:var(--ring)}
.lq-in.bad{border-color:var(--lose)}
.lq-in input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--text);font:inherit;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;padding:12px 0}
.lq-in input:disabled{opacity:.6;cursor:not-allowed}
.lq-in em{font-style:normal;color:var(--muted);font-weight:700;padding:0 6px}

@media (max-width:900px){
  .lb-stage{padding:48px 14px 14px;gap:8px}
  .lb-ring{--ring:clamp(150px, 44vw, 220px)}
  .lb-target{height:34px;padding:0 12px 0 10px}
  .lb-target b{font-size:17px}
  .lb-out{height:42px}
  .lb-out .outcome{font-size:15px;padding:8px 14px 8px 10px;gap:8px}
  .lb-out .outcome .det{font-size:12.5px}
  .lq-fields{gap:8px}
  .lq-f small{font-size:12px;margin-bottom:4px}
  .lq-in{min-height:42px;padding:0 4px 0 10px}
  .lq-in input{font-size:15px;padding:9px 0}
}
@media (max-width:420px){ .lb-out .outcome .det{display:none} }
@media (prefers-reduced-motion: reduce){
  .lb-glaze{transition:none}
  .lb-num.land,.lb-stage.won .lb-ring,.lb-stage.won .lb-pop,.lb-stage.won .lb-conf circle,.lb-stage.lost .lb-donut{animation:none}
}
