/* ═══════════════════════════════════════════════════════════════════════════
   DJ DORIAN B — Main Stylesheet
   Futuristic Techno Dark Theme
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  --bg:          #03030a;
  --bg2:         #070716;
  --bg-card:     rgba(255,255,255,0.03);
  --bg-glass:    rgba(10,10,30,0.7);
  --primary:     #c800ff;
  --primary-dim: rgba(200,0,255,0.12);
  --secondary:   #ff0070;
  --sec-dim:     rgba(255,0,112,0.12);
  --accent:      #00e5ff;
  --acc-dim:     rgba(0,229,255,0.12);
  --text:        #e8e8ff;
  --muted:       #6677aa;
  --border:      rgba(255,255,255,0.07);
  --glow-p:      0 0 20px rgba(200,0,255,0.6),0 0 60px rgba(200,0,255,0.2);
  --glow-s:      0 0 20px rgba(255,0,112,0.6),0 0 60px rgba(255,0,112,0.2);
  --glow-a:      0 0 20px rgba(0,229,255,0.6),0 0 60px rgba(0,229,255,0.2);
  --font-h:      'Audiowide', sans-serif;
  --font-b:      'Exo 2', sans-serif;
  --radius:      8px;
  --trans:       0.3s ease;
}

/* ── Reset ── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-b);
  font-weight:400;
  line-height:1.7;
  overflow-x:hidden;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; border:none; background:none; color:inherit; font-family:inherit; }
ul { list-style:none; }

/* ── Scrollbar ── */
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:#000; }
::-webkit-scrollbar-thumb { background:var(--primary); border-radius:3px; }

/* ── Utilities ── */
.container { max-width:1160px; margin:0 auto; padding:0 24px; }
.section { padding:100px 0; }
.section-title {
  font-family:var(--font-h);
  font-size:clamp(1.6rem,4vw,2.6rem);
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:4px;
  margin-bottom:60px;
}
.section-title span { color:var(--secondary); text-shadow:var(--glow-s); }

.btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 32px;
  font-family:var(--font-h);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  border-radius:4px;
  transition:var(--trans);
  border:none;
  cursor:pointer;
}
.btn-glow {
  background:var(--primary);
  color:#fff;
  box-shadow:var(--glow-p);
}
.btn-glow:hover { transform:translateY(-3px); box-shadow:0 0 30px rgba(200,0,255,0.9),0 0 80px rgba(200,0,255,0.3); }
.btn-outline {
  background:transparent;
  color:var(--accent);
  border:2px solid var(--accent);
}
.btn-outline:hover { background:var(--accent); color:#000; box-shadow:var(--glow-a); transform:translateY(-3px); }
.btn-outline-sec {
  border-color:var(--secondary);
  color:var(--secondary);
}
.btn-outline-sec:hover { background:var(--secondary); color:#fff; box-shadow:var(--glow-s); transform:translateY(-3px); }
.btn-sm { padding:8px 20px; font-size:.72rem; }

/* ── Reveal animations ── */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .8s ease,transform .8s ease; }
.reveal.in-view { opacity:1; transform:none; }

/* ─────────────────────────────────────────────────────────────────────────────
   NAVBAR
───────────────────────────────────────────────────────────────────────────── */
#navbar {
  position:fixed;
  top:0; left:0; right:0;
  z-index:900;
  padding:22px 0;
  transition:background .4s,padding .4s,border-color .4s;
}
#navbar.solid {
  background:rgba(3,3,15,0.95);
  padding:14px 0;
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(200,0,255,0.2);
}
.nav-inner {
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.nav-logo {
  font-family:var(--font-h);
  font-size:1.4rem;
  font-weight:900;
  letter-spacing:3px;
  text-transform:uppercase;
}
.logo-dj { color:var(--muted); margin-right:4px; }
.logo-name { color:var(--accent); text-shadow:var(--glow-a); }

.nav-links {
  display:flex;
  align-items:center;
  gap:36px;
}
.nav-links a {
  font-family:var(--font-h);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  transition:color var(--trans),text-shadow var(--trans);
}
.nav-links a:hover, .nav-links a.active { color:var(--text); }
.nav-cta {
  color:var(--secondary) !important;
  border:1px solid var(--secondary);
  padding:8px 20px;
  border-radius:4px;
}
.nav-cta:hover { background:var(--secondary) !important; color:#fff !important; box-shadow:var(--glow-s); }

.nav-burger {
  display:none;
  flex-direction:column;
  gap:5px;
  padding:4px;
}
.nav-burger span {
  display:block;
  width:24px; height:2px;
  background:var(--text);
  transition:var(--trans);
}
.nav-burger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity:0; }
.nav-burger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ─────────────────────────────────────────────────────────────────────────────
   HERO
───────────────────────────────────────────────────────────────────────────── */
.hero {
  position:relative;
  height:100vh;
  min-height:600px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  text-align:center;
}
#heroCanvas {
  position:absolute;
  inset:0;
  width:100%; height:100%;
  z-index:0;
}
.hero-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(3,3,10,0.5) 0%,
    rgba(3,3,10,0.3) 40%,
    rgba(3,3,10,0.85) 85%,
    var(--bg) 100%
  );
  z-index:1;
}
.hero-content {
  position:relative;
  z-index:2;
  padding:0 20px;
}
.hero-alias {
  font-family:var(--font-h);
  font-size:clamp(.75rem,2vw,1rem);
  letter-spacing:6px;
  color:var(--accent);
  text-transform:uppercase;
  margin-bottom:12px;
  opacity:.9;
}
.hero-title {
  font-family:var(--font-h);
  font-size:clamp(3rem,10vw,8rem);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:6px;
  line-height:1;
  margin-bottom:20px;
  color:#fff;
}
.neon-text {
  color:var(--primary);
  text-shadow:
    0 0 10px var(--primary),
    0 0 30px var(--primary),
    0 0 80px rgba(200,0,255,0.5);
}
.hero-sub {
  font-family:var(--font-b);
  font-size:clamp(.9rem,2vw,1.1rem);
  letter-spacing:3px;
  color:var(--muted);
  margin-bottom:40px;
  min-height:1.5em;
}
.hero-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:50px; }
.hero-scroll {
  position:absolute;
  bottom:30px; left:50%;
  transform:translateX(-50%);
  animation:scrollBounce 2s ease-in-out infinite;
}
.scroll-arrow {
  width:24px; height:24px;
  border-right:2px solid var(--primary);
  border-bottom:2px solid var(--primary);
  transform:rotate(45deg);
}
@keyframes scrollBounce { 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(8px);} }

/* ── Glitch effect ── */
.glitch {
  position:relative;
}
.glitch::before,.glitch::after {
  content:attr(data-text);
  position:absolute;
  top:0; left:0;
  opacity:.6;
  pointer-events:none;
}
.glitch::before {
  color:var(--secondary);
  clip-path:polygon(0 0,100% 0,100% 35%,0 35%);
  animation:glitch1 3s infinite;
}
.glitch::after {
  color:var(--accent);
  clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%);
  animation:glitch2 3s infinite;
}
@keyframes glitch1 {
  0%,95%,100%{transform:none;opacity:0;}
  96%{transform:translateX(-2px);opacity:.6;}
  97%{transform:translateX(2px);opacity:.6;}
  98%{transform:none;opacity:.6;}
}
@keyframes glitch2 {
  0%,93%,100%{transform:none;opacity:0;}
  94%{transform:translateX(2px);opacity:.6;}
  95%{transform:translateX(-2px);opacity:.6;}
  96%{transform:none;opacity:.6;}
}

/* ─────────────────────────────────────────────────────────────────────────────
   RADIO SECTION
───────────────────────────────────────────────────────────────────────────── */
.section-radio { background:var(--bg2); }

.radio-player {
  display:flex;
  align-items:center;
  gap:30px;
  background:var(--bg-glass);
  border:1px solid rgba(200,0,255,0.3);
  border-radius:12px;
  padding:30px 36px;
  backdrop-filter:blur(20px);
  box-shadow:0 0 40px rgba(200,0,255,0.1);
  flex-wrap:wrap;
}
.radio-live-badge {
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-h);
  font-size:.8rem;
  letter-spacing:3px;
  color:var(--secondary);
  font-weight:700;
}
.live-dot {
  width:10px; height:10px;
  background:var(--secondary);
  border-radius:50%;
  animation:livePulse 1.2s ease-in-out infinite;
  box-shadow:0 0 8px var(--secondary);
}
@keyframes livePulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.4;transform:scale(1.3);} }

.radio-info { flex:1; }
.radio-title { font-family:var(--font-h); font-size:1.1rem; letter-spacing:2px; }
.radio-sub { color:var(--muted); font-size:.9rem; margin-top:4px; }

.radio-controls { display:flex; align-items:center; gap:20px; }
.radio-btn {
  width:56px; height:56px;
  border-radius:50%;
  background:var(--primary);
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--glow-p);
  transition:var(--trans);
}
.radio-btn svg { width:24px; height:24px; }
.radio-btn:hover { transform:scale(1.1); box-shadow:0 0 30px rgba(200,0,255,0.9); }
.radio-btn.playing svg { display:none; }

.radio-vol { display:flex; align-items:center; gap:10px; }
.radio-vol input[type=range] { width:100px; }

.radio-offline {
  text-align:center;
  padding:60px 20px;
  border:1px dashed var(--border);
  border-radius:12px;
  color:var(--muted);
}
.radio-offline-icon { font-size:3rem; margin-bottom:16px; }

/* ─────────────────────────────────────────────────────────────────────────────
   ABOUT
───────────────────────────────────────────────────────────────────────────── */
.about-grid {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:60px;
  align-items:center;
}
.about-img-wrap {
  position:relative;
  border-radius:12px;
  overflow:hidden;
}
.about-img-wrap img {
  width:100%;
  border-radius:12px;
  filter:saturate(0.8) contrast(1.05);
  transition:filter var(--trans);
}
.about-img-wrap:hover img { filter:saturate(1) contrast(1.1); }
.about-img-glow {
  position:absolute;
  inset:-2px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--primary),var(--secondary),var(--accent));
  z-index:-1;
  opacity:.6;
  filter:blur(12px);
}
.about-alias {
  font-family:var(--font-h);
  font-size:.8rem;
  letter-spacing:4px;
  color:var(--accent);
  text-transform:uppercase;
  margin-bottom:10px;
}
.about-text h3 {
  font-family:var(--font-h);
  font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:900;
  margin-bottom:20px;
  color:#fff;
  letter-spacing:3px;
}
.about-text p { color:var(--muted); margin-bottom:16px; font-size:1.05rem; }
.about-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.about-tags span {
  padding:5px 14px;
  border:1px solid var(--border);
  border-radius:20px;
  font-family:var(--font-h);
  font-size:.65rem;
  letter-spacing:2px;
  color:var(--muted);
  transition:var(--trans);
}
.about-tags span:hover { border-color:var(--primary); color:var(--primary); box-shadow:0 0 10px rgba(200,0,255,0.3); }

/* ─────────────────────────────────────────────────────────────────────────────
   MUSIC PLAYER
───────────────────────────────────────────────────────────────────────────── */
.section-music { background:var(--bg2); }

.player-wrap {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:30px;
  background:var(--bg-glass);
  border:1px solid rgba(0,229,255,0.2);
  border-radius:16px;
  overflow:hidden;
  backdrop-filter:blur(20px);
  box-shadow:0 0 60px rgba(0,229,255,0.07);
}
.player-main {
  padding:30px;
  display:flex;
  flex-direction:column;
  gap:20px;
  border-right:1px solid var(--border);
}
.player-cover {
  position:relative;
  width:140px;
  height:140px;
  flex-shrink:0;
  align-self:center;
  background:#0a0a1a;
  border-radius:10px;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
#playerCoverImg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .5s; }
#playerCoverImg.loaded { opacity:1; }
.player-cover-default { font-size:4rem; color:var(--muted); z-index:1; transition:opacity .3s; }
#vizCanvas {
  position:absolute;
  bottom:0; left:0; right:0;
  width:100%; height:60px;
  z-index:2;
}

.player-info { text-align:center; }
.player-track-title {
  font-family:var(--font-h);
  font-size:.95rem;
  letter-spacing:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.player-track-artist { color:var(--muted); font-size:.9rem; margin-top:4px; }

.player-progress-wrap { display:flex; align-items:center; gap:10px; }
.player-time { font-family:var(--font-h); font-size:.7rem; color:var(--muted); min-width:32px; }
.player-progress {
  flex:1;
  height:4px;
  background:rgba(255,255,255,0.1);
  border-radius:2px;
  cursor:pointer;
  position:relative;
}
.player-progress-fill {
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--primary),var(--secondary));
  border-radius:2px;
  transition:width .2s linear;
  pointer-events:none;
}
.player-progress::after {
  content:'';
  position:absolute;
  right:0; top:50%;
  transform:translate(50%,-50%);
  width:12px; height:12px;
  background:var(--text);
  border-radius:50%;
  opacity:0;
  transition:opacity .2s;
}
.player-progress:hover::after { opacity:1; }

.player-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
}
.ctrl-btn {
  width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  color:var(--muted);
  border-radius:50%;
  transition:var(--trans);
}
.ctrl-btn svg { width:18px; height:18px; }
.ctrl-btn:hover { color:var(--text); }
.ctrl-btn.active { color:var(--primary); }
.ctrl-play {
  width:52px; height:52px;
  background:var(--primary);
  color:#fff !important;
  box-shadow:var(--glow-p);
}
.ctrl-play:hover { transform:scale(1.1); box-shadow:0 0 30px rgba(200,0,255,0.9); }
.ctrl-prev svg,.ctrl-next svg { width:22px; height:22px; }

.player-vol {
  display:flex; align-items:center; gap:10px;
  padding-top:4px;
}
.player-vol svg { color:var(--muted); flex-shrink:0; }
.player-vol input[type=range] { flex:1; }

/* Playlist */
.player-playlist {
  overflow-y:auto;
  max-height:480px;
  padding:10px 0;
}
.player-playlist::-webkit-scrollbar { width:3px; }
.playlist-item {
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 20px;
  cursor:pointer;
  transition:background var(--trans);
  border-left:3px solid transparent;
}
.playlist-item:hover { background:rgba(255,255,255,0.04); }
.playlist-item.active {
  background:var(--primary-dim);
  border-left-color:var(--primary);
}
.pi-num {
  font-family:var(--font-h);
  font-size:.65rem;
  color:var(--muted);
  min-width:20px;
  text-align:center;
}
.playlist-item.active .pi-num { color:var(--primary); }
.pi-cover {
  width:40px; height:40px;
  border-radius:4px;
  background:var(--bg2);
  overflow:hidden;
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem;
  color:var(--muted);
}
.pi-cover img { width:100%; height:100%; object-fit:cover; }
.pi-info { flex:1; min-width:0; }
.pi-title {
  font-size:.95rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:color var(--trans);
}
.playlist-item.active .pi-title { color:var(--primary); }
.pi-artist { font-size:.8rem; color:var(--muted); }
.pi-dur { font-family:var(--font-h); font-size:.7rem; color:var(--muted); flex-shrink:0; }
.playlist-ad { border-left:3px solid var(--warn, #ffaa00) !important; background:rgba(255,170,0,.03); }
.playlist-ad .pi-title { color:var(--warn, #ffaa00); font-size:.85rem; }

/* ─────────────────────────────────────────────────────────────────────────────
   EVENTS
───────────────────────────────────────────────────────────────────────────── */
.events-tabs {
  display:flex;
  justify-content:center;
  gap:4px;
  margin-bottom:48px;
  background:rgba(255,255,255,0.04);
  border-radius:6px;
  padding:4px;
  width:fit-content;
  margin-left:auto;
  margin-right:auto;
}
.tab-btn {
  font-family:var(--font-h);
  font-size:.75rem;
  letter-spacing:2px;
  text-transform:uppercase;
  padding:10px 28px;
  border-radius:4px;
  color:var(--muted);
  transition:var(--trans);
}
.tab-btn.active { background:var(--primary); color:#fff; box-shadow:var(--glow-p); }

.events-grid { display:grid; gap:20px; }
.events-empty { text-align:center; color:var(--muted); padding:60px; font-family:var(--font-h); font-size:.9rem; letter-spacing:2px; }

.event-card {
  display:flex;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:12px;
  transition:border-color var(--trans),box-shadow var(--trans);
}
.event-card:hover { border-color:rgba(200,0,255,0.4); box-shadow:0 0 30px rgba(200,0,255,0.08); }
.event-past { opacity:.6; }
.event-past:hover { opacity:.9; }

.event-flyer { width:200px; flex-shrink:0; overflow:hidden; border-radius:12px 0 0 12px; }
.event-flyer img { width:100%; height:100%; object-fit:cover; transition:transform var(--trans); }
.event-card:hover .event-flyer img { transform:scale(1.05); }

.event-info { display:flex; gap:24px; padding:24px; align-items:flex-start; flex:1; }
.event-date-badge {
  display:flex;
  flex-direction:column;
  align-items:center;
  background:var(--primary-dim);
  border:1px solid rgba(200,0,255,0.25);
  border-radius:8px;
  padding:12px 16px;
  min-width:64px;
  flex-shrink:0;
}
.ev-day { font-family:var(--font-h); font-size:1.8rem; font-weight:900; color:var(--primary); line-height:1; }
.ev-month { font-family:var(--font-h); font-size:.65rem; letter-spacing:2px; color:var(--muted); }
.ev-year { font-family:var(--font-h); font-size:.6rem; color:var(--muted); margin-top:2px; }

.event-details h3 { font-family:var(--font-h); font-size:1rem; letter-spacing:2px; margin-bottom:8px; }
.event-location, .event-time { font-size:.9rem; color:var(--muted); margin-bottom:4px; }
.event-desc { font-size:.9rem; color:var(--muted); margin:10px 0; }

.event-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:6px; }
.event-share { position:relative; }
.share-toggle {
  display:inline-flex; align-items:center; gap:6px;
  background:transparent; color:var(--muted);
  border:1px solid var(--border); border-radius:999px;
  padding:7px 14px; font-family:var(--font-h); font-size:.7rem; letter-spacing:1.5px;
  cursor:pointer; transition:color var(--trans),border-color var(--trans),box-shadow var(--trans),background var(--trans);
}
.share-toggle:hover, .event-share.open .share-toggle {
  color:#fff; border-color:rgba(200,0,255,0.55);
  background:rgba(200,0,255,0.08);
  box-shadow:0 0 18px rgba(200,0,255,0.25);
}
.share-menu {
  position:absolute; top:calc(100% + 8px); left:0; z-index:50;
  min-width:180px; display:none; flex-direction:column;
  background:rgba(10,10,20,0.97); backdrop-filter:blur(14px);
  border:1px solid rgba(200,0,255,0.25); border-radius:10px;
  padding:6px; box-shadow:0 12px 40px rgba(0,0,0,0.5),0 0 24px rgba(200,0,255,0.12);
}
.event-share.open .share-menu { display:flex; }
.share-opt {
  display:flex; align-items:center; gap:10px;
  padding:9px 12px; border-radius:6px;
  font-size:.82rem; color:var(--muted); background:transparent; border:none;
  text-align:left; cursor:pointer; text-decoration:none; font-family:inherit;
  transition:background var(--trans),color var(--trans);
}
.share-opt:hover { background:rgba(200,0,255,0.12); color:#fff; }
.share-opt svg { flex-shrink:0; opacity:.9; }
.share-fb:hover svg   { color:#1877f2; }
.share-wa:hover svg   { color:#25d366; }
.share-x:hover svg    { color:#fff; }
.share-tg:hover svg   { color:#229ed9; }
.share-copy:hover svg { color:var(--primary); }

.share-toast {
  position:fixed; left:50%; bottom:32px; transform:translateX(-50%) translateY(20px);
  background:rgba(10,10,20,0.96); color:#fff;
  border:1px solid rgba(200,0,255,0.4); border-radius:8px;
  padding:12px 22px; font-family:var(--font-h); font-size:.75rem; letter-spacing:1.5px;
  box-shadow:0 8px 30px rgba(0,0,0,0.5),0 0 20px rgba(200,0,255,0.25);
  opacity:0; pointer-events:none; z-index:9999;
  transition:opacity .25s ease,transform .25s ease;
}
.share-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ─────────────────────────────────────────────────────────────────────────────
   GALLERY
───────────────────────────────────────────────────────────────────────────── */
.section-gallery { background:var(--bg2); }

.gallery-grid {
  columns:3;
  column-gap:12px;
}
.gallery-item {
  break-inside:avoid;
  margin-bottom:12px;
  position:relative;
  border-radius:8px;
  overflow:hidden;
  cursor:pointer;
  border:1px solid var(--border);
  transition:border-color var(--trans),transform var(--trans);
}
.gallery-item:hover { border-color:rgba(200,0,255,0.5); transform:scale(1.01); }
.gallery-item img {
  width:100%;
  display:block;
  filter:saturate(0.7);
  transition:filter var(--trans),transform var(--trans);
}
.gallery-item:hover img { filter:saturate(1); transform:scale(1.04); }
.gallery-item-video { overflow:hidden; }
.gallery-item-video video {
  width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(0.7); transition:filter var(--trans);
}
.gallery-item-video:hover video { filter:saturate(1); }
.gallery-video-badge {
  position:absolute; top:10px; left:10px;
  background:rgba(200,0,255,.75);
  color:#fff;
  font-family:var(--font-h);
  font-size:.62rem;
  letter-spacing:1px;
  padding:4px 10px;
  border-radius:20px;
  pointer-events:none;
}
.gallery-video-cap {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(transparent,rgba(0,0,0,.7));
  color:#fff; padding:20px 12px 10px;
  font-size:.85rem;
  pointer-events:none;
}
.gallery-item-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);
  display:flex; align-items:flex-end; padding:12px;
  opacity:0; transition:opacity var(--trans);
  pointer-events:none; /* let clicks pass through to parent onclick */
}
.gallery-item:hover .gallery-item-overlay { opacity:1; }
.gallery-item-overlay span { font-size:.85rem; color:var(--text); }

/* Lightbox */
.lightbox {
  display:none;
  position:fixed; inset:0;
  background:rgba(0,0,0,.93);
  backdrop-filter:blur(10px);
  z-index:2000;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.lightbox.open { display:flex; }
.lb-inner {
  position:relative;
  cursor:default;
  text-align:center;
  max-width:92vw;
}
.lb-inner img  { max-width:100%; max-height:82vh; border-radius:8px; border:1px solid rgba(200,0,255,.3); display:block; }
.lb-inner video{ max-width:92vw; max-height:82vh; border-radius:8px; border:1px solid rgba(200,0,255,.3); display:block; }
#lbCaption { color:var(--muted); margin-top:12px; font-size:.9rem; }
.lb-close {
  position:absolute; top:16px; right:20px;
  font-size:1.6rem; color:var(--text);
  background:none; border:none; cursor:pointer;
  transition:color var(--trans); z-index:1;
}
.lb-close:hover { color:var(--secondary); }

/* ─────────────────────────────────────────────────────────────────────────────
   SPONSORS
───────────────────────────────────────────────────────────────────────────── */
.sponsors-grid {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  justify-content:center;
  align-items:center;
}
.sponsor-card {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px 30px;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:10px;
  transition:var(--trans);
  min-width:140px;
}
.sponsor-card img { max-height:60px; max-width:140px; filter:grayscale(1) brightness(.7); transition:filter var(--trans); }
.sponsor-card:hover { border-color:rgba(200,0,255,.4); box-shadow:0 0 20px rgba(200,0,255,.08); }
.sponsor-card:hover img { filter:grayscale(0) brightness(1); }
.sponsor-name { font-family:var(--font-h); font-size:.8rem; letter-spacing:2px; color:var(--muted); }

/* ─────────────────────────────────────────────────────────────────────────────
   CONTACT
───────────────────────────────────────────────────────────────────────────── */
.section-contact { background:var(--bg2); }

.contact-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:60px;
  align-items:start;
}
.contact-form { display:flex; flex-direction:column; gap:16px; }
.form-group { position:relative; }
.contact-form input,
.contact-form select,
.contact-form textarea {
  width:100%;
  padding:14px 18px;
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  color:var(--text);
  font-family:var(--font-b);
  font-size:1rem;
  border-radius:6px;
  transition:border-color var(--trans),box-shadow var(--trans);
  outline:none;
  appearance:none;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color:var(--primary);
  box-shadow:0 0 12px rgba(200,0,255,.2);
}
.contact-form select option { background:#111; }
.form-msg { font-size:.9rem; min-height:24px; margin-top:4px; }
.form-msg.ok { color:#00ff88; }
.form-msg.err { color:var(--secondary); }

.contact-info h3 {
  font-family:var(--font-h);
  font-size:.9rem;
  letter-spacing:3px;
  color:var(--accent);
  margin-bottom:16px;
  text-transform:uppercase;
}
.contact-link {
  display:flex; align-items:center; gap:12px;
  padding:12px 0;
  color:var(--muted);
  border-bottom:1px solid var(--border);
  transition:color var(--trans);
  font-size:1rem;
}
.contact-link:hover { color:var(--text); }
.ci-icon { font-size:1.2rem; }

.phone-hidden {
  cursor:pointer;
  letter-spacing:.5px;
  transition:color var(--trans);
}
.phone-hidden:hover { color:var(--primary); }
.phone-reveal-hint {
  font-family:var(--font-h);
  font-size:.65rem;
  letter-spacing:2px;
  color:var(--primary);
  margin-left:8px;
  text-transform:uppercase;
  opacity:.8;
}

.social-links { display:flex; flex-direction:column; gap:10px; }
.social-btn {
  display:block;
  padding:11px 18px;
  border-radius:6px;
  font-family:var(--font-h);
  font-size:.72rem;
  letter-spacing:2px;
  text-transform:uppercase;
  text-align:center;
  border:1px solid var(--border);
  transition:var(--trans);
  color:var(--muted);
}
.social-btn:hover { color:var(--text); border-color:var(--primary); background:var(--primary-dim); }
.social-ig:hover { border-color:#e1306c; color:#e1306c; }
.social-fb:hover { border-color:#1877f2; color:#1877f2; }
.social-yt:hover { border-color:#ff0000; color:#ff0000; }
.social-sc:hover { border-color:#ff5500; color:#ff5500; }
.social-sp:hover { border-color:#1db954; color:#1db954; }
.social-mc:hover { border-color:#52aad8; color:#52aad8; }

/* ─────────────────────────────────────────────────────────────────────────────
   FOOTER
───────────────────────────────────────────────────────────────────────────── */
.site-footer { background:#000; padding:40px 0; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.footer-logo {
  font-family:var(--font-h);
  font-size:1.2rem;
  font-weight:900;
  letter-spacing:3px;
}
.footer-logo span { color:var(--primary); text-shadow:var(--glow-p); }
.footer-copy { color:var(--muted); font-size:.85rem; }
.footer-admin-link { color:#333; font-size:.75rem; transition:color var(--trans); }
.footer-admin-link:hover { color:var(--muted); }

/* ─────────────────────────────────────────────────────────────────────────────
   RANGE INPUT (global)
───────────────────────────────────────────────────────────────────────────── */
input[type=range] {
  -webkit-appearance:none;
  height:4px;
  background:rgba(255,255,255,.1);
  border-radius:2px;
  outline:none;
  cursor:pointer;
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:14px; height:14px;
  background:var(--primary);
  border-radius:50%;
  box-shadow:0 0 6px rgba(200,0,255,.6);
  transition:transform .15s;
}
input[type=range]::-webkit-slider-thumb:hover { transform:scale(1.2); }
input[type=range]::-moz-range-thumb {
  width:14px; height:14px;
  background:var(--primary);
  border-radius:50%;
  border:none;
}

/* ─────────────────────────────────────────────────────────────────────────────
   MOBILE
───────────────────────────────────────────────────────────────────────────── */
/* ── Tablet (≤900px) ── */
@media (max-width:900px) {
  .about-grid        { grid-template-columns:1fr; }
  .about-img-wrap    { max-width:300px; margin:0 auto; }
  .player-wrap       { grid-template-columns:1fr; }
  .player-main       { border-right:none; border-bottom:1px solid var(--border); }
  .player-playlist   { max-height:280px; }
  .contact-grid      { grid-template-columns:1fr; }
  .gallery-grid      { columns:2; }
  .event-card        { flex-direction:column; }
  .event-flyer       { width:100%; height:180px; border-radius:12px 12px 0 0; }
  .radio-player      { flex-wrap:wrap; gap:14px; padding:20px; }
  .radio-info        { flex:1 1 100%; order:2; }
  .radio-live-badge  { order:1; }
  .radio-controls    { order:3; flex-wrap:wrap; gap:12px; width:100%; }
}

/* ── Phone (≤640px) ── */
@media (max-width:640px) {
  html { font-size:15px; }

  /* Nav */
  .nav-links {
    position:fixed;
    top:0; left:0; right:0; bottom:0;
    flex-direction:column;
    justify-content:center;
    background:rgba(3,3,10,0.98);
    backdrop-filter:blur(20px);
    gap:24px;
    transform:translateX(100%);
    transition:transform .4s ease;
    z-index:800;
  }
  .nav-links.open    { transform:translateX(0); }
  .nav-links a       { font-size:.9rem; }
  .nav-burger        { display:flex; z-index:900; }

  /* Sections */
  .section           { padding:52px 0; }
  .section-title     { font-size:1.4rem; margin-bottom:32px; letter-spacing:2px; }
  .container         { padding:0 16px; }

  /* Hero */
  .hero-title        { font-size:clamp(2.2rem,12vw,4rem); letter-spacing:2px; }
  .hero-alias        { font-size:.65rem; letter-spacing:3px; }
  .hero-sub          { font-size:.85rem; letter-spacing:1px; }
  .hero-btns         { flex-direction:column; align-items:center; gap:10px; }
  .btn               { padding:11px 24px; font-size:.72rem; width:200px; justify-content:center; }

  /* Radio */
  .radio-player      { padding:16px; gap:12px; }
  .radio-title       { font-size:.85rem; letter-spacing:1px; }
  .radio-sub         { font-size:.8rem; }
  .radio-controls    { gap:10px; justify-content:space-between; }
  .radio-vol         { flex:1; }
  .radio-vol input[type=range] { width:100%; }
  .radio-unmute-btn  { font-size:.65rem; padding:9px 16px; letter-spacing:1px; }
  .radio-mute-btn    { font-size:.65rem; padding:9px 16px; letter-spacing:1px; }
  .mixcloud-btn      { font-size:.65rem; padding:9px 14px; }

  /* Music player */
  .player-cover      { width:100px; height:100px; }
  .player-controls   { gap:10px; }
  .ctrl-play         { width:44px; height:44px; }
  .ctrl-btn svg      { width:16px; height:16px; }

  /* Events */
  .event-info        { flex-direction:column; gap:12px; padding:16px; }
  .event-date-badge  { flex-direction:row; gap:8px; align-items:center; padding:8px 14px; width:fit-content; }
  .ev-day            { font-size:1.4rem; }
  .event-details h3  { font-size:.85rem; }

  /* Gallery */
  .gallery-grid      { columns:2; column-gap:8px; }
  .gallery-item      { margin-bottom:8px; }

  /* About */
  .about-text h3     { font-size:1.4rem; }
  .about-text p      { font-size:.95rem; }
  .about-tags span   { font-size:.6rem; padding:4px 10px; }

  /* Contact */
  .contact-form input,
  .contact-form select,
  .contact-form textarea { padding:11px 14px; font-size:.95rem; }

  /* Cookie popup */
  .cookie-popup      { padding:28px 20px; }
  .cookie-popup-title{ font-size:.85rem; }
  .cookie-btn        { padding:12px; font-size:.72rem; }

  /* Event popup */
  .event-popup-card  { border-radius:10px; }
  .event-popup-body  { padding:20px; }
  .event-popup-title { font-size:1.1rem; }
  .event-popup-actions { flex-direction:column; }

  /* Footer */
  .footer-inner      { flex-direction:column; text-align:center; gap:10px; }
  .footer-legal      { justify-content:center; }

  /* Sponsors */
  .sponsors-grid     { gap:12px; }
  .sponsor-card      { min-width:110px; padding:14px 18px; }
}

/* ── Small phones (≤400px) ── */
@media (max-width:400px) {
  html               { font-size:14px; }
  .hero-title        { font-size:2rem; }
  .gallery-grid      { columns:1; }
  .btn               { width:180px; font-size:.68rem; }
  .radio-player      { padding:12px; }
  .section           { padding:40px 0; }
}

/* ── Radio mute button (shown when playing) ──────────────────────────────── */
.radio-mute-btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 22px;
  background:rgba(255,255,255,0.05);
  color:var(--muted);
  border:1px solid var(--border);
  border-radius:30px;
  font-family:var(--font-h);
  font-size:.72rem;
  letter-spacing:2px;
  text-transform:uppercase;
  cursor:pointer;
  transition:var(--trans);
  white-space:nowrap;
}
.radio-mute-btn:hover { color:var(--secondary); border-color:var(--secondary); }

/* ── Unmute button (first visit) ─────────────────────────────────────────── */
.radio-unmute-btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 24px;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  border:none;
  border-radius:30px;
  font-family:var(--font-h);
  font-size:.78rem;
  letter-spacing:2px;
  text-transform:uppercase;
  cursor:pointer;
  animation:unmuteGlow 2s ease-in-out infinite;
  transition:opacity .4s ease;
  white-space:nowrap;
}
.radio-unmute-btn:hover { transform:scale(1.05); }
.unmute-icon { font-size:1.1rem; animation:mutePulse 1.5s ease-in-out infinite; }
@keyframes unmuteGlow {
  0%,100%{ box-shadow:0 0 15px rgba(200,0,255,.5),0 0 30px rgba(255,0,112,.3); }
  50%    { box-shadow:0 0 25px rgba(200,0,255,.8),0 0 50px rgba(255,0,112,.5); }
}
@keyframes mutePulse { 0%,100%{opacity:1;} 50%{opacity:.4;} }

/* ── Mixcloud button in radio bar ────────────────────────────────────────── */
.mixcloud-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px;
  border:1px solid #52aad8;
  color:#52aad8;
  border-radius:6px;
  font-family:var(--font-h);
  font-size:.72rem;
  letter-spacing:2px;
  text-transform:uppercase;
  transition:var(--trans);
  white-space:nowrap;
}
.mixcloud-btn:hover { background:#52aad8; color:#000; box-shadow:0 0 16px rgba(82,170,216,.5); }

/* ── Event popup ─────────────────────────────────────────────────────────── */
.event-popup-backdrop {
  position:fixed; inset:0;
  background:rgba(0,0,0,.85);
  backdrop-filter:blur(12px);
  z-index:3000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.event-popup-backdrop.open { display:flex; animation:fadeIn .4s ease; }
.event-popup-card {
  position:relative;
  background:var(--bg2);
  border:1px solid rgba(200,0,255,.4);
  border-radius:16px;
  overflow:hidden;
  max-width:520px;
  width:100%;
  box-shadow:0 0 60px rgba(200,0,255,.2), 0 0 120px rgba(200,0,255,.08);
  animation:popupIn .4s cubic-bezier(.34,1.56,.64,1);
}
@keyframes popupIn { from{transform:scale(.85);opacity:0;} to{transform:scale(1);opacity:1;} }
.event-popup-close {
  position:absolute; top:14px; right:16px;
  width:32px; height:32px;
  background:rgba(255,255,255,.07);
  border:1px solid var(--border);
  border-radius:50%;
  color:var(--text);
  font-size:1rem;
  cursor:pointer;
  z-index:1;
  transition:var(--trans);
  display:flex; align-items:center; justify-content:center;
}
.event-popup-close:hover { background:var(--secondary); border-color:var(--secondary); }
.event-popup-flyer img { width:100%; max-height:260px; object-fit:cover; display:block; }
.event-popup-body { padding:28px; }
.event-popup-label {
  font-family:var(--font-h);
  font-size:.65rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--primary);
  margin-bottom:10px;
}
.event-popup-title {
  font-family:var(--font-h);
  font-size:clamp(1.1rem,4vw,1.6rem);
  letter-spacing:2px;
  margin-bottom:16px;
  color:#fff;
}
.event-popup-meta {
  display:flex; flex-wrap:wrap; gap:12px;
  margin-bottom:16px;
  color:var(--muted);
  font-size:.95rem;
}
.event-popup-desc { color:var(--muted); font-size:.95rem; margin-bottom:20px; }
.event-popup-actions { display:flex; gap:12px; flex-wrap:wrap; }

/* ── Cookie consent popup ────────────────────────────────────────────────── */
.cookie-backdrop {
  position:fixed; inset:0;
  background:rgba(0,0,0,0.85);
  backdrop-filter:blur(16px);
  z-index:8000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.cookie-popup {
  background:var(--bg2);
  border:1px solid rgba(200,0,255,0.35);
  border-radius:16px;
  padding:44px 40px;
  max-width:500px;
  width:100%;
  text-align:center;
  box-shadow:0 0 80px rgba(200,0,255,0.15), 0 0 160px rgba(200,0,255,0.05);
  animation:popupIn .4s cubic-bezier(.34,1.56,.64,1);
}
.cookie-popup-logo {
  font-family:var(--font-h);
  font-size:1.3rem;
  font-weight:900;
  letter-spacing:3px;
  margin-bottom:20px;
  color:var(--text);
}
.cookie-popup-logo span { color:var(--primary); text-shadow:var(--glow-p); }
.cookie-popup-title {
  font-family:var(--font-h);
  font-size:1rem;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--text);
  margin-bottom:18px;
}
.cookie-popup-text {
  color:var(--muted);
  font-size:.95rem;
  line-height:1.7;
  margin-bottom:14px;
}
.cookie-popup-text strong { color:var(--text); }
.cookie-popup-legal {
  color:var(--muted);
  font-size:.82rem;
  margin-bottom:28px;
  line-height:1.6;
}
.cookie-popup-legal a { color:var(--accent); }
.cookie-popup-legal a:hover { text-decoration:underline; }
.cookie-popup-actions {
  display:flex;
  flex-direction:column;
  gap:12px;
}
.cookie-btn {
  width:100%;
  padding:14px 24px;
  border-radius:8px;
  font-family:var(--font-h);
  font-size:.78rem;
  letter-spacing:2px;
  text-transform:uppercase;
  cursor:pointer;
  border:none;
  transition:var(--trans);
}
.cookie-accept {
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  font-size:.85rem;
  padding:16px;
  box-shadow:0 0 24px rgba(200,0,255,.4);
}
.cookie-accept:hover { transform:translateY(-2px); box-shadow:0 0 36px rgba(200,0,255,.7); }
.cookie-decline {
  background:transparent;
  color:var(--muted);
  border:1px solid var(--border);
}
.cookie-decline:hover { color:var(--text); border-color:var(--muted); }

/* ── Footer legal links ──────────────────────────────────────────────────── */
.footer-legal { display:flex; gap:20px; }
.footer-legal a { color:#444; font-size:.8rem; transition:color var(--trans); }
.footer-legal a:hover { color:var(--muted); }

/* ─────────────────────────────────────────────────────────────────────────────
   SCANLINE overlay (subtle retro-futuristic effect)
───────────────────────────────────────────────────────────────────────────── */
body::after {
  content:'';
  position:fixed;
  inset:0;
  background:repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.03) 2px,
    rgba(0,0,0,0.03) 4px
  );
  pointer-events:none;
  z-index:9999;
}
