:root {
  --neon-cyan: #00f5ff;
  --neon-magenta: #ff00cc;
  --neon-lime: #b3ff00;
  --neon-orange: #ff6600;
  --deep-blue: #050a1a;
  --mid-blue: #0a1535;
  --card-bg: rgba(5, 15, 40, 0.85);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--deep-blue);
  color: #fff;
  font-family: 'Exo 2', sans-serif;
  overflow-x: hidden;
  cursor: none;
}

/* CURSOR */
.cursor { width:20px;height:20px;border:2px solid var(--neon-cyan);border-radius:50%;position:fixed;pointer-events:none;z-index:99999;transition:transform .1s ease,background .2s ease;transform:translate(-50%,-50%); }
.cursor-dot { width:6px;height:6px;background:var(--neon-magenta);border-radius:50%;position:fixed;pointer-events:none;z-index:99999;transform:translate(-50%,-50%); }

/* CANVAS BG */
#bgCanvas { position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none; }

body::before {
  content:'';position:fixed;inset:0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none;z-index:1;opacity:0.5;
}

.container { max-width:1200px;margin:0 auto;padding:0 24px; }
.section { position:relative;z-index:2; }

/* NAV */
nav { position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to bottom,rgba(5,10,26,.95) 0%,transparent 100%);backdrop-filter:blur(8px);border-bottom:1px solid rgba(0,245,255,.1); }
.nav-logo { display:flex;align-items:center;gap:10px;text-decoration:none; }
.nav-logo img { height:48px;width:auto;filter:drop-shadow(0 0 8px rgba(255,0,204,.6)) drop-shadow(0 0 16px rgba(0,245,255,.4));transition:filter .3s,transform .3s; }
.nav-logo:hover img { filter:drop-shadow(0 0 14px rgba(255,0,204,.9)) drop-shadow(0 0 24px rgba(0,245,255,.7));transform:scale(1.06); }
.nav-logo-text { font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:5px;background:linear-gradient(135deg,var(--neon-cyan),var(--neon-magenta));-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1; }
.nav-links { display:flex;gap:32px;list-style:none; }
.nav-links a { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.7);text-decoration:none;transition:color .3s,text-shadow .3s; }
.nav-links a:hover { color:var(--neon-cyan);text-shadow:0 0 20px var(--neon-cyan); }
.nav-cta { background:linear-gradient(135deg,var(--neon-magenta),var(--neon-cyan));border:none;padding:10px 24px;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:2px;text-transform:uppercase;color:var(--deep-blue);border-radius:2px;cursor:pointer;transition:transform .2s,box-shadow .3s;text-decoration:none; }
.nav-cta:hover { transform:scale(1.05);box-shadow:0 0 30px rgba(255,0,204,.5); }

/* HERO */
#hero { min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;padding-top:80px; }
.hero-content { position:relative;z-index:3; }
.hero-eyebrow { font-family:'Rajdhani',sans-serif;font-weight:300;font-size:.9rem;letter-spacing:8px;text-transform:uppercase;color:var(--neon-cyan);margin-bottom:16px;animation:fadeInUp .8s ease both; }
.hero-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(5rem,16vw,14rem);line-height:.85;letter-spacing:6px;animation:fadeInUp .8s .2s ease both; }
.hero-title .line1 { display:block;background:linear-gradient(135deg,#fff 30%,var(--neon-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
.hero-title .line2 { display:block;background:linear-gradient(135deg,var(--neon-magenta),var(--neon-orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
.hero-subtitle { font-size:1.1rem;letter-spacing:6px;font-weight:300;color:rgba(255,255,255,.55);text-transform:uppercase;margin:20px 0 40px;animation:fadeInUp .8s .4s ease both; }
.hero-subtitle em { font-style:normal;color:var(--neon-lime);font-weight:700; }
.hero-btns { display:flex;gap:16px;justify-content:center;flex-wrap:wrap;animation:fadeInUp .8s .6s ease both; }

/* BUTTONS */
.btn-primary { background:linear-gradient(135deg,var(--neon-magenta),var(--neon-cyan));color:var(--deep-blue);font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:3px;padding:16px 48px;border:none;border-radius:2px;cursor:pointer;text-decoration:none;transition:transform .2s,box-shadow .3s;display:inline-block; }
.btn-primary:hover { transform:translateY(-3px) scale(1.03);box-shadow:0 10px 40px rgba(255,0,204,.5),0 0 80px rgba(0,245,255,.2); }
.btn-outline { background:transparent;color:#fff;font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:3px;padding:14px 48px;border:2px solid rgba(255,255,255,.3);border-radius:2px;cursor:pointer;text-decoration:none;transition:border-color .3s,color .3s;display:inline-block; }
.btn-outline:hover { border-color:var(--neon-cyan);color:var(--neon-cyan); }

/* NEON DIVIDER */
.neon-divider { height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan),var(--neon-magenta),transparent);margin:0;position:relative;z-index:2; }

/* SECTION COMMON */
.section { padding:100px 0; }
.section-tag { font-family:'Rajdhani',sans-serif;font-size:.85rem;letter-spacing:4px;color:var(--neon-cyan);text-transform:uppercase;margin-bottom:8px; }
.section-header { margin-bottom:60px; }
.gallery-header { margin-bottom:60px; }
.section-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,5.5rem);line-height:.9;letter-spacing:3px; }
.section-title .accent { background:linear-gradient(135deg,var(--neon-magenta),var(--neon-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
.accent { background:linear-gradient(135deg,var(--neon-magenta),var(--neon-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }

/* EVENTS GRID */
.events-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:32px; }
.event-card { background:var(--card-bg);border:1px solid rgba(0,245,255,.15);border-radius:4px;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s; }
.event-card:hover { transform:translateY(-8px);border-color:var(--neon-cyan);box-shadow:0 20px 60px rgba(0,245,255,.15); }
.event-card-img { position:relative;overflow:hidden;height:200px; }
.event-card-img img { width:100%;height:100%;object-fit:cover;transition:transform .5s; }
.event-card:hover .event-card-img img { transform:scale(1.05); }
.event-card-body { padding:24px; }
.event-tag { display:inline-block;font-family:'Rajdhani',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--neon-magenta);border:1px solid var(--neon-magenta);padding:3px 10px;border-radius:2px;margin-bottom:12px; }
.event-name { font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:2px;line-height:1;margin-bottom:16px; }
.event-meta { display:flex;flex-direction:column;gap:6px;margin-bottom:20px; }
.event-meta span { font-size:.85rem;color:rgba(255,255,255,.6);letter-spacing:1px; }
.ticket-tiers { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px; }
.ticket-tier { background:rgba(0,245,255,.05);border:1px solid rgba(0,245,255,.2);border-radius:4px;padding:10px;text-align:center; }
.ticket-tier.featured { background:rgba(255,0,204,.1);border-color:var(--neon-magenta); }
.tier-label { display:block;font-size:.65rem;letter-spacing:2px;color:rgba(255,255,255,.5);text-transform:uppercase;margin-bottom:4px; }
.tier-price { display:block;font-family:'Bebas Neue',sans-serif;font-size:1.3rem;color:var(--neon-cyan); }
.ticket-tier.featured .tier-price { color:var(--neon-magenta); }
.event-card-footer { display:flex;align-items:center;justify-content:space-between; }
.event-status { font-size:.7rem;letter-spacing:2px;font-weight:700;text-transform:uppercase; }
.status-on-sale { color:var(--neon-lime); }
.status-selling-fast { color:var(--neon-orange); }
.status-sold-out { color:rgba(255,255,255,.4); }
.status-coming-soon { color:var(--neon-cyan); }
.btn-ticket { background:linear-gradient(135deg,var(--neon-magenta),var(--neon-cyan));color:var(--deep-blue);font-family:'Bebas Neue',sans-serif;font-size:.9rem;letter-spacing:2px;padding:10px 20px;border-radius:2px;text-decoration:none;transition:transform .2s,box-shadow .3s;display:inline-block; }
.btn-ticket:hover { transform:scale(1.05);box-shadow:0 5px 20px rgba(255,0,204,.4); }
.btn-sold-out { background:rgba(255,255,255,.1);color:rgba(255,255,255,.3);cursor:not-allowed; }
.no-events { color:rgba(255,255,255,.4);font-size:1rem;letter-spacing:2px;padding:40px 0; }

/* BLOG GRID */
.blog-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px; }
.blog-card { background:var(--card-bg);border:1px solid rgba(0,245,255,.1);border-radius:4px;overflow:hidden;transition:transform .3s,border-color .3s; }
.blog-card:hover { transform:translateY(-6px);border-color:rgba(0,245,255,.3); }
.blog-card-img { height:180px;overflow:hidden; }
.blog-card-img img { width:100%;height:100%;object-fit:cover;transition:transform .5s; }
.blog-card:hover .blog-card-img img { transform:scale(1.05); }
.blog-card-body { padding:20px; }
.blog-date { font-size:.75rem;color:var(--neon-cyan);letter-spacing:2px;margin-bottom:8px; }
.blog-title { font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:2px;margin-bottom:10px;line-height:1.1; }
.blog-excerpt { font-size:.85rem;color:rgba(255,255,255,.6);line-height:1.6;margin-bottom:14px; }
.blog-read-more { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:3px;color:var(--neon-magenta);text-decoration:none;transition:color .2s; }
.blog-read-more:hover { color:var(--neon-cyan); }

/* GALLERY */
.gallery-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:4px; }
.gallery-item { position:relative;overflow:hidden;aspect-ratio:1;cursor:pointer; }
.gallery-item img { width:100%;height:100%;object-fit:cover;transition:transform .5s; }
.gallery-item:hover img { transform:scale(1.08); }
.gallery-item-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(5,10,26,.8) 0%,transparent 60%);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:16px; }
.gallery-item:hover .gallery-item-overlay { opacity:1; }
.gallery-caption { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:3px;text-transform:uppercase;color:var(--neon-cyan); }

/* VIBES */
.vibes-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px; }
.vibe-card { background:var(--card-bg);border:1px solid rgba(255,0,204,.2);border-radius:4px;padding:32px 24px;text-align:center;transition:transform .3s,border-color .3s,box-shadow .3s; }
.vibe-card:hover { transform:translateY(-6px);border-color:var(--neon-magenta);box-shadow:0 10px 40px rgba(255,0,204,.15); }
.vibe-icon { font-size:2.5rem;display:block;margin-bottom:16px; }
.vibe-title { font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:2px;margin-bottom:12px;color:var(--neon-cyan); }
.vibe-text { font-size:.9rem;color:rgba(255,255,255,.6);line-height:1.7; }

/* SOCIAL */
#social { padding:80px 0; }
.social-links { display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:40px; }
.social-btn { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:3px;text-transform:uppercase;color:#fff;text-decoration:none;padding:14px 32px;border:1px solid rgba(255,255,255,.2);border-radius:2px;transition:border-color .3s,color .3s,box-shadow .3s; }
.social-btn:hover { border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:0 0 20px rgba(0,245,255,.2); }

/* FOOTER */
footer { background:rgba(3,7,18,.95);border-top:1px solid rgba(0,245,255,.1);padding:60px 40px 30px;position:relative;z-index:2; }
.footer-grid { max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;margin-bottom:48px; }
.footer-brand-name { font-family:'Bebas Neue',sans-serif;font-size:3rem;letter-spacing:6px;background:linear-gradient(135deg,var(--neon-cyan),var(--neon-magenta));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
.footer-brand-sub { font-family:'Rajdhani',sans-serif;font-size:.75rem;letter-spacing:4px;color:rgba(255,255,255,.4);text-transform:uppercase;margin-bottom:16px; }
.footer-brand-text { font-size:.85rem;color:rgba(255,255,255,.4);line-height:1.8; }
.footer-col-title { font-family:'Rajdhani',sans-serif;font-size:.75rem;letter-spacing:4px;text-transform:uppercase;color:var(--neon-cyan);margin-bottom:16px; }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:10px; }
.footer-links a { font-size:.85rem;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s; }
.footer-links a:hover { color:var(--neon-cyan); }
.footer-bottom { max-width:1200px;margin:0 auto;padding-top:24px;border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;align-items:center; }
.footer-bottom span { font-size:.75rem;color:rgba(255,255,255,.3);letter-spacing:2px; }

/* REVEAL ANIMATIONS */
.reveal { opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }

/* ANIMATIONS */
@keyframes fadeInUp {
  from { opacity:0;transform:translateY(30px); }
  to { opacity:1;transform:translateY(0); }
}

/* RESPONSIVE */
@media (max-width:768px) {
  nav { padding:12px 20px; }
  .nav-links { display:none; }
  .events-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr; }
  .blog-grid { grid-template-columns:1fr; }
  .vibes-grid { grid-template-columns:repeat(2,1fr); }
}