/* Rocky Store Roblox Theme Styles */
@keyframes scaleUp {
  0% { transform: scale(0.92); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.animate-scale-up {
  animation: scaleUp 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Custom Scrollbar for sleek gaming feel */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: #090d16;
}
::-webkit-scrollbar-thumb {
  background: #1e293b;
  border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #0284c7;
}

/* 3D Roblox Block Buttons */
.btn-block-3d {
  box-shadow: 0 4px 0 0 rgba(0, 0, 0, 0.4);
  transition: all 0.1s ease-out;
}
.btn-block-3d:active {
  transform: translateY(3px);
  box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.4);
}

/* Rarity Badges Glow Styles */
.badge-common {
  background-color: rgba(100, 116, 139, 0.2);
  color: #94a3b8;
  border-color: rgba(148, 163, 184, 0.3);
}

.badge-rare {
  background-color: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
  border-color: rgba(56, 189, 248, 0.4);
  box-shadow: 0 0 10px -2px rgba(56, 189, 248, 0.3);
}

.badge-legendary {
  background-color: rgba(234, 179, 8, 0.15);
  color: #facc15;
  border-color: rgba(234, 179, 8, 0.4);
  box-shadow: 0 0 12px -2px rgba(234, 179, 8, 0.4);
}

.badge-mythic {
  background-color: rgba(236, 72, 153, 0.15);
  color: #f472b6;
  border-color: rgba(236, 72, 153, 0.4);
  box-shadow: 0 0 14px -2px rgba(236, 72, 153, 0.5);
}

/* Card Hover Lift & Border Illumination */
.product-card {
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.2s ease, border-color 0.2s ease;
}
.product-card:hover {
  transform: translateY(-4px);
}

/* Map Shelf Sections Animation & Styling */
.map-shelf-section {
  animation: fadeIn 0.3s ease-out forwards;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Safe area support for iOS webviews */
@supports (padding: env(safe-area-inset-top)) {
  .safe-top {
    padding-top: env(safe-area-inset-top);
  }
  .safe-bottom {
    padding-bottom: env(safe-area-inset-bottom);
  }
}