/* VegasSlots — custom game UI (reel engine + game panels). Loaded on /play/* . */
.vs-game-wrap{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start}
.vs-machine{padding:1.5rem;background:var(--vs-bg-3)}
.vs-reels{display:flex;gap:.5rem;justify-content:center;padding:1rem;background:#000;border-radius:var(--vs-radius)}
.vs-reel{width:84px;height:252px;overflow:hidden;background:var(--vs-bg-2);border:2px solid var(--vs-border-dim);border-radius:2px;position:relative}
.vs-reel__strip{display:flex;flex-direction:column;will-change:transform}
.vs-sym{height:84px;display:flex;align-items:center;justify-content:center;font-family:var(--vs-font-display);
  font-weight:800;font-size:2rem;line-height:1}
.vs-sym svg{display:block}
.vs-reels--win{animation:vs-winflash .9s ease}
@keyframes vs-winflash{0%,100%{box-shadow:none}40%{box-shadow:0 0 30px var(--vs-lime),inset 0 0 30px rgba(212,255,0,.3)}}

.vs-machine__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem;flex-wrap:wrap}
.vs-spin{font-family:var(--vs-font-display);font-weight:800;font-style:italic;text-transform:uppercase;
  background:var(--vs-lime);color:#000;border:0;border-radius:var(--vs-radius);padding:1rem 2.5rem;font-size:1.1rem;
  box-shadow:0 6px 0 var(--vs-lime-shadow)}
.vs-spin:active{transform:translateY(4px);box-shadow:0 2px 0 var(--vs-lime-shadow)}
.vs-spin:disabled{opacity:.5;box-shadow:none}

/* idle empire panel */
.vs-panel{padding:1.5rem;background:var(--vs-black)}
.vs-panel h3{font-style:italic;margin-bottom:1rem}
.vs-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem}
.vs-stat{padding:.75rem;background:var(--vs-bg-3);border:1px solid var(--vs-border-dim)}
.vs-stat span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--vs-ink-dim)}
.vs-stat b{font-family:var(--vs-font-led);color:var(--vs-lime);font-size:1.4rem}
.vs-upgrades{display:flex;flex-direction:column;gap:.75rem}
.vs-upgrade{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;text-align:left;
  background:var(--vs-bg-3);border:2px solid var(--vs-border-dim);border-radius:var(--vs-radius);padding:.85rem 1rem;color:var(--vs-ink);cursor:pointer}
.vs-upgrade:hover:not(:disabled){border-color:var(--vs-lime)}
.vs-upgrade:disabled{opacity:.5;cursor:not-allowed}
.vs-upgrade b{display:block;color:#fff;font-family:var(--vs-font-display)}
.vs-upgrade small{color:var(--vs-ink-dim)}
.vs-upgrade .vs-led{color:var(--vs-lime)}

/* jackpot meter */
.vs-jp{padding:1.5rem;background:var(--vs-black);text-align:center}
.vs-jp__round{font-family:var(--vs-font-led);color:var(--vs-lime);font-size:.9rem}
.vs-jp__meter{height:1.5rem;background:var(--vs-bg-3);border:2px solid var(--vs-border);border-radius:2px;overflow:hidden;margin:1rem 0 .5rem}
.vs-jp__fill{height:100%;width:0;background:linear-gradient(90deg,var(--vs-danger),var(--vs-lime));box-shadow:0 0 12px var(--vs-lime);transition:width .6s ease}
.vs-jp__togo{font-size:.8rem;color:var(--vs-ink-dim)}
.vs-jp__togo b{color:#fff;font-family:var(--vs-font-led)}

@media (max-width:860px){
  .vs-game-wrap{grid-template-columns:1fr}
  .vs-reel{width:18vw;height:54vw;max-height:252px}
  .vs-sym{height:18vw;max-height:84px;font-size:1.4rem}
}

/* skill: held reels + nudge */
.vs-reel--held{outline:3px solid var(--vs-lime);outline-offset:2px}
.vs-reel--held::after{content:"HELD";position:absolute;top:2px;left:0;right:0;text-align:center;font-family:var(--vs-font-led);font-size:.55rem;color:var(--vs-lime);z-index:2}
.vs-nudge{display:block;width:84px;margin:.4rem auto 0;padding:.3rem 0;font-family:var(--vs-font-body);font-weight:700;font-size:.6rem;
  background:var(--vs-bg-3);color:var(--vs-ink-dim);border:2px solid var(--vs-border-dim);border-radius:2px;cursor:pointer}
.vs-nudge:hover{border-color:var(--vs-lime);color:var(--vs-lime)}
.vs-machine .vs-reels{align-items:flex-start}
.vs-machine__msg{margin-top:1rem;font-family:var(--vs-font-body);color:var(--vs-ink-dim);font-size:.85rem;min-height:1.2em}
.vs-btn-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-top:1rem}

/* heist meters + log + choice */
.vs-meter{margin:.6rem 0}
.vs-meter__label{display:flex;justify-content:space-between;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--vs-ink-dim);margin-bottom:.25rem}
.vs-meter__track{height:.9rem;background:var(--vs-bg-3);border:1px solid var(--vs-border-dim);border-radius:2px;overflow:hidden}
.vs-meter__fill{height:100%;width:0;transition:width .5s ease}
.vs-meter--crack .vs-meter__fill{background:linear-gradient(90deg,var(--vs-lime-shadow),var(--vs-lime))}
.vs-meter--alarm .vs-meter__fill{background:linear-gradient(90deg,#7a1020,var(--vs-danger))}
.vs-heist__log{margin-top:1rem;font-family:var(--vs-font-body);font-size:.78rem;color:var(--vs-ink-dim);max-height:9rem;overflow:auto}
.vs-heist__log p{margin:.2rem 0}
.vs-heist__log .vs-good{color:var(--vs-lime)} .vs-heist__log .vs-warn{color:#f6c945} .vs-heist__log .vs-bad{color:var(--vs-danger)}
.vs-choice{margin-top:1rem;padding:1rem;border:2px dashed var(--vs-lime);border-radius:var(--vs-radius);text-align:center}
.vs-choice .vs-btn-row{justify-content:center}

/* XP Vault */
.vs-vault__head{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}
.vs-vault__head .vs-stat{text-align:center}
.vs-ladder{display:flex;flex-direction:column;gap:4px;margin:1rem 0}
.vs-rung{display:flex;align-items:center;justify-content:center;padding:.5rem;background:var(--vs-bg-3);
  border:2px solid var(--vs-border-dim);border-radius:2px;font-family:var(--vs-font-led);font-size:.9rem;color:var(--vs-ink-faint);transition:all .25s}
.vs-rung--on{background:linear-gradient(90deg,var(--vs-lime-shadow),var(--vs-bg-2));border-color:var(--vs-lime);color:var(--vs-lime);box-shadow:0 0 10px rgba(212,255,0,.2)}
.vs-rung--next{border-color:var(--vs-lime);border-style:dashed;color:#fff;animation:vs-pulse 1.4s infinite}
.vs-stakes{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.vs-stakes button:disabled{opacity:.4}

/* homepage "gamble your XP" banner */
.vs-gamble{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  padding:2rem;background:linear-gradient(120deg,var(--vs-bg-2),var(--vs-bg-3));border:4px solid var(--vs-lime);
  border-bottom-width:8px;border-radius:var(--vs-radius);box-shadow:0 0 30px rgba(212,255,0,.15)}
.vs-gamble__txt h2{font-style:italic;text-transform:uppercase}
.vs-gamble__txt p{color:var(--vs-ink);opacity:.85;margin:.5rem 0 0;max-width:42rem}
.vs-hud__gamble{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;margin-left:.5rem;
  background:var(--vs-lime);color:#000;font-family:var(--vs-font-display);font-weight:800;font-style:italic;
  font-size:.7rem;text-transform:uppercase;border-radius:2px;white-space:nowrap}
.vs-hud__gamble:hover{box-shadow:0 0 12px var(--vs-lime)}
