:root {
  --bg: #1a1206;
  --panel: rgba(60, 42, 16, 0.55);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  background:
    radial-gradient(circle at 20% 10%, rgba(217,164,65,0.18), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(180,120,30,0.15), transparent 40%),
    linear-gradient(160deg, #1a1206 0%, #241703 50%, #120c04 100%);
  background-attachment: fixed;
  min-height: 100vh;
}
.font-display { font-family: 'Bricolage Grotesque', sans-serif; }
.font-mono { font-family: 'JetBrains Mono', monospace; }

.vault-panel {
  background: var(--panel);
  border: 1px solid rgba(217,164,65,0.25);
  backdrop-filter: blur(6px);
  box-shadow: inset 0 1px 0 rgba(255,220,150,0.08), 0 8px 30px rgba(0,0,0,0.4);
}

.coin-btn {
  cursor: pointer;
  filter: drop-shadow(0 0 22px rgba(255,200,80,0.55));
  animation: bob 3s ease-in-out infinite;
  background: none; border: none;
}
@keyframes bob {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50%     { transform: translateY(-10px) rotate(3deg); }
}

.floater {
  position: fixed;
  transform: translate(-50%, -50%);
  animation: rise 0.9s ease-out forwards;
  z-index: 50;
  font-size: 1.4rem;
  text-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
@keyframes rise {
  0%   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -140%) scale(1.4); }
}

.tabular-nums { font-variant-numeric: tabular-nums; }
button:focus-visible { outline: 2px solid #f5c451; outline-offset: 2px; }

/* Jackpot pulse on the balance */
#coin-jackpot.pulse {
  animation: jackpot 0.6s ease-out;
}
@keyframes jackpot {
  0%   { transform: scale(1); filter: none; }
  30%  { transform: scale(1.14); filter: drop-shadow(0 0 26px rgba(255,120,220,0.8)); }
  100% { transform: scale(1); filter: none; }
}

/* Crit floater goes bigger and spins */
.floater-crit {
  font-size: 2rem;
  animation: riseCrit 1.2s ease-out forwards !important;
  text-shadow: 0 0 14px rgba(255,120,220,0.9);
}
@keyframes riseCrit {
  0%   { opacity: 1; transform: translate(-50%, -50%) scale(0.6) rotate(-8deg); }
  30%  { opacity: 1; transform: translate(-50%, -80%) scale(1.6) rotate(6deg); }
  100% { opacity: 0; transform: translate(-50%, -160%) scale(1.9) rotate(-4deg); }
}

/* Prestige button shimmer */
.prestige-glow {
  background-size: 200% 100%;
  background-image: linear-gradient(90deg,
    rgba(217,70,239,0.15), rgba(217,70,239,0.35), rgba(217,70,239,0.15));
  animation: shimmer 2.4s linear infinite;
  box-shadow: 0 0 18px rgba(217,70,239,0.35);
}
@keyframes shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Earned milestone shine */
.milestone-got {
  animation: milestone 2.5s ease-in-out infinite;
  filter: drop-shadow(0 0 6px rgba(255,200,80,0.7));
}
@keyframes milestone {
  0%,100% { transform: translateY(0) scale(1); }
  50%     { transform: translateY(-3px) scale(1.12); }
}
</parameter>