/* =============================================================================
   Vibe: ACID — RADIAL PORTAL  (rebuilt 2026-07-06)
   303 acid-house. Everything radiates from a central portal holding the flyer,
   ringed by concentric ripples over a warping lime/magenta field. Centred trippy
   flow column. Smiley-era. Effects: ring ripple, background warp, hue cycling,
   wavy title. Lime + magenta + cyan on black.
   ============================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Mono:wght@400;700&display=swap');

body.vibe-acid {
  --acid-bg:   #06080a;
  --acid-lime: #b6ff00;
  --acid-mag:  #ff17c3;
  --acid-cyan: #00e5ff;
  --acid-ink:  #eaffea;

  --evt-text: #eaffea;
  --evt-border: rgba(182,255,0,0.30);
  --evt-input-bg: rgba(182,255,0,0.05);
  --event-accent: #b6ff00;
  --vx-pay-ink: #06080a;

  background:
    linear-gradient(180deg, rgba(6,8,10,0.78) 0%, rgba(6,8,10,0.52) 45%, rgba(6,8,10,0.95) 100%),
    url('/assets/uploads/studio/acid-bg.png') center top / cover no-repeat fixed,
    var(--acid-bg);
  color: var(--acid-ink);
  font-family: 'Space Mono', ui-monospace, monospace;
  overflow-x: hidden;
}
/* Warping acid field */
.vibe-acid .acid-warp {
  position: fixed; inset: -30%; z-index: 0; pointer-events: none; opacity: 0.5;
  background:
    radial-gradient(40vmax 40vmax at 30% 30%, rgba(182,255,0,0.28), transparent 60%),
    radial-gradient(44vmax 44vmax at 72% 68%, rgba(255,23,195,0.24), transparent 60%),
    conic-gradient(from 0deg at 50% 50%, rgba(0,229,255,0.10), transparent 30%, rgba(182,255,0,0.10) 60%, transparent 90%);
  filter: blur(20px);
  animation: acid-warp 18s ease-in-out infinite, acid-hue 14s linear infinite;
}
@keyframes acid-warp {
  0%,100% { transform: scale(1) translate(0,0) rotate(0deg); }
  50% { transform: scale(1.15) translate(3%,-3%) rotate(8deg); }
}
@keyframes acid-hue { to { filter: blur(20px) hue-rotate(360deg); } }
body.vibe-acid .event-acid { position: relative; z-index: 1; }

/* ---- Stage ---- */
.vibe-acid .acid-stage {
  text-align: center;
  padding: clamp(28px, 6vw, 70px) clamp(16px,4vw,24px) clamp(10px,2vw,20px);
  width: min(760px, 94vw); margin: 0 auto;
}

/* Portal */
.vibe-acid .acid-portal {
  position: relative; width: min(70vw, 380px); aspect-ratio: 1; margin: 0 auto clamp(20px,4vw,34px);
  display: grid; place-items: center;
}
.vibe-acid .acid-ring {
  position: absolute; inset: 0; border-radius: 50%;
  border: 2px solid var(--acid-lime); opacity: 0;
  animation: acid-ripple 3.2s ease-out infinite;
}
.vibe-acid .acid-ring--2 { border-color: var(--acid-mag); animation-delay: 1.06s; }
.vibe-acid .acid-ring--3 { border-color: var(--acid-cyan); animation-delay: 2.13s; }
@keyframes acid-ripple {
  0% { transform: scale(0.62); opacity: 0.9; }
  100% { transform: scale(1.35); opacity: 0; }
}
.vibe-acid .acid-portal__img {
  position: relative; z-index: 2; width: 74%; aspect-ratio: 1; border-radius: 50%; overflow: hidden;
  border: 3px solid var(--acid-lime);
  box-shadow: 0 0 40px rgba(182,255,0,0.5), inset 0 0 30px rgba(255,23,195,0.25);
  background: #0a0e0a;
}
.vibe-acid .acid-portal__img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(1.3) contrast(1.08); }
.vibe-acid .acid-portal--noimg .acid-portal__img { display: grid; place-items: center; color: var(--acid-lime); }
.vibe-acid .acid-smiley { width: 46px; height: 46px; color: var(--acid-lime); }

/* Title (wavy) */
.vibe-acid .acid-date {
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; font-size: clamp(11px,1.6vw,13px);
  color: var(--acid-lime); text-shadow: 0 0 12px rgba(182,255,0,0.6);
}
.vibe-acid .acid-title {
  position: relative; font-family: 'Archivo Black', sans-serif; font-weight: 400;
  font-size: clamp(38px, 9vw, 92px); line-height: 0.98; letter-spacing: -0.02em; text-transform: uppercase;
  margin: clamp(8px,2vw,14px) 0 10px; color: #fff;
  text-shadow: 3px 0 var(--acid-mag), -3px 0 var(--acid-cyan), 0 0 30px rgba(182,255,0,0.4);
  animation: acid-wave 4s ease-in-out infinite;
}
@keyframes acid-wave { 0%,100% { transform: skewX(0deg); } 25% { transform: skewX(-3deg); } 75% { transform: skewX(3deg); } }
.vibe-acid .acid-venue { font-size: clamp(15px,2vw,19px); font-weight: 700; margin: 0; color: var(--acid-ink); }
.vibe-acid .acid-presented { font-size: 12.5px; color: #9fdca0; margin: 8px 0 0; }
.vibe-acid .acid-presented a { color: var(--acid-lime); }

/* ---- Flow ---- */
.vibe-acid .acid-flow {
  position: relative;
  z-index: 1;
  width: min(760px, 94vw); margin: 0 auto; text-align: center;
  padding: clamp(28px,4vw,48px) clamp(20px,4vw,40px) clamp(90px, 12vw, 130px);
}
/* Legibility mask: a soft dark scrim BEHIND the whole text column (pseudo-element
   so it never clips the text). Fades in at the top, runs to the bottom of the
   page, and stays translucent so the psychedelic backdrop still shows through. */
.vibe-acid .acid-flow::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(6,8,10,0) 0%, rgba(6,8,10,0.62) 8%, rgba(6,8,10,0.68) 100%);
  -webkit-backdrop-filter: blur(7px);
          backdrop-filter: blur(7px);
  border-radius: 28px 28px 0 0;
}
.vibe-acid .acid-block { margin-top: clamp(28px,5vw,44px); }
.vibe-acid .acid-kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; font-size: clamp(12px,1.6vw,14px);
  color: var(--acid-lime); margin-bottom: clamp(14px,2.5vw,20px);
}
.vibe-acid .acid-kicker .acid-smiley { width: 22px; height: 22px; }

.vibe-acid .acid-names { list-style: none; margin: 0; padding: 0; }
.vibe-acid .acid-names li {
  font-family: 'Archivo Black', sans-serif; text-transform: uppercase; font-size: clamp(20px,3.6vw,34px);
  line-height: 1.15; padding: 5px 0; color: var(--acid-ink);
}
.vibe-acid .acid-names li:first-child { color: var(--acid-lime); text-shadow: 0 0 16px rgba(182,255,0,0.5); }
.vibe-acid .acid-names-flat { font-family: 'Archivo Black', sans-serif; text-transform: uppercase; font-size: clamp(20px,3.4vw,28px); color: var(--acid-lime); }

.vibe-acid .acid-card {
  border: 2px solid rgba(182,255,0,0.35); border-radius: 20px;
  background: rgba(182,255,0,0.04); padding: clamp(20px,3vw,30px);
}
.vibe-acid .acid-prose {
  font-size: clamp(15px,2vw,17px); line-height: 1.8; color: #d4ffd4; margin: 0;
  white-space: pre-line; overflow-wrap: anywhere; word-wrap: break-word;
}
.vibe-acid .acid-prose a { color: var(--acid-lime); word-break: break-all; }
.vibe-acid .acid-blurb {
  margin-top: clamp(22px,3vw,30px); font-style: italic; color: var(--acid-mag);
  font-size: clamp(15px,2vw,18px); line-height: 1.6; overflow-wrap: anywhere;
  text-shadow: 0 0 14px rgba(255,23,195,0.4);
}

/* ---- Ticket panel ---- */
.vibe-acid .acid-panel {
  text-align: left; border: 2px solid var(--acid-lime); border-radius: 22px;
  background: linear-gradient(180deg, rgba(182,255,0,0.06), rgba(6,8,10,0.85));
  padding: clamp(20px,4vw,32px);
  box-shadow: 0 0 50px -10px rgba(182,255,0,0.4), inset 0 0 0 1px rgba(255,23,195,0.12);
}
.vibe-acid .acid-panel .acid-kicker { justify-content: flex-start; }
.vibe-acid .vx-tickets__head { display: none; }
.vibe-acid .vx-tier { border-bottom: 1px solid rgba(182,255,0,0.22); }
.vibe-acid .vx-tier__name { font-family: 'Archivo Black', sans-serif; text-transform: uppercase; font-size: clamp(16px,2.2vw,20px); color: var(--acid-ink); }
.vibe-acid .vx-tier__desc { color: #9fdca0; }
.vibe-acid .vx-tier__price { color: var(--acid-lime); font-weight: 700; }
.vibe-acid .vx-tier__low { color: var(--acid-mag); }
.vibe-acid .vx-qty { border-radius: 10px; border-color: var(--acid-lime); background: rgba(0,0,0,0.4); color: var(--acid-ink); }
.vibe-acid .vx-field label { color: #9fdca0; text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; }
.vibe-acid .vx-field input { border-radius: 10px; border-color: rgba(182,255,0,0.35); background: rgba(0,0,0,0.35); color: var(--acid-ink); }
.vibe-acid .vx-field input:focus { outline-color: var(--acid-mag); }
.vibe-acid .vx-help, .vibe-acid .vx-secure { color: #9fdca0; }
.vibe-acid .vx-pay {
  background: var(--acid-lime); color: #06080a; border-radius: 999px;
  font-family: 'Archivo Black', sans-serif; text-transform: uppercase; letter-spacing: 0.04em;
  box-shadow: 0 0 34px -6px rgba(182,255,0,0.7);
}
.vibe-acid .vx-pay:hover { background: #d2ff4d; }
.vibe-acid .vx-closed { border: 2px solid var(--acid-lime); border-radius: 14px; background: rgba(182,255,0,0.05); color: var(--acid-ink); }

/* Sticky */
.vibe-acid .acid-sticky {
  position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 40; display: none;
  text-decoration: none; font-family: 'Archivo Black', sans-serif; text-transform: uppercase; font-size: 14px;
  color: #06080a; background: var(--acid-lime); padding: 13px 30px; border-radius: 999px;
  box-shadow: 0 0 34px -6px rgba(182,255,0,0.7);
}
@media (max-width: 768px) { .vibe-acid .acid-sticky { display: inline-block; } }
@media (prefers-reduced-motion: reduce) {
  .vibe-acid .acid-warp, .vibe-acid .acid-ring, .vibe-acid .acid-title { animation: none; }
  .vibe-acid .acid-ring { opacity: 0.3; }
}
