:root {
  --bg1: #1a0b2e;
  --bg2: #2d1b4e;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: 'Space Grotesk', sans-serif;
  background:
    radial-gradient(circle at 15% 15%, rgba(216,27,96,.25), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(2,136,209,.25), transparent 45%),
    linear-gradient(160deg, var(--bg1), var(--bg2) 60%, #0d0518);
  background-attachment: fixed;
  min-height: 100vh;
}
.title-font { font-family: 'Bungee', cursive; letter-spacing: 1px; }
.coin-font { font-family: 'Space Grotesk', sans-serif; }

/* card flip reveal */
@keyframes flipIn {
  0%   { transform: rotateY(90deg) scale(.8); opacity: 0; }
  60%  { transform: rotateY(-8deg) scale(1.05); opacity: 1; }
  100% { transform: rotateY(0) scale(1); opacity: 1; }
}
.flip-in { animation: flipIn .45s cubic-bezier(.2,.8,.3,1.2) both; transform-style: preserve-3d; }

.card-tilt { transition: transform .2s ease; will-change: transform; }
.card-tilt:hover { transform: translateY(-4px) scale(1.04); }

/* holographic shine sweep */
.holo-overlay {
  position: absolute; inset: 0; z-index: 5; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.55) 48%, rgba(255,255,255,.15) 52%, transparent 70%);
  background-size: 250% 250%;
  animation: shine 2.6s ease-in-out infinite;
  mix-blend-mode: overlay;
}
@keyframes shine {
  0% { background-position: 150% 0; }
  100% { background-position: -50% 0; }
}
.rare-shimmer { animation: pulseGlow 1.8s ease-in-out infinite; }
@keyframes pulseGlow {
  0%,100% { filter: brightness(1); }
  50% { filter: brightness(1.12); }
}

@keyframes toastIn {
  0% { transform: translate(-50%, 20px); opacity: 0; }
  100% { transform: translate(-50%, 0); opacity: 1; }
}
.toast-in { animation: toastIn .3s ease both; }

.product-card { will-change: transform; }

button:disabled { cursor: not-allowed; }

/* scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 4px; }