/* ===== Platinum City 777 — custom styles ===== */

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* Reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.in {
  opacity: 1;
  transform: none;
}

/* Floating badges in the hero */
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.float-slow   { animation: floatY 4.5s ease-in-out infinite; }
.float-slower { animation: floatY 6s ease-in-out infinite; }

/* Subtle shimmer for CTA */
.shadow-glow { box-shadow: 0 10px 40px -10px rgba(37, 99, 235, 0.45); }

/* Active nav link style (set via jQuery) */
.nav-link.is-active,
.mobile-link.is-active {
  background: rgb(239 246 255);
  color: rgb(29 78 216);
}

/* Policy accordion rotation */
.policy-toggle.is-open .fa-chevron-down {
  transform: rotate(180deg);
}

/* Platform card */
.platform-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgb(219 234 254);
  border-radius: 1rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  overflow: hidden;
}
.platform-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(37, 99, 235, 0));
  opacity: 0;
  transition: opacity .3s ease;
}
.platform-card:hover {
  transform: translateY(-4px);
  border-color: rgb(147 197 253);
  box-shadow: 0 20px 30px -20px rgba(37, 99, 235, 0.4);
}
.platform-card:hover::before { opacity: 1; }

.platform-card .icon-wrap {
  width: 56px;
  height: 56px;
  margin: 0 auto;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgb(37 99 235), rgb(30 58 138));
  color: #fff;
  font-size: 1.25rem;
  box-shadow: 0 10px 25px -10px rgba(37, 99, 235, 0.55);
  transition: transform .3s ease;
}
.platform-card .icon-wrap--image {
  width: 72px;
  height: 56px;
  background: #ffffff;
  border: 1px solid rgb(219 234 254);
  padding: 6px;
  box-shadow: 0 6px 16px -8px rgba(37, 99, 235, 0.35);
}
.platform-card .icon-wrap--image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.platform-card:hover .icon-wrap {
  transform: scale(1.08) rotate(-4deg);
}
.platform-card:hover .icon-wrap--image {
  transform: scale(1.06);
}
.platform-card .name {
  margin-top: .75rem;
  font-family: Montserrat, system-ui, sans-serif;
  font-weight: 800;
  color: rgb(30 58 138);
}
.platform-card .play {
  margin-top: .4rem;
  font-size: .75rem;
  color: rgb(37 99 235);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* Form success/error message */
#form-status.success,
#redemption-status.success { color: rgb(22 163 74); }
#form-status.error,
#redemption-status.error   { color: rgb(220 38 38); }

/* Captcha image */
.captcha-img {
  user-select: none;
  -webkit-user-drag: none;
  transition: filter .15s ease;
}
.captcha-img:hover { filter: brightness(0.97); }

/* Modal entry animation */
@keyframes modalFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes modalDialogIn {
  from { opacity: 0; transform: translateY(20px) scale(.96); }
  to   { opacity: 1; transform: none; }
}
#redemption-modal:not(.hidden) .modal-overlay { animation: modalFadeIn .25s ease; }
#redemption-modal:not(.hidden) .modal-dialog  { animation: modalDialogIn .3s cubic-bezier(.2,.9,.3,1.2); }

/* Hide default scrollbar style on body scroll for cleaner look */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #eff6ff; }
::-webkit-scrollbar-thumb { background: #93c5fd; border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: #2563eb; }
