/* =============================================================================
   Vibe: DECO — ART DECO SUNBURST  (rebuilt 2026-07-06)
   A symmetric Gatsby proscenium: stepped-gold frame, mirrored chevron pilasters,
   a radiating sunburst medallion behind a centred monogram, a fan divider. Onyx
   + gold, Poiret One geometric display. Everything mirrored about the centre.
   Effects: rotating sunburst, twinkle, chevron shimmer, gold-foil title.
   ============================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poiret+One&family=Jost:wght@300;400;500;600&display=swap');

body.vibe-deco {
  --onyx:   #0a0a0d;
  --onyx-2: #121218;
  --gold:   #d9b95c;
  --gold-l: #f4e3a6;
  --gold-d: #9a7f34;
  --ink:    #f3ecd8;

  --evt-text: #f3ecd8;
  --evt-border: rgba(217,185,92,0.30);
  --evt-input-bg: rgba(217,185,92,0.06);
  --event-accent: #d9b95c;
  --vx-pay-ink: #0a0a0d;

  background: radial-gradient(120% 80% at 50% 0%, #16161d 0%, var(--onyx) 62%);
  color: var(--ink);
  font-family: 'Jost', system-ui, sans-serif;
  overflow-x: hidden;
}
body.vibe-deco .site-header { background: rgba(10,10,13,0.92) !important; border-bottom: 1px solid rgba(217,185,92,0.22); }

/* ---- Proscenium frame ---- */
.vibe-deco .dco-frame {
  position: relative;
  max-width: 1040px; margin: 0 auto;
  padding: clamp(26px, 5vw, 60px) clamp(20px, 5vw, 70px) clamp(70px, 10vw, 120px);
}
.vibe-deco .dco-frame::before {
  content: ''; position: absolute; inset: clamp(10px,2vw,20px);
  border: 2px solid var(--gold-d);
  box-shadow: inset 0 0 0 4px var(--onyx), inset 0 0 0 6px rgba(217,185,92,0.5),
              inset 0 0 0 8px var(--onyx), inset 0 0 0 9px rgba(217,185,92,0.25);
  pointer-events: none;
}

/* Mirrored chevron pilasters down the sides */
.vibe-deco .dco-pilaster {
  position: absolute; top: 6%; bottom: 6%; width: 16px; z-index: 1; opacity: 0.5;
  background: repeating-linear-gradient(0deg, transparent 0 14px,
    rgba(217,185,92,0.55) 14px 15px, transparent 15px 16px);
}
.vibe-deco .dco-pilaster::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(180deg, transparent 0 26px, rgba(217,185,92,0.4) 26px 30px);
  -webkit-mask: repeating-linear-gradient(180deg, #000 0 15px, transparent 15px 30px);
          mask: repeating-linear-gradient(180deg, #000 0 15px, transparent 15px 30px);
  animation: dco-shim 5s linear infinite;
}
@keyframes dco-shim { to { background-position: 0 60px; } }
.vibe-deco .dco-pilaster--l { left: clamp(14px,3vw,30px); }
.vibe-deco .dco-pilaster--r { right: clamp(14px,3vw,30px); }

.vibe-deco .dco-wrap { position: relative; z-index: 2; text-align: center; }

/* ---- Sunburst medallion + monogram ---- */
.vibe-deco .dco-medallion {
  position: relative; width: clamp(120px, 22vw, 190px); aspect-ratio: 1; margin: 0 auto clamp(10px,2vw,18px);
  display: grid; place-items: center;
}
.vibe-deco .dco-sun {
  position: absolute; inset: 0; border-radius: 50%;
  background: repeating-conic-gradient(from 0deg,
    var(--gold) 0deg 4deg, transparent 4deg 11deg);
  -webkit-mask: radial-gradient(circle, transparent 26%, #000 27%, #000 100%);
          mask: radial-gradient(circle, transparent 26%, #000 27%, #000 100%);
  opacity: 0.85; animation: dco-spin 26s linear infinite;
}
.vibe-deco .dco-medallion::after {
  content: ''; position: absolute; inset: 20%; border-radius: 50%;
  border: 2px solid var(--gold); box-shadow: 0 0 24px rgba(217,185,92,0.5);
}
@keyframes dco-spin { to { transform: rotate(360deg); } }
.vibe-deco .dco-mono {
  position: relative; z-index: 2; font-family: 'Poiret One', cursive;
  font-size: clamp(34px, 6vw, 58px); color: var(--gold-l);
  text-shadow: 0 0 18px rgba(217,185,92,0.6);
}

/* ---- Kicker / title / fan ---- */
.vibe-deco .dco-kicker {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  font-weight: 500; letter-spacing: 0.4em; text-transform: uppercase;
  font-size: clamp(10px,1.4vw,12px); color: var(--gold); margin-bottom: clamp(10px,2vw,16px);
}
.vibe-deco .dco-kicker span { color: var(--gold-d); animation: dco-tw 3s ease-in-out infinite; }
@keyframes dco-tw { 0%,100% { opacity: 0.5; } 50% { opacity: 1; } }
.vibe-deco .dco-title {
  font-family: 'Poiret One', cursive; font-weight: 400;
  font-size: clamp(40px, 9vw, 96px); line-height: 1.02; letter-spacing: 0.04em;
  text-transform: uppercase; margin: 0;
  background: linear-gradient(100deg, var(--gold-d), var(--gold-l) 45%, var(--gold) 60%, var(--gold-d));
  background-size: 220% auto; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: dco-foil 9s linear infinite;
}
@keyframes dco-foil { to { background-position: 220% center; } }

.vibe-deco .dco-fan {
  display: flex; align-items: flex-end; justify-content: center; gap: 4px; height: 26px;
  margin: clamp(14px,2.5vw,20px) auto;
}
.vibe-deco .dco-fan i {
  width: 3px; background: linear-gradient(var(--gold), transparent); transform-origin: bottom;
}
.vibe-deco .dco-fan i:nth-child(1),.vibe-deco .dco-fan i:nth-child(7) { height: 40%; }
.vibe-deco .dco-fan i:nth-child(2),.vibe-deco .dco-fan i:nth-child(6) { height: 62%; }
.vibe-deco .dco-fan i:nth-child(3),.vibe-deco .dco-fan i:nth-child(5) { height: 82%; }
.vibe-deco .dco-fan i:nth-child(4) { height: 100%; }

.vibe-deco .dco-date { font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; font-size: clamp(11px,1.5vw,13px); color: var(--gold-l); }
.vibe-deco .dco-venue { font-size: clamp(15px,2vw,19px); font-weight: 500; margin: 8px 0 0; }
.vibe-deco .dco-presented { font-size: 12.5px; letter-spacing: 0.06em; color: #b9a877; margin: 6px 0 0; }
.vibe-deco .dco-presented a { color: var(--gold); text-decoration: none; border-bottom: 1px solid rgba(217,185,92,0.4); }

/* ---- Flyer: wide framed band (deco corners), fills the width ---- */
.vibe-deco .dco-photo {
  position: relative; margin: clamp(26px,4vw,40px) auto 0; width: 100%;
  padding: 10px; background: linear-gradient(135deg, var(--gold-d), var(--gold) 50%, var(--gold-d));
  box-shadow: 0 30px 70px -34px rgba(0,0,0,0.8);
}
.vibe-deco .dco-photo img { display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; background: var(--onyx); }
.vibe-deco .dco-photo__corner { position: absolute; width: 20px; height: 20px; border: 2px solid var(--onyx); z-index: 2; }
.vibe-deco .dco-photo__corner--tl { top: 3px; left: 3px; border-right: 0; border-bottom: 0; }
.vibe-deco .dco-photo__corner--tr { top: 3px; right: 3px; border-left: 0; border-bottom: 0; }
.vibe-deco .dco-photo__corner--bl { bottom: 3px; left: 3px; border-right: 0; border-top: 0; }
.vibe-deco .dco-photo__corner--br { bottom: 3px; right: 3px; border-left: 0; border-top: 0; }

/* ---- Section labels (symmetric) ---- */
.vibe-deco .dco-label {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  margin: clamp(30px,5vw,46px) 0 clamp(16px,2.5vw,22px);
  font-weight: 500; letter-spacing: 0.34em; text-transform: uppercase;
  font-size: clamp(11px,1.5vw,13px); color: var(--gold);
}
.vibe-deco .dco-label::before, .vibe-deco .dco-label::after {
  content: ''; width: clamp(30px,10vw,90px); height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold));
}
.vibe-deco .dco-label::after { background: linear-gradient(90deg, var(--gold), transparent); }

.vibe-deco .dco-bill { list-style: none; margin: 0; padding: 0; }
.vibe-deco .dco-bill li {
  font-family: 'Poiret One', cursive; text-transform: uppercase; letter-spacing: 0.06em;
  font-size: clamp(20px,3.4vw,34px); line-height: 1.2; color: var(--ink); padding: 5px 0;
}
.vibe-deco .dco-bill li:first-child { color: var(--gold-l); }
.vibe-deco .dco-lineup { font-family: 'Poiret One', cursive; text-transform: uppercase; font-size: clamp(20px,3.4vw,30px); }

.vibe-deco .dco-prose {
  font-size: clamp(15px,2vw,17px); line-height: 1.85; color: #e0d5b6; margin: 0 auto; max-width: 60ch;
  white-space: pre-line; overflow-wrap: anywhere; word-wrap: break-word;
}
.vibe-deco .dco-prose a { color: var(--gold); word-break: break-all; }
.vibe-deco .dco-blurb {
  font-family: 'Poiret One', cursive; font-size: clamp(18px,2.6vw,24px); color: var(--gold-l);
  margin: clamp(24px,4vw,34px) auto 0; max-width: 46ch; letter-spacing: 0.02em; overflow-wrap: anywhere;
}

/* ---- Admission (checkout) ---- */
.vibe-deco .dco-panel {
  margin-top: clamp(30px,5vw,46px); text-align: left;
  border: 1px solid rgba(217,185,92,0.34);
  background: linear-gradient(180deg, rgba(217,185,92,0.06), rgba(18,18,24,0.7));
  padding: clamp(20px,4vw,34px);
  box-shadow: inset 0 0 0 1px rgba(217,185,92,0.08);
}
.vibe-deco .dco-panel .dco-label { margin-top: 0; }
.vibe-deco .vx-tickets__head { display: none; }
.vibe-deco .vx-tier { border-bottom: 1px solid rgba(217,185,92,0.22); }
.vibe-deco .vx-tier__name { font-family: 'Poiret One', cursive; letter-spacing: 0.04em; text-transform: uppercase; font-size: clamp(18px,2.4vw,22px); color: var(--ink); }
.vibe-deco .vx-tier__desc, .vibe-deco .vx-tier__price { color: #b9a877; }
.vibe-deco .vx-tier__low { color: var(--gold-l); }
.vibe-deco .vx-qty { border-radius: 0; border-color: rgba(217,185,92,0.4); background: rgba(0,0,0,0.35); color: var(--ink); }
.vibe-deco .vx-field label { color: #b9a877; letter-spacing: 0.1em; text-transform: uppercase; font-size: 11px; }
.vibe-deco .vx-field input { border-radius: 0; border-color: rgba(217,185,92,0.3); background: rgba(0,0,0,0.3); color: var(--ink); }
.vibe-deco .vx-field input:focus { outline-color: var(--gold); }
.vibe-deco .vx-help, .vibe-deco .vx-secure { color: #b9a877; }
.vibe-deco .vx-pay {
  background: linear-gradient(100deg, var(--gold-d), var(--gold-l), var(--gold-d)); background-size: 200% auto;
  color: var(--onyx); border-radius: 0; font-family: 'Poiret One', cursive; letter-spacing: 0.14em;
  text-transform: uppercase; font-size: clamp(15px,1.9vw,17px); animation: dco-foil 7s linear infinite;
}
.vibe-deco .vx-closed { border: 1px solid rgba(217,185,92,0.4); border-radius: 0; background: rgba(217,185,92,0.06); color: var(--ink); }

/* ---- Sticky (mobile) ---- */
.vibe-deco .dco-sticky {
  position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 40; display: none;
  text-decoration: none; font-family: 'Poiret One', cursive; letter-spacing: 0.14em; text-transform: uppercase;
  font-size: 15px; color: var(--onyx);
  background: linear-gradient(100deg, var(--gold-d), var(--gold-l), var(--gold-d)); background-size: 200% auto;
  padding: 13px 32px; box-shadow: 0 12px 30px -10px rgba(217,185,92,0.6); animation: dco-foil 7s linear infinite;
}
@media (max-width: 768px) {
  .vibe-deco .dco-pilaster { display: none; }
  .vibe-deco .dco-sticky { display: inline-block; }
}
@media (prefers-reduced-motion: reduce) {
  .vibe-deco .dco-sun, .vibe-deco .dco-title, .vibe-deco .dco-pilaster::before,
  .vibe-deco .dco-kicker span, .vibe-deco .vx-pay, .vibe-deco .dco-sticky { animation: none; }
  .vibe-deco .dco-title { background-position: 0 center; }
}
