:root{
  --neon:#8a2be2; --cyber:#00e5ff; --acid:#39ff14;
  --bg1:#0b0b0f; --bg2:#0f0f17;
}
html,body{background:radial-gradient(1200px 600px at 50% -10%, var(--bg2), var(--bg1));color:#e8e8f6}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:
    linear-gradient(transparent 31px, rgba(255,255,255,.03) 32px),
    linear-gradient(90deg, transparent 31px, rgba(255,255,255,.03) 32px),
    radial-gradient(800px 400px at 50% 10%, rgba(138,43,226,.12), transparent 60%);
  background-size:32px 32px,32px 32px,auto;mix-blend-mode:screen;
}
a.nav-link{color:#cfcfe6!important} a.nav-link:hover,a.nav-link.active{color:var(--neon)!important;text-shadow:0 0 8px var(--neon)}
.neon-title{letter-spacing:.5px;text-shadow:0 0 6px var(--neon),0 0 16px var(--neon)}
.neon-dot{animation:flicker 3s infinite;display:inline-block;margin-left:.15rem}
@keyframes flicker{0%,19%,21%,23%,100%{opacity:1}20%,22%{opacity:.3}}
.hang{display:inline-block;position:relative;transform:rotate(-6deg) translateY(1px);text-shadow:0 0 8px var(--neon),0 0 18px var(--neon)}
.hang::before{content:"";position:absolute;top:-10px;left:15%;width:1px;height:10px;background:linear-gradient(var(--neon),transparent);filter:drop-shadow(0 0 4px var(--neon))}
.preloader{position:fixed;inset:0;z-index:2000;background:#000;display:grid;place-items:center}
.preloader.hide{opacity:0;pointer-events:none;transition:opacity .6s ease}
.pre-frame{width:min(520px,92vw);border:1px solid #2a2a2a;padding:1.2rem 1rem;border-radius:12px;background:linear-gradient(180deg,#0c0c10,#050507);box-shadow:0 0 0 1px rgba(138,43,226,.15),0 0 30px rgba(138,43,226,.25) inset}
.pre-bar{height:10px;background:#12121a;border-radius:999px;overflow:hidden;border:1px solid #2a2a2a}
.pre-bar__fill{height:100%;background:linear-gradient(90deg,var(--neon),var(--cyber));width:0%;box-shadow:0 0 16px var(--neon)}
.scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.04),rgba(255,255,255,.04) 1px,transparent 1px,transparent 3px);opacity:.2;pointer-events:none}
.section{padding:clamp(2rem,4vw,4rem) 1rem}
.section--band{background:linear-gradient(180deg,#0e0e15,#0a0a10);border-top:1px solid #1d1d2a;border-bottom:1px solid #1d1d2a}
.section-title{font-weight:800;letter-spacing:.3px;margin-bottom:1rem;text-shadow:0 0 8px rgba(138,43,226,.35)}
.container-narrow{max-width:1100px;margin:0 auto}
.hero-gaming{position:relative;min-height:60vh;display:grid;place-items:center;background:
  radial-gradient(600px 300px at 70% 20%, rgba(0,229,255,.18), transparent 60%),
  radial-gradient(600px 300px at 30% 20%, rgba(138,43,226,.22), transparent 60%);
  border-bottom:1px solid #1f1f2a}
.hero-inner{text-align:center;padding:4rem 1rem}
.hero-title{font-weight:900;text-shadow:0 0 10px var(--neon),0 0 24px var(--neon)}
.lead-typed{color:#cfd0ff;min-height:2.2rem}
.btn-neon{background:linear-gradient(90deg,var(--neon),var(--cyber));border:0;color:#000;font-weight:700;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset}
.btn-neon:hover{filter:drop-shadow(0 0 12px var(--neon))}
.card.game-card{background:#111218;border-color:#28293a;transition:transform .15s ease,box-shadow .15s ease;transform-style:preserve-3d;perspective:700px}
.card.game-card:hover{box-shadow:0 12px 36px rgba(138,43,226,.15)}
.news-card{background:#10111a;border:1px solid #292b3d;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.news-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.35)}
.news-card img{width:100%;height:160px;object-fit:cover;filter:saturate(1.05) contrast(1.05)}
.gallery-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid #26283a;background:#0f1020;transition:transform .2s ease,filter .2s ease}
.gallery-grid img:hover{transform:scale(1.02);filter:brightness(1.08)}
.badge-cross{background:linear-gradient(90deg,rgba(57,255,20,.25),rgba(0,229,255,.25));border:1px solid #2b2d46;color:#cfe;font-weight:700}
.chip-plat{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.8rem;background:#141528;border:1px solid #2c2e46;color:#cfd0ff;margin-right:.25rem}
.form-control,.form-select{background-color:#151522;border-color:#2b2d3f;color:#e8e8f6}
.form-control:focus{border-color:var(--neon);box-shadow:0 0 0 .25rem rgba(138,43,226,.2)}
[data-reveal]{opacity:0;transform:translateY(12px) scale(.98);transition:all .6s cubic-bezier(.2,.6,.2,1)}
.reveal-in{opacity:1;transform:none}
.status-card{background:#0f1020;border:1px solid #2b2d46}
.status-led{width:.7rem;height:.7rem;border-radius:50%;display:inline-block;margin-right:.4rem}
.status-led.ok{background:#39ff14;box-shadow:0 0 8px #39ff14}
.status-led.bad{background:#ff305f;box-shadow:0 0 8px #ff305f}
.lat-bar{height:8px;background:#141528;border:1px solid #2b2d46;border-radius:999px;overflow:hidden}
.lat-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--cyber),var(--neon));transition:width .4s ease}

/* === Neon Sign Flicker (brand 'GAMING') === */
.neon-sign{
  display:inline-block; transform:rotate(-6deg) translateY(1px);
  color:#fff; text-shadow:
    0 0 6px var(--neon),
    0 0 16px var(--neon),
    0 0 28px var(--neon);
  animation: neonFlicker 4.6s infinite steps(1,end);
  position:relative;
}
.neon-sign::after{
  /* subtle cable highlight */
  content:""; position:absolute; top:-12px; left:18%; width:1px; height:12px;
  background:linear-gradient(var(--neon),transparent);
  filter:drop-shadow(0 0 4px var(--neon));
}
@keyframes neonFlicker{
  0%, 6%, 7%, 8%, 100% { opacity:1; filter:none; }
  6.5%, 7.5% { opacity:.35; }
  20% { opacity:.9; }
  21% { opacity:.2; }
  22% { opacity:1; }
  58% { opacity:.95; }
  60% { opacity:.4; }
  61% { opacity:1; }
}

/* --- optional "power-off" pulse controlled by JS --- */
.neon-sign.is-off{ opacity:.25; text-shadow:none; }

/* === Hero layered background & canvas === */
.hero-gaming{position:relative; overflow:hidden;}
.hero-bg{position:absolute; inset:0; pointer-events:none;}
.hero-bg .layer{position:absolute; inset:-10%; mix-blend-mode:screen; opacity:.35; transform:translate3d(0,0,0);}
.hero-bg .l1{background:radial-gradient(40% 30% at 70% 20%, rgba(0,229,255,.18), transparent 60%);}
.hero-bg .l2{background:radial-gradient(30% 25% at 25% 35%, rgba(138,43,226,.20), transparent 60%);}
.hero-bg .l3{background:conic-gradient(from 120deg at 50% 50%, rgba(255,255,255,.04), transparent 40%);}
.hero-bg .l4{background:radial-gradient(50% 40% at 50% 120%, rgba(57,255,20,.10), transparent 60%);}
#heroFx{position:absolute; inset:0; width:100%; height:100%;}

/* === Custom Cursor Effects === */
.cursor-dot, .cursor-ring{
  position:fixed; top:0; left:0; pointer-events:none; z-index:3000; will-change:transform; mix-blend-mode:screen;
}
.cursor-dot{ width:6px; height:6px; border-radius:50%; background:var(--cyber); box-shadow:0 0 10px var(--cyber); transform:translate(-50%,-50%); }
.cursor-ring{ width:36px; height:36px; border:2px solid rgba(0,229,255,.8); border-radius:50%; transform:translate(-50%,-50%); transition:border-color .2s ease, width .2s ease, height .2s ease; }
.cursor-ring.active{ width:24px; height:24px; border-color:rgba(138,43,226,.9); }
.cursor-ring.link{ width:48px; height:48px; border-color:rgba(57,255,20,.9); }

/* Slight hover lift for various cards */
.news-card:hover, .status-card:hover { transform:translateY(-3px); }

/* === ClubCore Radio Player === */
.cc-player{position:fixed;left:12px;right:12px;bottom:12px;z-index:2100;
  padding:.6rem .8rem;border-radius:14px;background:linear-gradient(180deg, rgba(12,12,18,.92), rgba(4,4,8,.92));
  border:1px solid #2a2d40; box-shadow:0 10px 30px rgba(0,0,0,.35), 0 0 0 1px rgba(138,43,226,.18) inset;
  display:flex;align-items:center;gap:.75rem;backdrop-filter:blur(6px)}
.cc-player .btn-icon{width:40px;height:40px;border-radius:10px;border:1px solid #32354a;background:#121420;display:grid;place-items:center;cursor:pointer}
.cc-player .btn-icon:hover{filter:drop-shadow(0 0 10px rgba(138,43,226,.35))}
.cc-player .title{font-weight:700;letter-spacing:.3px}
.cc-player .meta{font-size:.8rem;color:#a7a9c9}
.cc-player .badge-live{font-size:.7rem;background:linear-gradient(90deg,#ff305f,#ff7b00);border:0;color:#000;border-radius:999px;padding:.15rem .5rem;margin-left:.4rem}
.cc-player .vol{display:flex;align-items:center;gap:.5rem;margin-left:auto;min-width:180px}
.cc-player input[type=range]{accent-color:var(--neon);width:140px}
.cc-player .viz{height:36px;flex:0 0 140px;position:relative;display:none}
@media (min-width: 768px){ .cc-player .viz{display:block} }
body.has-player{padding-bottom:80px}
@supports (padding: max(0px)){ body.has-player{padding-bottom: max(80px, env(safe-area-inset-bottom))} }
/* === Impressum (ClubCore) === */
:root{
  --impressum-bg: linear-gradient(180deg, rgba(10,11,18,.96), rgba(8,9,15,.96));
  --impressum-border: rgba(138,43,226,.45);
  --impressum-accent: #8a2be2;
  --impressum-cyan: #00e5ff;
  --impressum-soft: rgba(255,255,255,.06);
  --impressum-soft-2: rgba(255,255,255,.08);
}
.impressum-modal{
  background: var(--impressum-bg);
  color:#e8e9ff;
  border:1px solid var(--impressum-border);
  box-shadow: 0 0 0 1px rgba(0,229,255,.12) inset, 0 18px 40px rgba(0,0,0,.45);
  border-radius: 14px;
}
.impressum-modal .modal-header{
  background: linear-gradient(90deg, rgba(138,43,226,.18), rgba(0,229,255,.12));
  border-bottom:1px solid var(--impressum-border);
}
.impressum-modal .modal-title{ letter-spacing:.3px; font-weight:700; }
.impressum-modal .btn-close{ filter: invert(1) contrast(1.2); }

.impressum-grid{
  display:grid; grid-template-columns:1fr; gap:1rem; margin-bottom:1rem;
}
@media (min-width:768px){
  .impressum-grid{ grid-template-columns:1fr 1fr; gap:1.2rem; }
}

.impressum-section{
  background: var(--impressum-soft);
  border:1px solid var(--impressum-soft-2);
  border-radius:12px; padding:.9rem 1rem;
  box-shadow: 0 8px 26px rgba(0,0,0,.25);
}
.impressum-heading{
  font-size:.95rem; text-transform:uppercase; letter-spacing:.12rem; color:#cfd1ff;
  margin-bottom:.5rem; position:relative; padding-left:.8rem;
}
.impressum-heading::before{
  content:''; position:absolute; left:0; top:.35rem; bottom:.35rem; width:3px; border-radius:3px;
  background: linear-gradient(180deg, var(--impressum-accent), var(--impressum-cyan));
}
.impressum-subheading{ font-size:.9rem; color:#b9bbf2; margin-top:.5rem; }

.impressum-divider{
  border:0; height:1px; margin:1rem 0;
  background: linear-gradient(90deg, transparent, var(--impressum-border), transparent);
}

.impressum-list li{ margin:.2rem 0; }
.impressum-list .ico{ display:inline-block; width:1.2rem; text-align:center; opacity:.85; margin-right:.2rem; }

.link-accent{ color:#e8faff; text-decoration:none; border-bottom:1px dashed rgba(0,229,255,.35); }
.link-accent:hover{ color:#fff; border-bottom-color:rgba(138,43,226,.55); }

.impressum-modal .modal-footer{ border-top:1px solid var(--impressum-border); }
/* === Legal Modals (ClubCore) === */
:root{
  --impressum-bg: linear-gradient(180deg, rgba(10,11,18,.96), rgba(8,9,15,.96));
  --impressum-border: rgba(138,43,226,.45);
  --impressum-accent: #8a2be2;
  --impressum-cyan: #00e5ff;
  --impressum-soft: rgba(255,255,255,.06);
  --impressum-soft-2: rgba(255,255,255,.08);
}
.impressum-modal,.privacy-modal{
  background: var(--impressum-bg);
  color:#e8e9ff;
  border:1px solid var(--impressum-border);
  box-shadow: 0 0 0 1px rgba(0,229,255,.12) inset, 0 18px 40px rgba(0,0,0,.45);
  border-radius: 14px;
}
.impressum-modal .modal-header,.privacy-modal .modal-header{
  background: linear-gradient(90deg, rgba(138,43,226,.18), rgba(0,229,255,.12));
  border-bottom:1px solid var(--impressum-border);
}
.impressum-modal .modal-title,.privacy-modal .modal-title{ letter-spacing:.3px; font-weight:700; }
.impressum-modal .btn-close,.privacy-modal .btn-close{ filter: invert(1) contrast(1.2); }

.impressum-grid{ display:grid; grid-template-columns:1fr; gap:1rem; margin-bottom:1rem; }
@media (min-width:768px){ .impressum-grid{ grid-template-columns:1fr 1fr; gap:1.2rem; } }

.impressum-section{
  background: var(--impressum-soft);
  border:1px solid var(--impressum-soft-2);
  border-radius:12px; padding:.9rem 1rem;
  box-shadow: 0 8px 26px rgba(0,0,0,.25);
}
.impressum-heading{
  font-size:.95rem; text-transform:uppercase; letter-spacing:.12rem; color:#cfd1ff;
  margin-bottom:.5rem; position:relative; padding-left:.8rem;
}
.impressum-heading::before{
  content:''; position:absolute; left:0; top:.35rem; bottom:.35rem; width:3px; border-radius:3px;
  background: linear-gradient(180deg, var(--impressum-accent), var(--impressum-cyan));
}
.impressum-subheading{ font-size:.9rem; color:#b9bbf2; margin-top:.5rem; }
.impressum-divider{ border:0; height:1px; margin:1rem 0; background: linear-gradient(90deg, transparent, var(--impressum-border), transparent); }
.impressum-list li{ margin:.2rem 0; }
.impressum-list .ico{ display:inline-block; width:1.2rem; text-align:center; opacity:.85; margin-right:.2rem; }
.link-accent{ color:#e8faff; text-decoration:none; border-bottom:1px dashed rgba(0,229,255,.35); }
.link-accent:hover{ color:#fff; border-bottom-color:rgba(138,43,226,.55); }
