/* ══════════════════════════════════════════
   SPLASHHAUS — Complete Stylesheet
   Colors: #f4f1ea · #1c1917 · #ff2e88
   Fonts:  Anton (headings) · Inter (body)
══════════════════════════════════════════ */

/* Text selection: light pink on cream, saturated pink on dark */
::selection      { background: rgba(255, 46, 136, 0.2); color: #1c1917; }
::-moz-selection { background: rgba(255, 46, 136, 0.2); color: #1c1917; }

.section--dark ::selection, .hero ::selection, .nav__drawer ::selection,
.usps .usp--dark ::selection, .usps .usp--pink ::selection,
.usps .usp--taupe ::selection, .usps .usp--espresso ::selection,
.artworks-section ::selection, .footer ::selection, .cta-banner ::selection {
  background: rgba(255, 46, 136, 0.75);
  color: #f4f1ea;
}
.section--dark ::-moz-selection, .hero ::-moz-selection, .nav__drawer ::-moz-selection,
.usps .usp--dark ::-moz-selection, .usps .usp--pink ::-moz-selection,
.usps .usp--taupe ::-moz-selection, .usps .usp--espresso ::-moz-selection,
.artworks-section ::-moz-selection, .footer ::-moz-selection, .cta-banner ::-moz-selection {
  background: rgba(255, 46, 136, 0.75);
  color: #f4f1ea;
}

:root {
  --cream:        #f4f1ea;
  --cream-card:   #ede9df;
  --dark:         #1c1917;
  --dark-soft:    #2d2926;
  --pink:         #ff2e88;
  --pink-hover:   #e0257a;
  --pink-muted:   rgba(255, 46, 136, 0.1);
  --pink-border:  rgba(255, 46, 136, 0.3);

  --text-dark:    #1c1917;
  --text-muted:   #6b6560;
  --text-light:   #f4f1ea;
  --text-light-m: rgba(244,241,234,0.55);

  --border-dark:  rgba(28,25,23,0.1);
  --border-light: rgba(244,241,234,0.1);

  --font-head: 'Anton', sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;

  --ease:    cubic-bezier(0.4, 0, 0.2, 1);
  --t:       0.3s var(--ease);
  --t-slow:  0.6s var(--ease);

  --container: 1220px;
  --py:        7rem;
  --r:         14px;
  --r-lg:      22px;
}

/* ── RESET ─────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--text-dark);
  line-height: 1.6;
  overflow-x: hidden;
}

img  { display: block; max-width: 100%; }
a    { color: inherit; text-decoration: none; }
ul   { list-style: none; }
button { border: none; background: none; cursor: pointer; font: inherit; color: inherit; }

/* ── CUSTOM CURSOR ──────────────────────── */
.cursor {
  position: fixed;
  width: 10px; height: 10px;
  background: var(--pink);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%,-50%);
  transition: width .2s, height .2s, opacity .2s;
  opacity: 0;
  mix-blend-mode: multiply;
}
.cursor.active { opacity: 1; }
.cursor.big    { width: 36px; height: 36px; opacity: 0.5; }

/* ── TYPOGRAPHY ─────────────────────────── */
h1, h2, h3 {
  font-family: var(--font-head);
  text-transform: uppercase;
  line-height: 1.0;
  letter-spacing: 0.01em;
  font-weight: 400;
}
h4 { font-family: var(--font-body); font-size: 1.1rem; font-weight: 600; }

h1 { font-size: clamp(3rem, 9vw, 7.5rem); }
h2 { font-size: clamp(2.2rem, 5vw, 4rem); }
h3 { font-size: clamp(1.8rem, 3vw, 2.6rem); }

p  { line-height: 1.8; font-weight: 400; color: var(--text-muted); }

/* ── LAYOUT ─────────────────────────────── */
.container   { max-width: var(--container); margin: 0 auto; padding: 0 1.5rem; }
.section     { padding: var(--py) 0; }
.section--dark { background: var(--dark); }

.section-header {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 4.5rem;
}
.section--dark .section-header h2 { color: var(--text-light); }
.section-header h2 { margin-top: .5rem; }

/* ── EYEBROW ────────────────────────────── */
.eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--pink);
}
.eyebrow--light { color: rgba(244,241,234,.5); }

/* ── BUTTONS ────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .875rem 2rem;
  border-radius: 6px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .9rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: background .18s cubic-bezier(.4,0,.2,1),
              border-color .18s cubic-bezier(.4,0,.2,1),
              box-shadow .18s cubic-bezier(.4,0,.2,1),
              transform .18s cubic-bezier(.4,0,.2,1),
              color .18s cubic-bezier(.4,0,.2,1);
  white-space: nowrap;
  border: 2px solid transparent;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

/* Fast shimmer sweep on hover */
.btn::before {
  content: '';
  position: absolute;
  top: 0; left: -110%;
  width: 80%;
  height: 100%;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.22) 50%, transparent 100%);
  transform: skewX(-18deg);
  pointer-events: none;
  transition: left .32s cubic-bezier(.4,0,.2,1);
}
.btn:hover::before { left: 130%; }

.btn--pink {
  background: var(--pink); color: #f4f1ea; border-color: var(--pink);
}
.btn--pink:hover {
  background: var(--pink-hover); border-color: var(--pink-hover);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(255,46,136,.4);
}

.btn--dark {
  background: var(--dark); color: var(--cream); border-color: var(--dark);
}
.btn--dark:hover {
  background: var(--dark-soft);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(28,25,23,.25);
}

.btn--cream {
  background: var(--cream); color: var(--dark); border-color: var(--cream);
}
.btn--cream:hover { background: #fff; transform: translateY(-2px); }

.btn--ghost {
  background: transparent; color: var(--cream);
  border-color: rgba(244,241,234,.35);
}
.btn--ghost:hover { border-color: var(--cream); background: rgba(244,241,234,.08); }

.btn--voucher {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  background: #1c1917;
  color: #c9a255;
  border: 2px solid #c9a255;
  border-radius: var(--r-lg);
  width: 100%;
  min-height: 390px;
  padding: 0 1.75rem;
  box-shadow: 0 0 0 1px rgba(201,162,85,.12), 0 4px 20px rgba(0,0,0,.5);
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
  /* echte Ausschnitte — transparent durch den Button */
  -webkit-mask-image:
    radial-gradient(circle at 0% 60%, transparent 14px, black 14px),
    radial-gradient(circle at 100% 60%, transparent 14px, black 14px);
  -webkit-mask-size: 100% 100%, 100% 100%;
  -webkit-mask-composite: destination-in;
  mask-image:
    radial-gradient(circle at 0% 60%, transparent 14px, black 14px),
    radial-gradient(circle at 100% 60%, transparent 14px, black 14px);
  mask-size: 100% 100%, 100% 100%;
  mask-composite: intersect;
}

/* blattgold text */
.btn--voucher span {
  position: absolute;
  top: 30%;
  left: 1.75rem;
  right: 1.75rem;
  transform: translateY(-50%);
  background: linear-gradient(135deg, #f8eea0 0%, #c9a255 22%, #f5d978 45%, #a07828 68%, #e8cc70 85%, #f8eea0 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-family: var(--font-head);
  font-size: clamp(2.4rem, 3.5vw, 2.6rem);
  letter-spacing: .05em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}



/* barcode */
.btn--voucher::after {
  content: '';
  position: absolute;
  left: 14%;
  right: 14%;
  top: calc(60% + 16px);
  bottom: 14%;
  background: repeating-linear-gradient(
    90deg,
    #c9a255 0px,  #c9a255 3px,
    transparent   3px,  transparent  6px,
    #c9a255 6px,  #c9a255 9px,
    transparent   9px,  transparent  13px,
    #c9a255 13px, #c9a255 17px,
    transparent   17px, transparent  20px,
    #c9a255 20px, #c9a255 22px,
    transparent   22px, transparent  26px,
    #c9a255 26px, #c9a255 31px,
    transparent   31px, transparent  34px,
    #c9a255 34px, #c9a255 36px,
    transparent   36px, transparent  40px
  );
  pointer-events: none;
}

.btn--voucher:hover {
  background: #3a2820;
  border-color: #f0cc70;
  transform: translateY(-4px) scale(1.03);
  box-shadow:
    0 0 0 1px rgba(240,204,112,.4),
    0 10px 32px rgba(0,0,0,.55),
    0 0 22px rgba(201,162,85,.4);
  animation: gold-glow 1s ease-in-out infinite alternate;
}

@keyframes gold-glow {
  from {
    box-shadow:
      0 0 0 1px rgba(240,204,112,.35),
      0 10px 32px rgba(0,0,0,.55),
      0 0 12px rgba(201,162,85,.3);
  }
  to {
    box-shadow:
      0 0 0 1px rgba(240,204,112,.6),
      0 10px 32px rgba(0,0,0,.55),
      0 0 36px rgba(201,162,85,.6);
  }
}

/* Hero pink button — stronger shimmer + cream colour-flip on hover */
.hero__actions .btn--pink::before {
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.42) 50%, transparent 100%);
}
.hero__actions .btn--pink:hover {
  background: var(--cream);
  color: var(--dark);
  border-color: var(--cream);
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(244,241,234,.22);
}

.btn--outline-cream {
  background: transparent; color: var(--cream);
  border-color: rgba(244,241,234,.3);
}
.btn--outline-cream:hover { border-color: var(--cream); background: rgba(244,241,234,.08); }

.btn--ghost-drawer {
  background: transparent; color: rgba(244,241,234,.55);
  border-color: rgba(244,241,234,.15);
}
.btn--ghost-drawer:hover { color: var(--cream); border-color: rgba(244,241,234,.4); }

.btn--lg   { padding: 1.1rem 2.5rem; font-size: .95rem; }
.btn--full { width: 100%; }

/* ── NAV BACKDROP ───────────────────────── */
.nav__backdrop {
  position: fixed; inset: 0;
  background: rgba(28,25,23,.6);
  z-index: 150;
  opacity: 0; pointer-events: none;
  transition: opacity .4s;
  backdrop-filter: blur(4px);
}
.nav__backdrop.visible { opacity: 1; pointer-events: auto; }

/* ── NAVIGATION ─────────────────────────── */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 160; }

.nav__bar {
  display: flex;
  align-items: center;
  gap: 2rem;
  max-width: var(--container);
  margin: 0 auto;
  padding: 1.25rem 1.5rem;
  transition: background var(--t), box-shadow var(--t);
}

.nav.scrolled .nav__bar {
  background: rgba(244,241,234,.96);
  backdrop-filter: blur(20px);
  box-shadow: 0 4px 30px rgba(28,25,23,.1);
}

/* unscrolled: white text over dark hero */
.nav:not(.scrolled) .nav__logo     { color: var(--cream); }
.nav:not(.scrolled) .nav__links a  { color: rgba(244,241,234,.8); }
.nav:not(.scrolled) .nav__burger span { background: var(--cream); }

/* scrolled: dark text on cream bg */
.nav.scrolled .nav__logo    { color: var(--dark); }
.nav.scrolled .nav__links a { color: rgba(28,25,23,.7); }
.nav.scrolled .nav__burger span { background: var(--dark); }

.nav__logo {
  flex-shrink: 0;
  line-height: 0;
}

.nav__logo-img {
  height: 36px;
  width: auto;
  display: block;
  transition: opacity .25s ease;
}

/* dark logo: visible when not scrolled, hidden when scrolled */
.nav__logo-img--dark  { display: block; }
.nav__logo-img--light { display: none; }

.nav.scrolled .nav__logo-img--dark  { display: none; }
.nav.scrolled .nav__logo-img--light { display: block; }

/* drawer logo */
.nav__drawer-logo .nav__logo-img { height: 32px; }

.nav__links {
  display: flex;
  gap: 1.75rem;
  margin-left: auto;
}
.nav__links a {
  font-size: .85rem;
  font-weight: 500;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: color var(--t);
}
.nav.scrolled .nav__links a:hover { color: var(--pink); }

.nav__cta { margin-left: 1rem; padding: .6rem 1.4rem; font-size: .82rem; }

.nav__burger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 6px;
  margin-left: 1rem;
}
.nav__burger span {
  display: block; width: 24px; height: 2px;
  border-radius: 2px; transition: var(--t);
}
.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); }

/* ── SLIDE DRAWER ───────────────────────── */
.nav__drawer {
  position: fixed;
  top: 0; left: 0;
  width: min(85vw, 380px);
  height: 100dvh;
  height: 100vh;
  background: var(--dark);
  z-index: 200;
  transform: translateX(-100%);
  transition: transform .45s cubic-bezier(.4,0,.2,1);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding: 1.75rem;
  gap: 2rem;
}
.nav__drawer.open { transform: translateX(0); }

.nav__drawer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav__drawer-logo {
  font-family: var(--font-head);
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--cream);
}
.nav__drawer-close {
  font-size: 1.25rem;
  color: rgba(244,241,234,.5);
  padding: .5rem;
  transition: color var(--t);
}
.nav__drawer-close:hover { color: var(--cream); }

.nav__drawer-nav {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--border-light);
  padding-top: 1.5rem;
}
.nav__drawer-link {
  display: block;
  padding: .9rem 0;
  font-family: var(--font-head);
  font-size: 2.4rem;
  text-transform: uppercase;
  color: var(--cream);
  border-bottom: 1px solid rgba(244,241,234,.07);
  transition: color var(--t), padding-left var(--t);
  letter-spacing: .02em;
}
.nav__drawer-link:hover { color: var(--pink); padding-left: .6rem; }

.nav__drawer-tickets {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  border-top: 1px solid var(--border-light);
  padding-top: 1.5rem;
}
.drawer-label {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(244,241,234,.3);
  margin-bottom: .2rem;
}

.nav__drawer-foot {
  margin-top: auto;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-light);
}
.nav__drawer-foot a {
  font-size: .88rem;
  color: rgba(244,241,234,.35);
  transition: color var(--t);
}
.nav__drawer-foot a:hover { color: var(--cream); }

/* ── HERO ───────────────────────────────── */
.hero {
  position: relative;
  height: 100svh;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--cream);
}

.hero__media {
  position: absolute; inset: 0; z-index: 0;
  background: #06030a;
}
.hero__paint-sim {
  position: absolute; inset: 0;
  background: #06030a;
  overflow: hidden;
}
.hero__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(88px);
  will-change: transform;
}
.hero__blob--1 {
  width: 72vw; height: 72vw;
  background: radial-gradient(circle, rgba(255,46,136,.72) 0%, transparent 65%);
  top: -18%; left: -12%;
  animation: hblob1 14s ease-in-out infinite;
}
.hero__blob--2 {
  width: 60vw; height: 60vw;
  background: radial-gradient(circle, rgba(124,0,48,.88) 0%, transparent 65%);
  bottom: -18%; right: 2%;
  animation: hblob2 19s ease-in-out infinite;
}
.hero__blob--3 {
  width: 46vw; height: 46vw;
  background: radial-gradient(circle, rgba(245,197,24,.42) 0%, transparent 65%);
  top: 20%; right: -8%;
  animation: hblob3 11s ease-in-out infinite;
}
.hero__blob--4 {
  width: 36vw; height: 36vw;
  background: radial-gradient(circle, rgba(43,31,26,.95) 0%, transparent 65%);
  top: 45%; left: 28%;
  animation: hblob4 17s ease-in-out infinite;
}
.hero__blob--5 {
  width: 30vw; height: 30vw;
  background: radial-gradient(circle, rgba(37,99,235,.28) 0%, transparent 65%);
  bottom: 5%; left: 10%;
  animation: hblob1 22s ease-in-out infinite reverse;
}
@keyframes hblob1 {
  0%,100% { transform: translate(0,0) scale(1); }
  30%     { transform: translate(14%,20%) scale(1.1); }
  65%     { transform: translate(-7%,9%) scale(0.93); }
}
@keyframes hblob2 {
  0%,100% { transform: translate(0,0) scale(1); }
  35%     { transform: translate(-16%,-13%) scale(1.08); }
  70%     { transform: translate(11%,-21%) scale(0.95); }
}
@keyframes hblob3 {
  0%,100% { transform: translate(0,0) scale(1); }
  40%     { transform: translate(-22%,16%) scale(1.14); }
  75%     { transform: translate(9%,24%) scale(0.89); }
}
@keyframes hblob4 {
  0%,100% { transform: translate(0,0) scale(1); }
  25%     { transform: translate(19%,-11%) scale(1.07); }
  55%     { transform: translate(-13%,15%) scale(1.15); }
  80%     { transform: translate(6%,-19%) scale(0.96); }
}

.hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(6,3,10,.55) 0%,
    rgba(6,3,10,.25) 45%,
    rgba(6,3,10,.7) 100%
  );
}

.hero__content {
  position: relative; z-index: 2;
  text-align: center;
  max-width: 1000px;
  padding: 0 1.5rem;
}

.hero__eyebrow {
  display: inline-block;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(244,241,234,.7);
  margin-bottom: 1.5rem;
  padding: .4rem 1.1rem;
  border: 1px solid rgba(244,241,234,.2);
  border-radius: 100px;
}

.hero__kicker {
  font-family: var(--font-body);
  font-size: clamp(.85rem, 1.6vw, 1.1rem);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #ff2e88;
  margin-bottom: 1.4rem;
  display: inline-block;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: .35em .9em;
  border-radius: 4px;
  text-shadow:
    0 0 4px #ff2e88,
    0 0 12px #ff2e88,
    0 0 28px #ff2e88,
    0 0 60px #ff2e88,
    0 0 100px #ff2e88,
    0 0 160px #ff2e88;

}

.neon-stable {
  text-shadow:
    0 0 4px #ff2e88,
    0 0 12px #ff2e88,
    0 0 28px #ff2e88,
    0 0 65px #ff2e88,
    0 0 115px #ff2e88;
  animation: neon-stable 8s infinite;
}

.neon-glitch {
  animation: neon-glitch 3s infinite;
}

@keyframes neon-stable {
  0%, 100% {
    text-shadow: 0 0 4px #ff2e88, 0 0 12px #ff2e88, 0 0 28px #ff2e88, 0 0 65px #ff2e88, 0 0 115px #ff2e88;
    opacity: 1;
  }
  50% {
    text-shadow: 0 0 5px #ff2e88, 0 0 14px #ff2e88, 0 0 32px #ff2e88, 0 0 70px #ff2e88, 0 0 120px #ff2e88;
    opacity: 1;
  }
}

@keyframes neon-glitch {
  0%, 100% {
    text-shadow: 0 0 4px #ff2e88, 0 0 12px #ff2e88, 0 0 28px #ff2e88, 0 0 60px #ff2e88, 0 0 110px #ff2e88;
    opacity: 1;
  }
  15% {
    text-shadow: 0 0 2px #ff2e88, 0 0 5px #ff2e88;
    opacity: .4;
  }
  16% {
    text-shadow: 0 0 4px #ff2e88, 0 0 12px #ff2e88, 0 0 28px #ff2e88, 0 0 60px #ff2e88;
    opacity: 1;
  }
  17% {
    text-shadow: none;
    opacity: .15;
  }
  18.5% {
    text-shadow: 0 0 3px #ff2e88, 0 0 8px #ff2e88, 0 0 20px #ff2e88;
    opacity: .7;
  }
  19% {
    text-shadow: none;
    opacity: .1;
  }
  20% {
    text-shadow: 0 0 4px #ff2e88, 0 0 12px #ff2e88, 0 0 28px #ff2e88, 0 0 60px #ff2e88, 0 0 110px #ff2e88;
    opacity: 1;
  }
  55% {
    text-shadow: 0 0 4px #ff2e88, 0 0 12px #ff2e88, 0 0 28px #ff2e88, 0 0 60px #ff2e88, 0 0 110px #ff2e88;
    opacity: 1;
  }
  56% {
    text-shadow: 0 0 2px #ff2e88, 0 0 6px #ff2e88;
    opacity: .35;
  }
  57% {
    text-shadow: 0 0 4px #ff2e88, 0 0 12px #ff2e88, 0 0 28px #ff2e88, 0 0 60px #ff2e88, 0 0 110px #ff2e88;
    opacity: 1;
  }
}

.neon-dim {
  animation: neon-dim-flicker .9s infinite;
}

@keyframes neon-dim-flicker {
  0%   { text-shadow: 0 0 3px #ff2e88, 0 0 8px #ff2e88, 0 0 18px #ff2e88; opacity: .65; }
  10%  { text-shadow: 0 0 2px #ff2e88, 0 0 5px #ff2e88; opacity: .45; }
  20%  { text-shadow: 0 0 4px #ff2e88, 0 0 10px #ff2e88, 0 0 22px #ff2e88; opacity: .7; }
  30%  { text-shadow: 0 0 1px #ff2e88, 0 0 4px #ff2e88; opacity: .35; }
  40%  { text-shadow: 0 0 3px #ff2e88, 0 0 9px #ff2e88, 0 0 20px #ff2e88; opacity: .6; }
  50%  { text-shadow: 0 0 2px #ff2e88, 0 0 6px #ff2e88, 0 0 14px #ff2e88; opacity: .55; }
  60%  { text-shadow: 0 0 1px #ff2e88, 0 0 3px #ff2e88; opacity: .3; }
  70%  { text-shadow: 0 0 4px #ff2e88, 0 0 10px #ff2e88, 0 0 24px #ff2e88; opacity: .7; }
  80%  { text-shadow: 0 0 2px #ff2e88, 0 0 5px #ff2e88; opacity: .4; }
  90%  { text-shadow: 0 0 3px #ff2e88, 0 0 8px #ff2e88, 0 0 18px #ff2e88; opacity: .6; }
  100% { text-shadow: 0 0 3px #ff2e88, 0 0 8px #ff2e88, 0 0 18px #ff2e88; opacity: .65; }
}

.hero__headline {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 1.5rem;
  line-height: .95;
}
.hero__word {
  display: block;
  overflow: hidden;
  animation: wordReveal .8s var(--ease) both;
  text-shadow: 0 2px 32px rgba(0,0,0,.9), 0 0 80px rgba(0,0,0,.6);
}
.hero__word:nth-child(1) { animation-delay: .05s; }
.hero__word:nth-child(2) { animation-delay: .2s; }
.hero__word:nth-child(3) { animation-delay: .35s; }
.hero__word--pink { color: var(--pink); }

@keyframes wordReveal {
  from { transform: translateY(105%); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* ── HERO FEATURES STRIP ───────────────── */
.hero__feats {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .85rem;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 2.75rem;
  flex-wrap: wrap;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: .55em 1.2em;
  border-radius: 4px;
}

.hero__feat {
  color: rgba(244,241,234,.38);
  transition: color .65s ease, text-shadow .65s ease;
  cursor: default;
  text-shadow: 0 1px 12px rgba(0,0,0,.8);
}
.hero__feat.hl {
  color: #ff2e88;
  text-shadow: 0 0 22px rgba(255,46,136,.55), 0 1px 12px rgba(0,0,0,.8);
}

.hero__feat-sep {
  color: rgba(255,46,136,.3);
  animation: sep-pulse 2.8s ease-in-out infinite;
  display: inline-block;
}
@keyframes sep-pulse {
  0%, 100% { opacity: .2; transform: scale(1); }
  50%       { opacity: .9; transform: scale(1.4); color: rgba(255,46,136,.8); }
}

.hero__actions {
  display: flex; gap: 1rem;
  justify-content: center; flex-wrap: wrap;
}

/* hero scroll indicator removed */

/* ── PROOF BAND ─────────────────────────── */
.proof-band {
  background: #0a0710;
  border-top: 1px solid rgba(255,46,136,.18);
  border-bottom: 1px solid rgba(255,46,136,.1);
  padding: 4rem 0;
}
.proof-band__inner {
  display: flex;
  align-items: center;
  gap: 4rem;
}
.proof-band__left {
  flex-shrink: 0;
}
.proof-band__num {
  font-family: var(--font-head);
  font-size: clamp(5rem, 11vw, 9rem);
  line-height: 1;
  color: var(--pink);
  display: block;
  text-shadow: 0 0 60px rgba(255,46,136,.55), 0 0 120px rgba(255,46,136,.25);
}
.proof-band__right {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.proof-band__text {
  font-size: clamp(.95rem, 1.6vw, 1.15rem);
  color: rgba(244,241,234,.65);
  line-height: 1.7;
  max-width: 520px;
}
.proof-band__text strong {
  color: var(--cream);
  font-weight: 600;
}
.proof-band__bar-wrap {
  position: relative;
  width: 100%;
  height: 8px;
  background: rgba(244,241,234,.08);
  border-radius: 100px;
  overflow: visible;
}
.proof-band__bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #ff2e88 0%, rgba(255,46,136,.55) 100%);
  border-radius: 100px;
  transition: width 3.2s cubic-bezier(.22,1,.36,1);
  box-shadow: 0 0 16px rgba(255,46,136,.55);
}
.proof-band__source {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(244,241,234,.22);
}

@media (max-width: 700px) {
  .proof-band__inner { flex-direction: column; gap: 2rem; text-align: center; }
  .proof-band__text { max-width: none; }
  .proof-band__bar-wrap { max-width: 100%; }
}

/* ── USPS (3 GROSSE BLÖCKE) ─────────────── */
.usps {
  display: grid;
  grid-template-columns: repeat(4,1fr);
}

.usp {
  position: relative;
  padding: 5rem 3.5rem 4rem;
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  /* scroll-reveal start state */
  opacity: 0;
  transform: translateY(38px);
  transition: opacity .7s var(--ease), transform .7s var(--ease), filter .4s var(--ease);
}
.usp.in-view  { opacity: 1; transform: none; }
.usp:hover    { filter: brightness(1.06); }
/* Stagger for desktop (all 4 enter view at once) */
.usps .usp:nth-child(2) { transition-delay: .11s; }
.usps .usp:nth-child(3) { transition-delay: .22s; }
.usps .usp:nth-child(4) { transition-delay: .33s; }

.usp--dark    { background: var(--dark); }
.usp--pink    { background: #ff2e88; }
.usp--cream   { background: #f4f1ea; outline: 1px solid rgba(28,25,23,.08); }
.usp--taupe   { background: #8c8178; }
.usp--espresso { background: #2b1f1a; }

/* Abstract SVG illustration */
.usp__bg {
  position: absolute;
  top: 0; left: 0;
  width: 62%;
  height: auto;
  pointer-events: none;
  user-select: none;
  transition: transform .7s var(--ease);
}
.usp__bg--right { left: auto; right: 0; }
.usp__bg--sm    { width: 44%; }
.usp__bg svg { width: 100%; height: auto; display: block; }
.usp:hover .usp__bg { transform: scale(1.05) translateY(-6px); }

.usp--dark     .usp__bg { color: rgba(244,241,234,.1); }
.usp--pink     .usp__bg { color: rgba(244,241,234,.14); }
.usp--cream    .usp__bg { color: rgba(28,25,23,.07); }
.usp--taupe    .usp__bg { color: rgba(244,241,234,.13); }
.usp--espresso .usp__bg { color: rgba(244,241,234,.11); }

.usp__body { position: relative; z-index: 1; }

.usp__kicker {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: .4rem;
}
.usp--dark     .usp__kicker { color: rgba(244,241,234,.4); }
.usp--pink     .usp__kicker { color: rgba(244,241,234,.7); }
.usp--cream    .usp__kicker { color: var(--pink); }
.usp--taupe    .usp__kicker { color: rgba(244,241,234,.55); }
.usp--espresso .usp__kicker { color: rgba(244,241,234,.4); }

.usp__title {
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 1.1rem;
}
.usp--dark     .usp__title { color: var(--cream); }
.usp--pink     .usp__title { color: #f4f1ea; }
.usp--cream    .usp__title { color: var(--dark); }
.usp--taupe    .usp__title { color: #f4f1ea; }
.usp--espresso .usp__title { color: var(--cream); }

.usp__desc {
  font-size: .9rem;
  line-height: 1.7;
  max-width: 290px;
}
.usp--dark     .usp__desc { color: rgba(244,241,234,.5); }
.usp--pink     .usp__desc { color: rgba(244,241,234,.8); }
.usp--cream    .usp__desc { color: var(--text-muted); }
.usp--taupe    .usp__desc { color: rgba(244,241,234,.72); }
.usp--espresso .usp__desc { color: rgba(244,241,234,.5); }


/* Hover accent bar */
.usp::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 4px;
  background: var(--pink);
  transition: width .5s var(--ease);
}
.usp--pink::after { background: rgba(244,241,234,.6); }
.usp:hover::after { width: 100%; }

/* ── TICKETS ────────────────────────────── */
.tickets { background: var(--cream); }
.tickets .section-header h2 { color: var(--dark); }

/* Carousel */
.carousel { position: relative; }

.carousel__viewport { overflow: hidden; }

.carousel__track {
  display: flex;
  gap: 1.25rem;
  transition: transform .45s var(--ease);
}

.ticket-card {
  flex: 0 0 calc((100% - 3 * 1.25rem) / 4);
  min-width: 0;
  background: var(--cream-card);
  border: 2px solid var(--border-dark);
  border-radius: var(--r-lg);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  transition: border-color var(--t), transform var(--t), box-shadow var(--t);
  overflow: hidden;
  transform-style: preserve-3d;
  will-change: transform;
}
.ticket-card:hover {
  border-color: var(--pink);
  box-shadow: 0 24px 56px rgba(255,46,136,.15);
}

.ticket-card--featured {
  background: var(--dark);
  border-color: var(--pink);
}
.ticket-card--featured:hover {
  box-shadow: 0 24px 56px rgba(255,46,136,.3);
}

.ticket-card__img {
  position: relative;
  height: 210px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}

.ticket-card__badge {
  position: absolute;
  top: 12px; left: 50%;
  transform: translateX(-50%);
  background: var(--pink);
  color: #f4f1ea;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .3rem 1.1rem;
  border-radius: 100px;
  white-space: nowrap;
  z-index: 2;
}

.ticket-card__body {
  padding: 1.5rem 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .85rem;
  flex: 1;
}

.ticket-card__top { }

.ticket-card__label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--pink);
  margin-bottom: .75rem;
}
.ticket-card--featured .ticket-card__label { color: rgba(244,241,234,.5); }

.ticket-card__price { display: flex; align-items: baseline; gap: .3rem; }

.ticket-card__amount {
  font-family: var(--font-head);
  font-size: 3.2rem;
  line-height: 1;
  color: var(--dark);
}
.ticket-card--featured .ticket-card__amount { color: var(--cream); }

.ticket-card__amount-text {
  font-family: var(--font-head);
  font-size: 1.8rem;
  text-transform: uppercase;
  color: var(--dark);
  line-height: 1.2;
}

.ticket-card__unit {
  font-size: .82rem;
  color: var(--text-muted);
  font-weight: 500;
}
.ticket-card--featured .ticket-card__unit { color: rgba(244,241,234,.4); }


/* Carousel controls */
.carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 2rem;
}

.tickets__voucher {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
  padding: 0 1.5rem;
}
/* Wrapper gibt dem Button eine feste Breite, trägt die Abrisskante */
.voucher-wrap {
  position: relative;
  width: calc((100% - 3 * 1.25rem) / 4);
  max-width: 280px;
  min-width: 200px;
}
/* Abrisskante von Kerbe zu Kerbe */
.voucher-wrap::before {
  content: '';
  position: absolute;
  left: 14px; right: 14px;
  top: 60%;
  border-top: 1.5px dashed rgba(201,162,85,.6);
  pointer-events: none;
  z-index: 1;
}

.carousel__btn {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 2px solid var(--dark);
  color: var(--dark);
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--t);
}
.carousel__btn:hover { background: var(--dark); color: var(--cream); }
.carousel__btn:disabled { opacity: .3; cursor: default; }

.carousel__dots { display: flex; gap: .5rem; }
.carousel__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(28,25,23,.2);
  border: none;
  cursor: pointer;
  transition: background var(--t), transform var(--t);
}
.carousel__dot.active { background: var(--pink); transform: scale(1.3); }

/* ── SESSIONS BAND ──────────────────────── */
.sessions-band {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  background: var(--dark);
  padding: 3.5rem 0 3rem;
  margin-top: 2.5rem;
  margin-bottom: 0;
  overflow: hidden;
}
.sessions-band::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 80px;
  background: linear-gradient(to right, transparent, var(--dark));
  pointer-events: none;
  z-index: 2;
}

.sessions-band__head {
  text-align: center;
  margin-bottom: 2.25rem;
  padding: 0 1.5rem;
}
.sessions-band__head .eyebrow { color: rgba(244,241,234,.38); }
.sessions-band__title {
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 4vw, 3rem);
  color: var(--cream);
  margin-top: .4rem;
  letter-spacing: .02em;
}

.sessions-grid {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 2rem 0.5rem;
  cursor: grab;
  user-select: none;
}
.sessions-grid::-webkit-scrollbar { display: none; }
.sessions-grid.is-dragging { cursor: grabbing; scroll-snap-type: none; }

.session-card {
  flex: 0 0 210px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  padding: 1.75rem 1.5rem 1.5rem;
  border: 1.5px solid rgba(244,241,234,.09);
  border-radius: var(--r-lg);
  text-decoration: none;
  transition: border-color var(--t), background var(--t), transform var(--t);
  background: rgba(244,241,234,.03);
  color: var(--cream);
}
.session-card:not(.session-card--sold):hover {
  border-color: var(--pink);
  background: rgba(255,46,136,.07);
  transform: translateY(-4px);
}

.session-card__date {
  display: flex;
  align-items: baseline;
  gap: .4rem;
}
.session-card__num {
  font-family: var(--font-head);
  font-size: 3.75rem;
  line-height: 1;
  color: var(--pink);
}
.session-card__month {
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(244,241,234,.4);
  align-self: flex-end;
  margin-bottom: .2rem;
}

.session-card__meta {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.session-card__dow {
  font-size: .72rem;
  color: rgba(244,241,234,.4);
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.session-card__time {
  font-size: 1rem;
  font-weight: 600;
  color: var(--cream);
}

.session-card__avail {
  display: inline-flex;
  align-self: flex-start;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pink);
  background: rgba(255,46,136,.12);
  padding: .22rem .75rem;
  border-radius: 100px;
}
.session-card__avail--sold,
.session-card--sold .session-card__avail {
  color: rgba(244,241,234,.4);
  background: rgba(244,241,234,.06);
}
.session-card--sold {
  opacity: .45;
  pointer-events: none;
}

.session-card__cta {
  font-size: .78rem;
  font-weight: 600;
  color: rgba(244,241,234,.3);
  letter-spacing: .05em;
  margin-top: auto;
  transition: color var(--t);
}
.session-card:hover .session-card__cta { color: var(--pink); }

.sessions-more {
  display: block;
  text-align: center;
  margin-top: 2rem;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .05em;
  color: var(--pink);
  text-decoration: none;
  transition: opacity var(--t);
}
.sessions-more:hover { opacity: .7; }

/* ── GALLERY ────────────────────────────── */
.galerie .section-header h2 { color: var(--text-light); }

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-auto-rows: 260px;
  gap: 4px;
}
.gallery-item { position: relative; overflow: hidden; cursor: zoom-in; }
.gallery-item--tall { grid-row: span 2; }
.gallery-item--wide { grid-column: span 2; }

.gallery-img {
  width: 100%; height: 100%;
  transition: transform .65s var(--ease);
}
.gallery-item:hover .gallery-img { transform: scale(1.08); }

/* Pink multiply overlay */
.gallery-item::before {
  content: '';
  position: absolute; inset: 0;
  background: var(--pink);
  opacity: 0;
  transition: opacity .4s;
  z-index: 1;
  mix-blend-mode: multiply;
}
.gallery-item:hover::before { opacity: .22; }

.gallery-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(28,25,23,.85));
  padding: 3rem 1.5rem 1.25rem;
  transform: translateY(100%);
  transition: transform .4s var(--ease);
  z-index: 2;
}
.gallery-item:hover .gallery-overlay { transform: translateY(0); }
.gallery-overlay span {
  font-size: .8rem;
  font-weight: 600;
  color: var(--cream);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.gp--1 { background: linear-gradient(135deg,#e8394a 0%,#7c1020 55%,#120508 100%); }
.gp--2 { background: linear-gradient(135deg,#2563eb 0%,#1e3a8a 60%,#080a1a 100%); }
.gp--3 { background: linear-gradient(135deg,#f5c518 0%,#b45309 55%,#150e00 100%); }
.gp--4 { background: linear-gradient(120deg,#0d9488 0%,#e8394a 45%,#2563eb 100%); }
.gp--5 { background: linear-gradient(135deg,#7c3aed 0%,#ff2e88 55%,#150508 100%); }
.gp--6 { background: linear-gradient(135deg,#f5c518 0%,#0d9488 50%,#2563eb 100%); }

/* ── TESTIMONIALS ───────────────────────── */
.testimonials { background: var(--cream); }
.testimonials .section-header h2 { color: var(--dark); }

.testimonial-reel {
  max-width: 720px;
  margin: 0 auto;
}

.testimonial-slides { display: grid; }

.testimonial-slide {
  grid-area: 1 / 1;
  text-align: center;
  padding: 2rem 1.5rem 1.5rem;
  opacity: 0;
  transition: opacity .7s ease;
  pointer-events: none;
}
.testimonial-slide.active {
  opacity: 1;
  pointer-events: auto;
}

.testimonial-slide__mark {
  font-family: var(--font-head);
  font-size: 8rem;
  color: var(--pink);
  line-height: .52;
  display: block;
  margin-bottom: 1.75rem;
}
.testimonial-slide__text {
  font-size: clamp(1.05rem, 2vw, 1.32rem);
  line-height: 1.78;
  color: var(--dark);
  font-style: italic;
  margin-bottom: 2rem;
}
.testimonial-slide__stars { color: var(--pink); font-size: 1rem; letter-spacing: .12em; margin-bottom: .75rem; }
.testimonial-slide__author { font-weight: 700; font-size: 1rem; color: var(--dark); }
.testimonial-slide__type { font-size: .75rem; color: var(--pink); margin-top: .3rem; letter-spacing: .08em; text-transform: uppercase; }

.testimonial-dots {
  display: flex;
  justify-content: center;
  gap: .65rem;
  padding: 1.5rem 0 .5rem;
}
.testimonial-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(28,25,23,.15);
  cursor: pointer;
  transition: background var(--t), transform var(--t);
}
.testimonial-dot.active { background: var(--pink); transform: scale(1.4); }

/* ── FAQ ────────────────────────────────── */
.faq .section-header h2 { color: var(--text-light); }
.faq-list { max-width: 780px; margin: 0 auto; }

.faq-item { border-bottom: 1px solid rgba(244,241,234,.1); }
.faq-item:first-child { border-top: 1px solid rgba(244,241,234,.1); }

.faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1.5rem 0;
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-light);
  text-align: left;
  gap: 1.5rem;
  transition: color var(--t);
}
.faq-question:hover { color: var(--pink); }

.faq-icon {
  font-size: 1.5rem;
  color: var(--pink);
  flex-shrink: 0;
  transition: transform var(--t);
  line-height: 1;
}
.faq-item.open .faq-icon { transform: rotate(45deg); }

.faq-answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .4s var(--ease), opacity .3s;
}
.faq-item.open .faq-answer { opacity: 1; }
.faq-answer p {
  padding-bottom: 1.5rem;
  font-size: .95rem;
  color: rgba(244,241,234,.6);
}

/* ── CTA BANNER ─────────────────────────── */
.cta-banner {
  background: var(--pink);
  padding: 9rem 1.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-banner::before {
  content: '';
  position: absolute; top: -2px; left: 0; right: 0;
  height: 90px;
  background: var(--dark);
  clip-path: ellipse(55% 100% at 50% 0%);
}

.cta-banner__content {
  position: relative; z-index: 2;
  max-width: 720px;
  margin: 0 auto;
}
.cta-banner__content h2 {
  color: #f4f1ea;
  margin: .75rem 0 1.25rem;
}
.cta-banner__content p {
  font-size: 1.05rem;
  color: rgba(244,241,234,.85);
  margin-bottom: 2.75rem;
}
.cta-banner__actions {
  display: flex; gap: 1rem;
  justify-content: center; flex-wrap: wrap;
}

/* ── FOOTER ─────────────────────────────── */
.footer {
  background: var(--dark);
  border-top: 1px solid var(--border-light);
  padding: 4.5rem 0 2rem;
}
.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 2rem;
}

.footer__logo {
  display: inline-block;
  margin-bottom: 1rem;
  line-height: 0;
}
.footer__logo-img { height: 36px; width: auto; }
.footer__brand p { font-size: .9rem; color: var(--text-light-m); max-width: 280px; }

.footer__social { display: flex; gap: .75rem; margin-top: 1.5rem; }
.footer__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border: 1px solid rgba(244,241,234,.15);
  border-radius: 50%;
  font-size: .72rem;
  font-weight: 600;
  color: rgba(244,241,234,.45);
  transition: var(--t);
}
.footer__social a:hover { border-color: var(--pink); color: var(--pink); }

.footer__col h5 {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(244,241,234,.3);
  margin-bottom: 1rem;
}
.footer__col-spacer { margin-top: 2rem; }
.footer__col ul { display: flex; flex-direction: column; gap: .65rem; }
.footer__col li a {
  font-size: .9rem;
  color: var(--text-light-m);
  transition: color var(--t);
}
.footer__col li a:hover { color: var(--cream); }

.footer__bottom { text-align: center; }
.footer__bottom p { font-size: .78rem; color: rgba(244,241,234,.2); }

/* ── ARTWORK CAROUSEL ───────────────────── */
.artworks-section {
  background: var(--dark);
  padding: 6rem 0 4rem;
  overflow: hidden;
}

.artworks__header {
  text-align: center;
  margin-bottom: 3rem;
}
.artworks__header h2 { color: var(--cream); }
.artworks__sub {
  color: rgba(244,241,234,.5);
  font-size: .95rem;
  margin-top: .5rem;
}

.artworks__outer {
  overflow: hidden;
  cursor: grab;
  padding-bottom: .5rem;
}
.artworks__outer:active { cursor: grabbing; }

.artworks__track {
  display: flex;
  gap: 2rem;
  padding: 1.5rem 0 3rem;
  transition: transform .55s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}

.artwork-card {
  flex: 0 0 clamp(280px, 68%, 660px);
  aspect-ratio: 3 / 4;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 20px 55px rgba(0,0,0,.45);
  opacity: .28;
  transform: scale(0.88) translateY(20px);
  transition: transform .55s var(--ease), opacity .55s var(--ease), box-shadow .55s var(--ease);
  flex-shrink: 0;
  user-select: none;
}
.artwork-card.aw-active {
  opacity: 1;
  transform: scale(1) translateY(0);
  box-shadow: 0 30px 80px rgba(0,0,0,.55);
}

.artwork-card__img {
  width: 100%;
  height: 100%;
  display: block;
  background-size: cover;
  background-position: center;
}

/* Abstract painting gradients — portrait canvas feel */
.aw-img-1 {
  background:
    radial-gradient(ellipse 65% 55% at 25% 25%, rgba(255,46,136,.9) 0%, transparent 60%),
    radial-gradient(ellipse 50% 70% at 75% 70%, rgba(245,197,24,.75) 0%, transparent 55%),
    radial-gradient(ellipse 40% 45% at 60% 15%, rgba(28,25,23,.95) 0%, transparent 50%),
    linear-gradient(160deg, #7c0030 0%, #2b1f1a 100%);
}
.aw-img-2 {
  background:
    radial-gradient(ellipse 70% 50% at 80% 30%, rgba(37,99,235,.85) 0%, transparent 55%),
    radial-gradient(ellipse 55% 65% at 20% 75%, rgba(13,148,136,.8) 0%, transparent 55%),
    radial-gradient(ellipse 45% 40% at 50% 50%, rgba(244,241,234,.15) 0%, transparent 50%),
    linear-gradient(145deg, #0a1628 0%, #081414 100%);
}
.aw-img-3 {
  background:
    radial-gradient(ellipse 60% 60% at 50% 20%, rgba(245,197,24,.9) 0%, transparent 55%),
    radial-gradient(ellipse 55% 50% at 20% 70%, rgba(255,107,53,.85) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(255,46,136,.7) 0%, transparent 50%),
    linear-gradient(135deg, #3d1200 0%, #1c1917 100%);
}
.aw-img-4 {
  background:
    radial-gradient(ellipse 70% 55% at 30% 60%, rgba(124,58,237,.85) 0%, transparent 60%),
    radial-gradient(ellipse 50% 60% at 75% 25%, rgba(255,46,136,.8) 0%, transparent 55%),
    radial-gradient(ellipse 45% 45% at 55% 85%, rgba(13,148,136,.6) 0%, transparent 50%),
    linear-gradient(155deg, #1a0528 0%, #0e1a18 100%);
}
.aw-img-5 {
  background:
    radial-gradient(ellipse 65% 55% at 70% 30%, rgba(244,241,234,.25) 0%, transparent 55%),
    radial-gradient(ellipse 60% 65% at 25% 65%, rgba(255,46,136,.9) 0%, transparent 55%),
    radial-gradient(ellipse 50% 45% at 60% 80%, rgba(140,129,120,.6) 0%, transparent 50%),
    linear-gradient(140deg, #5c001a 0%, #2b1f1a 100%);
}
.aw-img-6 {
  background:
    radial-gradient(ellipse 60% 50% at 40% 20%, rgba(245,197,24,.85) 0%, transparent 55%),
    radial-gradient(ellipse 65% 60% at 70% 65%, rgba(37,99,235,.75) 0%, transparent 60%),
    radial-gradient(ellipse 45% 50% at 20% 80%, rgba(13,148,136,.7) 0%, transparent 50%),
    linear-gradient(125deg, #082040 0%, #041010 100%);
}
.aw-img-7 {
  background:
    radial-gradient(ellipse 70% 55% at 60% 25%, rgba(255,46,136,.85) 0%, transparent 55%),
    radial-gradient(ellipse 55% 65% at 30% 70%, rgba(140,129,120,.6) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 80% 75%, rgba(245,197,24,.65) 0%, transparent 50%),
    linear-gradient(150deg, #3a0018 0%, #1c1917 100%);
}

/* ── TICKET CARD IMAGES ─────────────────── */
.tk-img-1 {
  background:
    radial-gradient(ellipse 65% 55% at 25% 35%, rgba(255,46,136,.95) 0%, transparent 55%),
    radial-gradient(ellipse 55% 60% at 75% 65%, rgba(244,241,234,.18) 0%, transparent 50%),
    radial-gradient(ellipse 45% 40% at 55% 15%, rgba(124,0,48,.85) 0%, transparent 45%),
    radial-gradient(ellipse 40% 50% at 80% 30%, rgba(43,31,26,.9) 0%, transparent 45%),
    linear-gradient(145deg, #1c0812 0%, #2b1f1a 100%);
}
.tk-img-2 {
  background:
    radial-gradient(ellipse 60% 65% at 30% 55%, rgba(245,197,24,.78) 0%, transparent 55%),
    radial-gradient(ellipse 55% 50% at 72% 28%, rgba(255,46,136,.88) 0%, transparent 55%),
    radial-gradient(ellipse 45% 42% at 55% 80%, rgba(124,58,237,.65) 0%, transparent 48%),
    radial-gradient(ellipse 35% 35% at 85% 70%, rgba(244,241,234,.1) 0%, transparent 40%),
    linear-gradient(155deg, #0a0608 0%, #1c0a14 60%, #12000a 100%);
}
.tk-img-3 {
  background:
    radial-gradient(ellipse 62% 55% at 68% 28%, rgba(245,158,11,.88) 0%, transparent 55%),
    radial-gradient(ellipse 52% 62% at 22% 68%, rgba(13,148,136,.92) 0%, transparent 55%),
    radial-gradient(ellipse 45% 42% at 52% 58%, rgba(255,46,136,.62) 0%, transparent 48%),
    radial-gradient(ellipse 38% 38% at 85% 75%, rgba(37,99,235,.55) 0%, transparent 42%),
    linear-gradient(130deg, #071512 0%, #0c1810 60%, #0a0d07 100%);
}
.tk-img-4 {
  background:
    radial-gradient(ellipse 58% 52% at 38% 32%, rgba(245,197,24,.82) 0%, transparent 55%),
    radial-gradient(ellipse 42% 55% at 72% 62%, rgba(244,241,234,.14) 0%, transparent 50%),
    radial-gradient(ellipse 50% 42% at 22% 72%, rgba(255,46,136,.48) 0%, transparent 46%),
    radial-gradient(ellipse 40% 38% at 80% 20%, rgba(140,129,120,.5) 0%, transparent 42%),
    linear-gradient(148deg, #0d0c08 0%, #1a1812 60%, #111008 100%);
}

.artwork-card__caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 2.5rem 1.4rem 1.4rem;
  background: linear-gradient(to top, rgba(28,25,23,.88) 0%, transparent 100%);
  color: var(--cream);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.artworks__nav {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: .5rem;
}
.artworks__btn {
  width: 50px; height: 50px;
  border-radius: 50%;
  background: rgba(244,241,234,.07);
  border: 1.5px solid rgba(244,241,234,.14);
  color: var(--cream);
  font-size: 1.1rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--t), border-color var(--t);
  position: relative;
  overflow: hidden;
}
.artworks__btn:hover { background: var(--pink); border-color: var(--pink); }
.artworks__btn:disabled { opacity: .25; pointer-events: none; }

/* ── REVEAL ANIMATIONS ──────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .75s var(--ease), transform .75s var(--ease);
}
.reveal--right { transform: translateX(30px); }
.reveal--left  { transform: translateX(-30px); }
.reveal.visible { opacity: 1; transform: none; }

/* Stagger within grid parents */
.cards-grid   .reveal:nth-child(2),
.tickets      .reveal:nth-child(2) { transition-delay: .1s; }
.cards-grid   .reveal:nth-child(3),
.tickets      .reveal:nth-child(3) { transition-delay: .2s; }
.tickets      .reveal:nth-child(4)      { transition-delay: .3s; }

/* ── RESPONSIVE ─────────────────────────── */

/* Carousel breakpoints */
@media (max-width: 1024px) {
  .ticket-card { flex: 0 0 calc((100% - 1.25rem) / 2); }
  .voucher-wrap { width: min(260px, calc((100% - 1.25rem) / 2)); max-width: none; }
  .btn--voucher span { font-size: 2.2rem; }
}

@media (max-width: 1100px) {
  .usps { grid-template-columns: repeat(2,1fr); }
  .usp  { min-height: 320px; }
}

@media (max-width: 640px) {
  .usps { grid-template-columns: 1fr; }
  .usp  { min-height: 260px; padding: 3rem 2rem 2.5rem; }
  .usp--pink .usp__bg { left: auto; right: 1rem; transform: none; }
}

@media (max-width: 768px) {
  :root { --py: 5rem; }

  .nav__links, .nav__cta { display: none; }
  .nav__bar {
    position: relative;
    justify-content: center;
  }
  .nav__burger {
    position: absolute;
    left: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    margin: 0;
  }
  .nav__logo {
    position: static;
    margin: 0 auto;
  }

  .hero__actions { flex-direction: column; align-items: center; }

  .ticket-card { flex: 0 0 min(300px, 80vw); }
  .voucher-wrap { width: min(300px, 80vw); max-width: none; }

  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 200px;
  }
  .gallery-item--tall, .gallery-item--wide {
    grid-row: span 1; grid-column: span 1;
  }

  .footer__grid { grid-template-columns: 1fr; }
  .cta-banner::before { display: none; }
}

@media (max-width: 480px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .cta-banner__actions { flex-direction: column; align-items: center; }
}

/* ── SHARED PAGE STYLES (used by sub-pages) ── */
.page-hero {
  background: var(--dark);
  padding: 10rem 1.5rem 7rem;
  text-align: center;
  color: var(--cream);
}
.page-hero h1 { color: var(--cream); }
.page-hero p  { color: rgba(244,241,234,.6); max-width: 580px; margin: 1.25rem auto 0; font-size: 1.1rem; }
.page-hero .eyebrow { margin-bottom: .5rem; }

.check-list { display: flex; flex-direction: column; gap: .65rem; margin-top: 1.5rem; }
.check-list li {
  display: flex; align-items: center; gap: .75rem;
  font-size: .95rem; color: var(--text-muted);
}
.check-list li::before {
  content: '✓';
  display: inline-flex;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--pink-muted);
  border: 1px solid var(--pink-border);
  color: var(--pink);
  font-size: .68rem;
  font-weight: 700;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.check-list--light li { color: rgba(244,241,234,.65); }
.check-list--light li::before { background: rgba(255,46,136,.15); border-color: rgba(255,46,136,.35); }

/* Timeline */
.timeline { display: flex; flex-direction: column; max-width: 760px; margin: 0 auto; position: relative; }
.timeline::before {
  content: '';
  position: absolute;
  left: 27px; top: 0; bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--pink-border) 8%, var(--pink-border) 92%, transparent);
}
.timeline__item { display: flex; gap: 2.5rem; padding: 2rem 0; }
.timeline__num {
  width: 56px; height: 56px; min-width: 56px;
  border-radius: 50%;
  border: 1px solid var(--pink-border);
  background: var(--dark);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-head); font-size: 1rem;
  color: var(--pink); position: relative; z-index: 1;
}
.timeline__content { padding-top: .8rem; }
.timeline__content h4 { margin-bottom: .4rem; color: var(--text-light); }
.timeline__content p  { font-size: .95rem; color: rgba(244,241,234,.55); }

/* ── WHATSAPP FLOAT ─────────────────────── */
.wa-float {
  position: fixed;
  bottom: 1.75rem;
  right: 1.75rem;
  width: 58px;
  height: 58px;
  background: #25d366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.45);
  z-index: 900;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
  animation: wa-pulse 2.8s ease-in-out infinite;
}
.wa-float:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 32px rgba(37,211,102,.6);
  animation: none;
}
.wa-float__icon {
  width: 28px;
  height: 28px;
  fill: #fff;
  flex-shrink: 0;
}
.wa-float__tooltip {
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  background: #1c1917;
  color: #f4f1ea;
  font-size: .75rem;
  font-weight: 600;
  white-space: nowrap;
  padding: .45rem .9rem;
  border-radius: 8px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .18s ease;
}
.wa-float__tooltip::after {
  content: '';
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: #1c1917;
}
.wa-float:hover .wa-float__tooltip { opacity: 1; }

@keyframes wa-pulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(37,211,102,.45); }
  50%       { box-shadow: 0 4px 28px rgba(37,211,102,.7), 0 0 0 8px rgba(37,211,102,.12); }
}

@media (max-width: 768px) {
  .wa-float { bottom: 1.25rem; right: 1.25rem; width: 52px; height: 52px; }
  .wa-float__tooltip { display: none; }
}
