:root{
  --bg0:#070b12;
  --bg1:#0a1324;
  --ink: rgba(255,255,255,0.92);
  --muted: rgba(255,255,255,0.70);
  --muted2: rgba(255,255,255,0.56);

  --glass: rgba(10,14,24,0.22);
  --glass2: rgba(255,255,255,0.06);
  --stroke: rgba(255,255,255,0.14);
  --stroke2: rgba(255,255,255,0.08);

  --cyan:#58f7ff;
  --gold:#ffcc66;
  --violet:#7c5cff;
  --pink:#ff4fd8;

  --shadow: 0 24px 70px rgba(0,0,0,0.55);
  --r-lg: 22px;
  --r-md: 16px;
  --r-sm: 12px;

  --maxw: 1160px;
  --header-h: 72px;
}

/* Base */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  background:
    radial-gradient(900px 540px at 75% 18%, rgba(88,247,255,0.18), transparent 58%),
    radial-gradient(900px 540px at 68% 64%, rgba(255,204,102,0.12), transparent 62%),
    radial-gradient(900px 640px at 18% 42%, rgba(124,92,255,0.14), transparent 60%),
    linear-gradient(180deg, rgba(7,11,18,0.96), rgba(7,11,18,0.96)),
    url("/assets/img/hero-bg.webp") center/cover no-repeat;
  background-attachment: scroll;
  overflow-x:hidden;
}

/* subtle grain */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(1200px 800px at 30% 20%, rgba(0,0,0,0.30), transparent 60%),
    radial-gradient(1000px 700px at 70% 75%, rgba(0,0,0,0.28), transparent 60%);
  mix-blend-mode: multiply;
  opacity:.85;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");
}

/* Layout */
.wrap{
  width:min(var(--maxw), 100%);
  margin: 0 auto;
  padding: 18px 18px 64px;
  position:relative;
  z-index:1;
}

.skip{
  position:absolute;
  left:-999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip:focus{
  left:18px;
  top:18px;
  width:auto;
  height:auto;
  padding:10px 12px;
  background: rgba(0,0,0,0.75);
  border: 1px solid var(--stroke);
  border-radius: 10px;
  z-index: 9999;
}

/* Header */
.top{
  position: sticky;
  top: 10px;
  z-index: 50;
}

.top__bar{
  height: var(--header-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(10,14,24,0.42);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 12px 30px rgba(0,0,0,0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.top__bar::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: 18px;
  padding:1px;
  background: linear-gradient(90deg,
    rgba(88,247,255,0.55),
    rgba(124,92,255,0.38),
    rgba(255,79,216,0.32),
    rgba(255,204,102,0.40),
    rgba(88,247,255,0.55)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events:none;
  opacity:.35;
}

.top__left{
  display:flex;
  align-items:center;
  gap: 12px;
}
.brand{
  display:flex;
  align-items:baseline;
  gap: 8px;
  text-decoration:none;
  color: var(--ink);
  letter-spacing: .10em;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 13px;
}
.brand__mark{
  font-size: 13px;
  background: linear-gradient(90deg, var(--cyan), var(--violet), var(--gold));
  -webkit-background-clip: text;
  background-clip:text;
  color: transparent;
}
.brand__name{
  opacity: .92;
}
.icon-btn{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.icon-btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,0.09);
  border-color: rgba(255,255,255,0.20);
}
.icon-btn svg{ width:18px; height:18px; fill: rgba(255,255,255,0.82); }

.top__nav{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
}
.top__nav a{
  text-decoration:none;
  color: rgba(255,255,255,0.82);
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  padding: 10px 12px;
  border-radius: 999px;
  transition: background .12s ease, color .12s ease;
}
.top__nav a:hover{
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.92);
}
.top__right{
  display:flex;
  align-items:center;
  gap: 10px;
}

/* Buttons */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .02em;
  text-decoration:none;
  cursor:pointer;
  user-select:none;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.90);
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease;
  will-change: transform;
}
.btn:active{ transform: translateY(1px) scale(.99); }
.btn--primary{
  border: none;
  color: rgba(10,12,18,0.92);
  background: linear-gradient(90deg, rgba(255,204,102,0.98), rgba(255,150,80,0.98), rgba(255,79,216,0.85), rgba(88,247,255,0.88));
  background-size: 220% 220%;
  box-shadow: 0 14px 36px rgba(255,204,102,0.18);
  animation: gradientIdle 7s ease-in-out infinite;
}
.btn--primary::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: 999px;
  background: radial-gradient(120px 60px at 20% 50%, rgba(255,255,255,0.55), transparent 70%);
  opacity:.0;
  transform: translateX(-30%);
  animation: shimmer 4.5s ease-in-out infinite;
  pointer-events:none;
}
.btn--primary:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(255,204,102,0.26);
}
.btn--ghost{
  background: rgba(255,255,255,0.05);
  animation: ghostPulse 6s ease-in-out infinite;
}
.btn--ghost:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,0.09);
  border-color: rgba(255,255,255,0.22);
}

@keyframes gradientIdle{
  0%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}
@keyframes shimmer{
  0%{ opacity:0; transform: translateX(-40%); }
  35%{ opacity:.22; }
  55%{ opacity:0; transform: translateX(40%); }
  100%{ opacity:0; transform: translateX(40%); }
}
@keyframes ghostPulse{
  0%,100%{ box-shadow: 0 0 0 rgba(88,247,255,0.0); }
  50%{ box-shadow: 0 12px 30px rgba(88,247,255,0.10); }
}

/* Hero */
.hero{
  margin-top: 16px;
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 14px;
  align-items: stretch;
}

.hero__card{
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(10,14,24,0.08); /* very transparent to show the background */
  box-shadow: var(--shadow);
  padding: 22px 22px 18px;
  position:relative;
  overflow:hidden;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.hero__card::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: var(--r-lg);
  padding:1px;
  background: linear-gradient(120deg, rgba(88,247,255,0.55), rgba(124,92,255,0.38), rgba(255,204,102,0.32), rgba(88,247,255,0.45));
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events:none;
  opacity:.28;
}
.kicker{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  color: rgba(255,255,255,0.78);
  font-size: 12px;
  letter-spacing: .04em;
}
.kicker::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--cyan);
  box-shadow: 0 0 12px rgba(88,247,255,0.55);
}
.hero h1{
  margin: 14px 0 10px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: .96;
  letter-spacing: .01em;
}
.hero p{
  margin: 0 0 16px;
  color: var(--muted);
  line-height: 1.65;
  max-width: 68ch;
  font-size: 14px;
}
.hero__actions{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items:center;
}
.note{
  margin-top: 10px;
  font-size: 12px;
  color: rgba(255,255,255,0.58);
}

/* Side card */
.hero__aside{
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(10,14,24,0.12);
  padding: 18px 16px;
  box-shadow: 0 18px 52px rgba(0,0,0,0.42);
  overflow:hidden;
  position:relative;
}
.hero__aside::before{
  content:"";
  position:absolute;
  inset:-120px -160px auto auto;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle at 30% 30%, rgba(255,204,102,0.20), transparent 60%),
              radial-gradient(circle at 60% 60%, rgba(88,247,255,0.16), transparent 62%);
  transform: rotate(18deg);
  pointer-events:none;
}
.aside__title{
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(255,255,255,0.80);
  margin-bottom: 10px;
}
.pills{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  position:relative;
}
.pill{
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.78);
  font-size: 12px;
  text-decoration:none;
  transition: transform .12s ease, background .12s ease;
}
.pill:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,0.08);
}
.aside__meta{
  margin-top: 14px;
  font-size: 12px;
  color: rgba(255,255,255,0.60);
  line-height: 1.55;
}

/* Sections */
.section{
  margin-top: 20px;
  padding: 18px;
  border-radius: var(--r-lg);
  background: rgba(10,14,24,0.18);
  border: 1px solid rgba(255,255,255,0.10);
}
.section--flat{
  background: transparent;
  border: none;
  padding: 0;
}
.section h2{
  margin: 0 0 12px;
  font-size: 18px;
  letter-spacing: .02em;
}
.section h3{
  margin: 18px 0 10px;
  font-size: 15px;
  letter-spacing: .01em;
}
.section p{
  color: rgba(255,255,255,0.76);
  line-height: 1.72;
  font-size: 14px;
}
.section ul, .section ol{
  color: rgba(255,255,255,0.76);
  line-height: 1.70;
  font-size: 14px;
}
.section li{ margin: 6px 0; }

hr.sep{
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  margin: 18px 0;
}

/* Category grid */
.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.card{
  display:flex;
  flex-direction:column;
  gap: 10px;
  padding: 12px;
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.05);
  text-decoration:none;
  transition: transform .14s ease, background .14s ease, border-color .14s ease;
  position:relative;
  overflow:hidden;
}
.card:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.20);
}
.card::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: var(--r-lg);
  background: conic-gradient(from 180deg,
    rgba(88,247,255,0.0),
    rgba(88,247,255,0.22),
    rgba(124,92,255,0.18),
    rgba(255,204,102,0.18),
    rgba(255,79,216,0.18),
    rgba(88,247,255,0.22),
    rgba(88,247,255,0.0)
  );
  opacity: .0;
  transition: opacity .14s ease;
  pointer-events:none;
}
.card:hover::before{ opacity: .18; }

.card__media{
  width:100%;
  aspect-ratio: 5 / 3;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(0,0,0,0.28);
  overflow:hidden;
  display:grid;
  place-items:center;
}
.card__media img{
  width:100%;
  height:100%;
  object-fit: contain; /* show full card */
}
.card__row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 10px;
}
.card__title{
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(255,255,255,0.90);
}
.card__meta{
  font-size: 12px;
  color: rgba(255,255,255,0.62);
}

/* Content optimization for long pages */
.content{
  margin-top: 18px;
}
.content .section{
  content-visibility: auto;
  contain-intrinsic-size: 800px;
}

/* Tables */
.table-wrap{
  overflow:auto;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
}
table{
  width:100%;
  border-collapse: collapse;
  min-width: 720px;
  background: rgba(255,255,255,0.03);
}
th,td{
  padding: 12px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  vertical-align: top;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255,255,255,0.78);
}
th{
  text-align:left;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.88);
  background: rgba(255,255,255,0.04);
}

/* FAQ */
.faq details{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  padding: 12px 12px;
  margin: 10px 0;
}
.faq summary{
  cursor:pointer;
  font-weight: 900;
  letter-spacing: .02em;
  color: rgba(255,255,255,0.86);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq p{ margin: 10px 0 0; }

/* Footer */
.footer{
  margin-top: 22px;
  padding: 18px 0 0;
  color: rgba(255,255,255,0.55);
  font-size: 12px;
  border-top: 1px solid rgba(255,255,255,0.10);
}

/* Atlas overlay */
.atlas{
  position: fixed;
  inset: 0;
  z-index: 999;
  display:none;
}
.atlas.is-open{ display:block; }
.atlas__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.72);
}
.atlas__panel{
  position:absolute;
  top: 18px;
  left: 18px;
  right: 18px;
  bottom: 18px;
  border-radius: 22px;
  background: rgba(10,14,24,0.86);
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 30px 90px rgba(0,0,0,0.65);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.atlas__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.atlas__title{
  font-weight: 1000;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(255,255,255,0.82);
}
.atlas__close{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  cursor:pointer;
  color: rgba(255,255,255,0.86);
}
.atlas__body{
  padding: 14px;
  overflow:auto;
}
.search{
  display:flex;
  gap: 10px;
  align-items:center;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  margin-bottom: 14px;
}
.search input{
  width:100%;
  border:none;
  outline:none;
  background: transparent;
  color: rgba(255,255,255,0.92);
  font-size: 14px;
}
.group{
  margin: 16px 0;
}
.group__h{
  margin: 0 0 10px;
  font-size: 12px;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.70);
}
.link-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.atlas a{
  display:block;
  text-decoration:none;
  color: rgba(255,255,255,0.82);
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
  font-size: 13px;
}
.atlas a:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.20);
}

@media (max-width: 980px){
  .hero{ grid-template-columns: 1fr; }
  .top__nav{ display:none; }
}

@media (max-width: 760px){
  .grid{ grid-template-columns: 1fr; }
  .link-grid{ grid-template-columns: 1fr; }
  table{ min-width: 640px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* =========================
   THEME SYSTEM (slots / live / vip)
   ========================= */
:root{
  --accent1-rgb: 88,247,255;
  --accent2-rgb: 124,92,255;
  --accent3-rgb: 255,204,102;
  --accent4-rgb: 255,79,216;

  --ctaA: rgba(255,204,102,0.98);
  --ctaB: rgba(255,150,80,0.98);
  --ctaC: rgba(255,79,216,0.85);
  --ctaD: rgba(88,247,255,0.88);
}

body[data-theme="slots"]{
  --accent1-rgb: 88,247,255;
  --accent2-rgb: 124,92,255;
  --accent3-rgb: 255,204,102;
  --accent4-rgb: 255,79,216;

  --ctaA: rgba(255,204,102,0.98);
  --ctaB: rgba(255,150,80,0.98);
  --ctaC: rgba(255,79,216,0.85);
  --ctaD: rgba(88,247,255,0.88);
}

body[data-theme="live"]{
  --accent1-rgb: 255,79,216;
  --accent2-rgb: 88,247,255;
  --accent3-rgb: 124,92,255;
  --accent4-rgb: 255,204,102;

  --ctaA: rgba(255,79,216,0.92);
  --ctaB: rgba(88,247,255,0.90);
  --ctaC: rgba(124,92,255,0.86);
  --ctaD: rgba(255,204,102,0.90);
}

body[data-theme="vip"]{
  --accent1-rgb: 255,204,102;
  --accent2-rgb: 255,79,216;
  --accent3-rgb: 88,247,255;
  --accent4-rgb: 124,92,255;

  --ctaA: rgba(255,204,102,0.98);
  --ctaB: rgba(255,79,216,0.88);
  --ctaC: rgba(88,247,255,0.82);
  --ctaD: rgba(124,92,255,0.86);
}

body[data-theme="jackpots"]{
  --accent1-rgb: 255,204,102;
  --accent2-rgb: 88,247,255;
  --accent3-rgb: 255,79,216;
  --accent4-rgb: 124,92,255;

  --ctaA: rgba(255,204,102,0.98);
  --ctaB: rgba(88,247,255,0.86);
  --ctaC: rgba(255,79,216,0.82);
  --ctaD: rgba(124,92,255,0.84);
}

/* Apply theme accents to key UI parts (lightweight, no heavy filters) */
.top__bar::before{
  background: linear-gradient(90deg,
    rgba(var(--accent1-rgb),0.55),
    rgba(var(--accent2-rgb),0.38),
    rgba(var(--accent4-rgb),0.32),
    rgba(var(--accent3-rgb),0.40),
    rgba(var(--accent1-rgb),0.55)
  );
}

.btn--primary{
  background: linear-gradient(90deg, var(--ctaA), var(--ctaB), var(--ctaC), var(--ctaD));
  box-shadow: 0 14px 36px rgba(var(--accent1-rgb),0.14);
}

.kicker::before{
  background: rgb(var(--accent1-rgb));
  box-shadow: 0 0 12px rgba(var(--accent1-rgb),0.55);
}

.hero__card::before{
  background: linear-gradient(120deg,
    rgba(var(--accent1-rgb),0.55),
    rgba(var(--accent2-rgb),0.38),
    rgba(var(--accent3-rgb),0.32),
    rgba(var(--accent1-rgb),0.45)
  );
}

.hero__aside::before{
  background:
    radial-gradient(circle at 30% 30%, rgba(var(--accent3-rgb),0.18), transparent 60%),
    radial-gradient(circle at 60% 60%, rgba(var(--accent1-rgb),0.14), transparent 62%);
}

.card::before{
  background: conic-gradient(from 180deg,
    rgba(var(--accent1-rgb),0.0),
    rgba(var(--accent1-rgb),0.22),
    rgba(var(--accent2-rgb),0.18),
    rgba(var(--accent3-rgb),0.18),
    rgba(var(--accent4-rgb),0.18),
    rgba(var(--accent1-rgb),0.22),
    rgba(var(--accent1-rgb),0.0)
  );
}

/* Animated neon separators (lightweight) */
hr.sep{
  position:relative;
  overflow:hidden;
}
hr.sep::after{
  content:"";
  position:absolute;
  inset:0;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg,
    transparent,
    rgba(var(--accent1-rgb),0.55),
    rgba(var(--accent3-rgb),0.45),
    transparent
  );
  transform: translateX(-120%);
  animation: sepSweep 8s linear infinite;
  will-change: transform;
  pointer-events:none;
  opacity:.55;
}
@keyframes sepSweep{
  to{ transform: translateX(220%); }
}

/* =========================
   INTERACTIVE CATEGORY MAP (Home)
   ========================= */
.map-panel{
  background: rgba(10,14,24,0.14);
  border: 1px solid rgba(255,255,255,0.10);
}
.map-panel__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 12px;
  flex-wrap:wrap;
  margin-bottom: 12px;
}
.map-panel__head h2{ margin:0; }
.map-panel__head p{
  margin: 0;
  max-width: 72ch;
}

.neon-map{
  position:relative;
  border-radius: var(--r-lg);
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
  aspect-ratio: 1000 / 520;
  overflow:hidden;
}
.neon-map__lines{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity: .72;
}
.neon-map__lines path{
  fill:none;
  stroke: rgba(var(--accent1-rgb),0.35);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 10 18;
  animation: mapDash 14s linear infinite;
}
.neon-map__lines circle{
  fill:none;
  stroke: rgba(var(--accent2-rgb),0.22);
  stroke-width: 2;
  stroke-dasharray: 5 16;
  animation: mapDash 18s linear infinite reverse;
}
@keyframes mapDash{
  to{ stroke-dashoffset: -260; }
}

.neon-map__node{
  position:absolute;
  transform: translate(-50%, -50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(10,14,24,0.44);
  color: rgba(255,255,255,0.92);
  text-decoration:none;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: 11px;
  transition: transform .14s ease, background .14s ease, border-color .14s ease, box-shadow .14s ease;
  will-change: transform;
}
.neon-map__node::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: 999px;
  padding: 1px;
  background: linear-gradient(90deg,
    rgba(var(--accent1-rgb),0.34),
    rgba(var(--accent2-rgb),0.24),
    rgba(var(--accent3-rgb),0.22),
    rgba(var(--accent1-rgb),0.34)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: .18;
  pointer-events:none;
}
.neon-map__node:hover{
  transform: translate(-50%, -54%);
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.22);
  box-shadow: 0 18px 50px rgba(var(--accent1-rgb),0.10);
}
.neon-map__node:focus-visible{
  outline: 2px solid rgba(var(--accent1-rgb),0.60);
  outline-offset: 3px;
}

.neon-map__node--center{
  left: 50%;
  top: 50%;
  padding: 0 16px;
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.20);
  box-shadow: 0 18px 60px rgba(0,0,0,0.45);
  animation: centerPulse 6.8s ease-in-out infinite;
}
@keyframes centerPulse{
  0%,100%{ box-shadow: 0 18px 60px rgba(0,0,0,0.45); }
  50%{ box-shadow: 0 18px 60px rgba(var(--accent3-rgb),0.12); }
}

.neon-map__node--slots{ left: 18%; top: 25%; }
.neon-map__node--live{ left: 50%; top: 14%; }
.neon-map__node--tables{ left: 82%; top: 25%; }
.neon-map__node--jackpots{ left: 82%; top: 75%; }
.neon-map__node--crown{ left: 50%; top: 86%; }
.neon-map__node--cards{ left: 18%; top: 75%; }

.map-panel__foot{
  margin-top: 12px;
  font-size: 12px;
  color: rgba(255,255,255,0.62);
  line-height: 1.55;
}

@media (max-width: 760px){
  .neon-map{
    aspect-ratio: auto;
    display:grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
  }
  .neon-map__lines{ display:none; }
  .neon-map__node{
    position: static;
    transform:none;
    width:100%;
    justify-content:space-between;
    padding: 0 14px;
  }
  .neon-map__node:hover{
    transform:none;
  }
  .neon-map__node--center{
    animation:none;
  }
}


/* THEME BACKDROP OVERRIDES (keeps the site fast while changing mood) */
.bg::before{
  background:
    radial-gradient(circle at 20% 10%, rgba(var(--accent1-rgb),0.22), transparent 55%),
    radial-gradient(circle at 70% 30%, rgba(var(--accent2-rgb),0.18), transparent 62%),
    radial-gradient(circle at 50% 90%, rgba(var(--accent4-rgb),0.16), transparent 60%),
    linear-gradient(180deg, rgba(10,12,18,0.68), rgba(10,12,18,0.88));
}
.bg::after{
  background:
    linear-gradient(120deg,
      transparent 0%,
      rgba(var(--accent1-rgb),0.10) 12%,
      transparent 24%,
      rgba(var(--accent3-rgb),0.08) 46%,
      transparent 58%,
      rgba(var(--accent2-rgb),0.10) 78%,
      transparent 100%
    );
  opacity: .18;
}
