body { box-sizing: border-box; }

* {
  scrollbar-width: thin;
  scrollbar-color: #333 #000;
}

.font-mono-raw { font-family: 'Space Mono', monospace; }
.font-display { font-family: 'Bebas Neue', sans-serif; }

.noise-bg { position: relative; }
.noise-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  opacity: 0.03;
  pointer-events: none;
  z-index: 1;
}

.poster-item {
  filter: grayscale(100%);
  transition: filter 0.3s ease, transform 0.3s ease;
}
.poster-item:hover {
  filter: grayscale(0%);
  transform: scale(1.05);
}

.glitch-text { position: relative; }
.glitch-text::before,
.glitch-text::after {
  content: attr(data-text);
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
}
.glitch-text::before {
  animation: glitch-1 0.3s infinite linear alternate-reverse;
  color: #fff;
  z-index: -1;
}
.glitch-text::after {
  animation: glitch-2 0.3s infinite linear alternate-reverse;
  color: #888;
  z-index: -2;
}

@keyframes glitch-1 {
  0% { clip-path: inset(20% 0 60% 0); transform: translate(-2px, 2px); }
  20% { clip-path: inset(10% 0 70% 0); transform: translate(2px, -2px); }
  40% { clip-path: inset(50% 0 30% 0); transform: translate(-2px, 2px); }
  60% { clip-path: inset(70% 0 10% 0); transform: translate(2px, -2px); }
  80% { clip-path: inset(30% 0 50% 0); transform: translate(-2px, 2px); }
  100% { clip-path: inset(80% 0 5% 0); transform: translate(2px, -2px); }
}

@keyframes glitch-2 {
  0% { clip-path: inset(60% 0 20% 0); transform: translate(2px, -2px); }
  20% { clip-path: inset(70% 0 10% 0); transform: translate(-2px, 2px); }
  40% { clip-path: inset(30% 0 50% 0); transform: translate(2px, -2px); }
  60% { clip-path: inset(10% 0 70% 0); transform: translate(-2px, 2px); }
  80% { clip-path: inset(50% 0 30% 0); transform: translate(2px, -2px); }
  100% { clip-path: inset(5% 0 80% 0); transform: translate(-2px, 2px); }
}

.menu-open { transform: translateX(0) !important; }

.section-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, #333, transparent);
}

/* Lightbox */
.lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.95);
  z-index: 100;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}
.lightbox.active { display: flex; }
.lightbox img {
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
}

.event-item:nth-child(even) {
  transform: translateX(12px);
}
.event-item:nth-child(odd) {
  transform: translateX(-12px);
}

/* =========================
   PUNK SOCIAL BUTTONS
   ========================= */

.punk-btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 0.9rem 1.6rem;
  font-family:'Bebas Neue', sans-serif;
  font-size: 0.95rem;
  letter-spacing: .35em;
  text-transform:uppercase;
  color:#fff;
  text-decoration:none;

  border: 2px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.06);
  box-shadow: 0 0 0 1px rgba(0,0,0,.6) inset;
  transform: rotate(-0.6deg);
  transition: transform .15s ease, border-color .2s ease, background .2s ease;
}

.punk-btn:hover{
  transform: translateY(-2px) rotate(0.6deg);
  border-color: rgba(255,255,255,.65);
  background: rgba(255,255,255,.10);
}

.punk-ig{ border-style:dashed; }
.punk-fb{ border-style:solid; }
