/* Neon theme additions */
:root{
  --neon-a:#00e5ff;
  --neon-b:#ff2bd6;
  --neon-c:#7c4dff;

  --glass-bg: rgba(255,255,255,.06);
  --glass-bg-2: rgba(255,255,255,.08);
  --glass-border: rgba(255,255,255,.14);
  --text-soft: rgba(255,255,255,.86);
}

/* Neon frame (true border all around) */
.neon-border{
  position: relative;
  border-radius: 18px;
  background: var(--glass-bg);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow:
    0 18px 44px rgba(0,0,0,.40),
    0 0 22px rgba(0,229,255,.10),
    0 0 26px rgba(255,43,214,.07);
  overflow: hidden;
}
.neon-border::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  padding:2px; /* thicker so it reads like a full neon border */
  background: linear-gradient(135deg, var(--neon-a), var(--neon-b), var(--neon-c));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events:none;
  filter:
    drop-shadow(0 0 14px rgba(0,229,255,.30))
    drop-shadow(0 0 18px rgba(255,43,214,.22));
  opacity:1;
}

/* Apply neon to game cards + common soft cards */
.game-card,
.soft-card,
.glass-card,
.legal{
  background: var(--glass-bg) !important;
  color: var(--text-soft);
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow:
    0 18px 44px rgba(0,0,0,.40),
    0 0 22px rgba(0,229,255,.10),
    0 0 26px rgba(255,43,214,.07);
}
.game-card,
.soft-card,
.glass-card,
.legal{
  position: relative;
  overflow: hidden;
}
.game-card::before,
.soft-card::before,
.glass-card::before,
.legal::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  padding:2px;
  background: linear-gradient(135deg, var(--neon-a), var(--neon-b), var(--neon-c));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events:none;
  filter:
    drop-shadow(0 0 14px rgba(0,229,255,.28))
    drop-shadow(0 0 18px rgba(255,43,214,.20));
  opacity:1;
}

.game-card:hover{
  transform: translateY(-4px);
  box-shadow:
    0 22px 55px rgba(0,0,0,.45),
    0 0 0 1px rgba(255,255,255,.08),
    0 0 26px rgba(0,229,255,.18),
    0 0 34px rgba(255,43,214,.14);
}

/* Neon form controls (filters) */
.form-control,
.form-select{
  background: rgba(255,255,255,.05) !important;
  color: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow:
    inset 0 0 0 1px rgba(0,229,255,.10),
    0 0 14px rgba(0,229,255,.08),
    0 0 16px rgba(255,43,214,.06);
}
.form-control::placeholder{ color: rgba(255,255,255,.55) !important; }
.form-control:focus,
.form-select:focus{
  border-color: rgba(0,229,255,.55) !important;
  box-shadow:
    0 0 0 .2rem rgba(0,229,255,.12),
    0 0 18px rgba(0,229,255,.14),
    0 0 22px rgba(255,43,214,.10);
}

/* Make card text readable on dark glass */
.game-card .card-body,
.game-card .card-footer,
.soft-card .card-body,
.soft-card .card-footer{
  color: var(--text-soft);
}
.game-card .text-muted,
.soft-card .text-muted{
  color: rgba(255,255,255,.65) !important;
}

/* Neon buttons */
.btn-primary{
  background: linear-gradient(135deg, rgba(0,229,255,.95), rgba(124,77,255,.90)) !important;
  border: 1px solid rgba(0,229,255,.55) !important;
  box-shadow: 0 10px 22px rgba(0,229,255,.14);
}
.btn-primary:hover,
.btn-primary:focus{
  transform: translateY(-1px);
  box-shadow:
    0 14px 32px rgba(0,0,0,.35),
    0 0 18px rgba(0,229,255,.22),
    0 0 22px rgba(255,43,214,.14);
}

.btn-outline-light,
.btn-outline-primary,
.btn-outline-secondary{
  border: 1px solid rgba(0,229,255,.55) !important;
  color: rgba(255,255,255,.92) !important;
  box-shadow: 0 0 0 rgba(0,0,0,0);
}
.btn-outline-light:hover,
.btn-outline-light:focus,
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus{
  background: rgba(0,229,255,.10) !important;
  box-shadow: 0 0 16px rgba(0,229,255,.18), 0 0 18px rgba(255,43,214,.10);
}

/* Provider pills / badges if present */
.badge,
.pill,
.tag{
  border: 1px solid rgba(255,255,255,.16);
}

/* Keep images crisp */
.game-card img{
  filter: saturate(1.05) contrast(1.05);
}

/* Bootstrap text helpers on dark cards */
.game-card .text-secondary{ color: rgba(255,255,255,.70) !important; }
.game-card .bg-dark-subtle{ background: rgba(0,0,0,.25) !important; }
