/* ================================================================
   PLANETARIUM PAGE — Scoped dark cosmic theme
   ALL rules prefixed with .pl-page or .pl-* class names.
   Cannot leak to other pages. Global styles.css unaffected.
   ================================================================ */

/* ── 1. PAGE TOKENS & BODY OVERRIDE ─────────────────────────── */
.pl-page {
  --pl-bg:        #030308;
  --pl-bg-2:      #0E0A1A;
  --pl-card:      #0a0a18;
  --pl-border:    rgba(255,255,255,.08);
  --pl-text:      #EDEAF5;
  --pl-muted:     #9A93B0;
  --pl-pink:      #ec4899;
  --pl-cyan:      #22d3ee;
  --pl-cyan-2:    #06b6d4;
  --pl-purple:    #a855f7;
  --pl-violet:    #8b5cf6;
  --pl-green:     #4ade80;
  --pl-grad-text: linear-gradient(135deg, #a855f7, #ec4899, #06b6d4, #8b5cf6, #a855f7);

  background: var(--pl-bg);
  color: var(--pl-text);
  font-family: var(--font-body);
}

/* Global overflow guard — prevents any section from causing horizontal scroll.
   position:fixed children (mobile nav) are unaffected by body overflow:hidden. */
html, body.pl-page { overflow-x: hidden; max-width: 100%; }

/* ── 2. CONTAINER ───────────────────────────────────────────── */
.pl-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ── 3. GRADIENT TEXT UTILITY ───────────────────────────────── */
.pl-grad {
  background: var(--pl-grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── 4. HEADER ──────────────────────────────────────────────── */
.pl-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: 72px;
  display: flex;
  align-items: center;
  transition: background var(--t-base) var(--ease),
              border-color var(--t-base) var(--ease),
              backdrop-filter var(--t-base) var(--ease);
  border-bottom: 1px solid transparent;
}

.pl-header--solid {
  background: rgba(3,3,8,.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: var(--pl-border);
}

.pl-header__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* Logo */
.pl-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity var(--t-fast);
}
.pl-logo:hover { opacity: .85; }
.pl-logo:focus-visible {
  outline: 2px solid var(--pl-purple);
  outline-offset: 3px;
  border-radius: 4px;
}
.pl-logo__globe { display: block; flex-shrink: 0; }
.pl-logo__text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.pl-logo__wordmark {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.18rem;
  line-height: 1;
  letter-spacing: -.01em;
}
.pl-logo__mem { color: #ffffff; }
.pl-logo__ora { color: var(--gold); }
.pl-logo__exp {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: .58rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  border: 1px solid rgba(255,255,255,.22);
  padding: 1px 4px;
  border-radius: 2px;
  margin-top: 3px;
  display: inline-block;
}

/* Center nav */
.pl-nav {
  display: flex;
  align-items: center;
  gap: 2px;
}

.pl-nav__link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 13px;
  border-radius: var(--r-pill);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .83rem;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: background var(--t-fast), color var(--t-fast);
}
.pl-nav__link:hover {
  background: rgba(255,255,255,.08);
  color: #ffffff;
}
.pl-nav__link:focus-visible {
  outline: 2px solid var(--pl-purple);
  outline-offset: 2px;
}
.pl-nav__icon {
  font-size: .88em;
  line-height: 1;
}

/* Get Tickets button */
.pl-btn-tickets {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: var(--r-pill);
  background: var(--pl-purple);
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .88rem;
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity var(--t-fast), transform var(--t-fast);
}
.pl-btn-tickets:hover { opacity: .88; transform: translateY(-1px); }
.pl-btn-tickets:active { transform: translateY(0); }
.pl-btn-tickets:focus-visible {
  outline: 2px solid var(--pl-cyan);
  outline-offset: 3px;
}
.pl-btn-tickets__badge {
  background: rgba(0,0,0,.22);
  border-radius: var(--r-pill);
  padding: 2px 8px;
  font-size: .76rem;
  letter-spacing: .02em;
}

/* ── 5. STARFIELD ───────────────────────────────────────────── */
/* Pure CSS — 1 element, 40 stars via box-shadow */
.pl-stars {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 2;
}

.pl-stars::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 1px; height: 1px;
  border-radius: 50%;
  background: transparent;
  box-shadow:
    120px 80px 0 1px rgba(255,255,255,.70),
    340px 45px 0 0  rgba(255,255,255,.50),
    580px 120px 0 1px rgba(255,255,255,.60),
    820px 60px 0 0  rgba(255,255,255,.40),
    1050px 95px 0 1px rgba(255,255,255,.65),
    1280px 40px 0 0  rgba(255,255,255,.50),
    75px  180px 0 0  rgba(255,255,255,.40),
    260px 220px 0 1px rgba(255,255,255,.55),
    490px 195px 0 0  rgba(255,255,255,.45),
    710px 240px 0 1px rgba(255,255,255,.60),
    940px 175px 0 0  rgba(255,255,255,.50),
    1170px 210px 0 1px rgba(255,255,255,.40),
    45px  310px 0 0  rgba(255,255,255,.55),
    310px 340px 0 1px rgba(255,255,255,.40),
    560px 290px 0 0  rgba(255,255,255,.65),
    790px 360px 0 1px rgba(255,255,255,.45),
    1020px 315px 0 0  rgba(255,255,255,.50),
    1240px 280px 0 1px rgba(255,255,255,.60),
    150px 420px 0 0  rgba(255,255,255,.40),
    420px 450px 0 1px rgba(255,255,255,.55),
    660px 415px 0 0  rgba(255,255,255,.45),
    880px 440px 0 1px rgba(255,255,255,.65),
    1110px 405px 0 0  rgba(255,255,255,.50),
    1350px 465px 0 1px rgba(255,255,255,.40),
    90px  520px 0 1px rgba(255,255,255,.60),
    380px 540px 0 0  rgba(255,255,255,.45),
    620px 510px 0 1px rgba(255,255,255,.55),
    850px 555px 0 0  rgba(255,255,255,.40),
    1080px 525px 0 1px rgba(255,255,255,.65),
    1300px 550px 0 0  rgba(255,255,255,.50),
    200px 620px 0 0  rgba(255,255,255,.55),
    460px 640px 0 1px rgba(255,255,255,.40),
    700px 610px 0 0  rgba(255,255,255,.65),
    920px 660px 0 1px rgba(255,255,255,.45),
    1140px 625px 0 0  rgba(255,255,255,.50),
    55px  720px 0 1px rgba(255,255,255,.60),
    295px 745px 0 0  rgba(255,255,255,.40),
    535px 720px 0 1px rgba(255,255,255,.55),
    770px 765px 0 0  rgba(255,255,255,.45),
    990px 730px 0 1px rgba(255,255,255,.65);
}

@media (prefers-reduced-motion: no-preference) {
  .pl-stars::before {
    animation: pl-twinkle 5s ease-in-out infinite alternate;
  }
}
@keyframes pl-twinkle {
  from { opacity: 1; }
  to   { opacity: .45; }
}

/* ── 6. HERO ────────────────────────────────────────────────── */
.pl-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-top: 72px;
}

.pl-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(ellipse at 68% 44%, rgba(168,85,247,.28) 0%, transparent 55%),
    radial-gradient(ellipse at 18% 32%, rgba(236,72,153,.14) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 90%, rgba(34,211,238,.08) 0%, transparent 40%),
    linear-gradient(155deg, #0D0719 0%, #110924 35%, #030308 70%, #08051A 100%);
  /* TODO: once real photo available — add as first layer:
     background-image: url(../img/planetarium-hero.jpg);
     background-size: cover; background-position: center; */
}

.pl-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    #030308 0%,
    rgba(3,3,8,.80) 40%,
    rgba(3,3,8,.96) 100%
  );
}

.pl-hero__inner {
  position: relative;
  z-index: 3;
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(48px,8vw,96px) 24px;
  width: 100%;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
  gap: 48px;
}

.pl-hero__content {
  display: flex;
  flex-direction: column;
  gap: 22px;
  max-width: 560px;
}

/* Badge */
.pl-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  border-radius: var(--r-pill);
  background: rgba(168,85,247,.16);
  border: 1px solid rgba(168,85,247,.38);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .14em;
  color: rgba(255,255,255,.88);
  width: fit-content;
}

/* H1 */
.pl-hero__h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(3.4rem, 8vw, 7.2rem);
  line-height: .92;
  letter-spacing: -.025em;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
}
.pl-hero__h1-white { color: #ffffff; }
.pl-hero__h1-grad {
  background: var(--pl-grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
}

/* Subtitle */
.pl-hero__sub {
  font-size: 1.08rem;
  color: var(--pl-muted);
  line-height: 1.65;
  max-width: 450px;
}

/* Meta */
.pl-hero__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .2em;
  color: rgba(255,255,255,.55);
  text-transform: uppercase;
}
.pl-hero__meta-sep { opacity: .35; }

/* CTA button — dark pill + animated neon gradient border + glow */
.pl-hero__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: var(--r-pill);
  border: 2px solid transparent;
  background-image:
    linear-gradient(rgba(18,13,28,.88), rgba(18,13,28,.88)),
    conic-gradient(from var(--pl-angle), #a855f7 0%, #ec4899 22%, #06b6d4 45%, #8b5cf6 68%, #a855f7 100%);
  background-origin: padding-box, border-box;
  background-clip: padding-box, border-box;
  color: #ffffff;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  width: fit-content;
  box-shadow:
    0 0 18px rgba(168,85,247,.22),
    0 0 32px rgba(236,72,153,.10),
    0 0 10px rgba(6,182,212,.08),
    inset 0 1px 0 rgba(255,255,255,.06);
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}
@media (prefers-reduced-motion: no-preference) {
  .pl-hero__btn { animation: pl-border-spin 6s linear infinite; }
}
@media (prefers-reduced-motion: reduce) {
  .pl-hero__btn {
    background-image:
      linear-gradient(rgba(18,13,28,.88), rgba(18,13,28,.88)),
      linear-gradient(135deg, rgba(168,85,247,.7), rgba(236,72,153,.6), rgba(6,182,212,.6));
    background-origin: padding-box, border-box;
    background-clip: padding-box, border-box;
  }
}
.pl-hero__btn:hover,
.pl-hero__btn:focus-visible {
  box-shadow:
    0 0 28px rgba(168,85,247,.38),
    0 0 50px rgba(236,72,153,.22),
    0 0 20px rgba(6,182,212,.16),
    0 0 60px rgba(168,85,247,.10),
    inset 0 1px 0 rgba(255,255,255,.1);
  transform: translateY(-2px);
  outline: none;
}
.pl-hero__btn:active { transform: translateY(0); }
.pl-hero__btn:focus-visible {
  outline: 2px solid var(--pl-purple);
  outline-offset: 3px;
}

/* Green "live" dot */
.pl-hero__btn-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--pl-green);
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(74,222,128,.7);
}
@media (prefers-reduced-motion: no-preference) {
  .pl-hero__btn-dot { animation: pl-dot-pulse 2s ease-in-out infinite; }
}
@keyframes pl-dot-pulse {
  0%, 100% { box-shadow: 0 0 6px rgba(74,222,128,.7); }
  50%       { box-shadow: 0 0 12px rgba(74,222,128,1); }
}

/* Astronaut placeholder */
.pl-hero__astronaut {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.pl-hero__astronaut-ph {
  width: 360px;
  max-width: 100%;
  aspect-ratio: .75;
  border-radius: var(--r-img);
  background:
    radial-gradient(ellipse at 50% 30%, rgba(168,85,247,.2) 0%, transparent 60%),
    rgba(20,16,31,.6);
  border: 1px dashed rgba(168,85,247,.28);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pl-hero__astronaut-ph::after {
  content: 'TODO: astronaut.png';
  font-size: .72rem;
  color: rgba(255,255,255,.25);
  font-family: monospace;
  text-align: center;
}
@media (prefers-reduced-motion: no-preference) {
  .pl-hero__astronaut-ph {
    animation: pl-float 5s ease-in-out infinite;
  }
}
@keyframes pl-float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-18px); }
}

/* SCROLL indicator */
.pl-hero__scroll {
  position: absolute;
  bottom: 36px;
  left: 40px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.pl-hero__scroll-label {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .62rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
}
.pl-hero__scroll-line {
  width: 1px;
  height: 44px;
  background: linear-gradient(to bottom, rgba(255,255,255,.35), transparent);
  order: -1;
}
@media (prefers-reduced-motion: no-preference) {
  .pl-hero__scroll-line {
    animation: pl-scroll-line 2.4s ease-in-out infinite;
  }
}
@keyframes pl-scroll-line {
  0%, 100% { opacity: .4; transform: scaleY(1);   transform-origin: top; }
  50%       { opacity: 1;  transform: scaleY(1.2); transform-origin: top; }
}

/* ── 7. WHAT TO EXPECT ──────────────────────────────────────── */
.pl-expect {
  padding: clamp(64px,9vw,112px) 0;
  background: var(--pl-bg-2);
  position: relative;
  overflow-x: hidden;
}

/* Sparkle divider at top of section */
.pl-sparkle-div {
  text-align: center;
  color: var(--pl-purple);
  font-size: .82rem;
  letter-spacing: .55em;
  padding-right: .55em; /* compensate letter-spacing on last char */
  margin-bottom: 48px;
  opacity: .65;
}

/* Main card */
.pl-expect__card {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 48px;
  align-items: center;
  background: var(--pl-card);
  border-radius: 24px;
  border: 1px solid var(--pl-border);
  padding: clamp(28px,4vw,52px);
}

.pl-expect__heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.9rem,3.8vw,3rem);
  line-height: 1.1;
  margin-bottom: 16px;
  background: var(--pl-grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.pl-expect__text {
  font-size: 1.05rem;
  color: var(--pl-muted);
  line-height: 1.65;
}

/* Video thumbnail */
.pl-video-thumb {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--pl-bg);
  border: 1px solid var(--pl-border);
}
.pl-video-thumb__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Stat cards row */
.pl-stat-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.pl-stat-card {
  background: var(--pl-card);
  border-radius: 20px;
  border: 1px solid var(--pl-border);
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pl-stat-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  flex-shrink: 0;
  margin-bottom: 4px;
}
.pl-stat-card__icon--cyan   { background: rgba(34,211,238,.14);  color: var(--pl-cyan); }
.pl-stat-card__icon--pink   { background: rgba(236,72,153,.14);  color: var(--pl-pink); }
.pl-stat-card__icon--purple { background: rgba(168,85,247,.14);  color: var(--pl-purple); }

.pl-stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.9rem,3.2vw,2.8rem);
  color: #ffffff;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 1px;
}

.pl-stat-days { color: var(--pl-pink); }

.pl-stat-cap {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pl-muted);
  line-height: 1.4;
}

/* ── 8. DAYTIME / NIGHT PARTIES ─────────────────────────────── */
.pl-parties {
  padding: clamp(64px,9vw,112px) 0;
  background: var(--pl-bg);
  overflow-x: hidden;
}

.pl-parties__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 40px;
}

.pl-parties__card {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  min-height: 280px;
}

.pl-parties__card-bg {
  position: absolute;
  inset: 0;
}
.pl-parties__card-bg--day {
  background:
    radial-gradient(ellipse at 40% 30%, rgba(236,72,153,.28) 0%, transparent 55%),
    url(../images/kids-zone.png) center/cover no-repeat;
}
.pl-parties__card-bg--night {
  background:
    radial-gradient(ellipse at 60% 40%, rgba(34,211,238,.22) 0%, transparent 55%),
    radial-gradient(ellipse at 25% 70%, rgba(168,85,247,.2) 0%, transparent 45%),
    url(../images/fire-dancers.png) center/cover no-repeat;
}

.pl-parties__card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.72) 0%,
    rgba(0,0,0,.2) 50%,
    transparent 80%
  );
}

.pl-parties__label {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 2;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.25rem,2.5vw,1.65rem);
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(0,0,0,.7);
}

.pl-parties__footer {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}

.pl-parties__sub {
  color: var(--pl-muted);
  font-size: 1rem;
}

.pl-parties__pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px;
  border-radius: var(--r-pill);
  background: var(--pl-card);
  border: 1px solid var(--pl-border);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .85rem;
  color: rgba(255,255,255,.72);
}
.pl-parties__pill svg { opacity: .65; flex-shrink: 0; }
.pl-parties__pill-sep { opacity: .35; }

/* ── 9. STUB ANCHORS (sections built in Part 2/3) ───────────── */
.pl-stub-anchor { padding: 0; margin: 0; display: block; }

/* ── 10. RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 900px) {
  .pl-hero__inner {
    grid-template-columns: 1fr;
    padding-top: 40px;
    padding-bottom: 80px;
  }
  .pl-hero__content { max-width: 100%; }
  .pl-hero__astronaut { display: flex; justify-content: center; }

  .pl-expect__card { grid-template-columns: 1fr; }

  .pl-stat-cards { grid-template-columns: repeat(2, 1fr); }

  .pl-parties__grid { gap: 16px; }
}

/* ── Planetarium mobile hamburger + drawer (FIX 6) ──────────── */
.pl-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  flex-shrink: 0;
}
.pl-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: rgba(255,255,255,.85);
  border-radius: 2px;
  transition: transform var(--t-fast) var(--ease),
              opacity var(--t-fast) var(--ease);
}
.pl-hamburger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.pl-hamburger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.pl-hamburger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.pl-mobile-nav {
  display: none;
  position: absolute;
  top: 72px;
  left: 0;
  right: 0;
  background: rgba(10,10,24,.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--pl-border);
  border-bottom-left-radius: 14px;
  border-bottom-right-radius: 14px;
  padding: 20px 24px 24px;
  flex-direction: column;
  gap: 4px;
  box-shadow: 0 16px 40px rgba(0,0,0,.5);
  z-index: 99;
}
.pl-mobile-nav.is-open { display: flex; }

.pl-mobile-nav__link {
  display: block;
  padding: 12px 8px;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: rgba(255,255,255,.80);
  text-decoration: none;
  border-bottom: 1px solid var(--pl-border);
  transition: color var(--t-fast);
}
.pl-mobile-nav__link:hover { color: #fff; }
.pl-mobile-nav__link:last-of-type { border-bottom: none; }

.pl-mobile-nav__cta {
  margin-top: 12px;
  justify-content: center;
}

@media (max-width: 700px) {
  .pl-nav { display: none; }
  .pl-hamburger { display: flex; }
  /* Hide desktop Get Tickets in header on mobile; it's in the drawer */
  .pl-header__inner > .pl-btn-tickets { display: none; }

  .pl-btn-tickets { padding: 8px 14px; font-size: .82rem; }

  .pl-parties__grid { grid-template-columns: 1fr; }
  .pl-parties__card { aspect-ratio: 16 / 9; min-height: 0; min-width: 0; }
}

@media (max-width: 480px) {
  .pl-stat-cards { grid-template-columns: 1fr 1fr; gap: 12px; }
  .pl-stat-card { padding: 20px 16px; }
}

/* ── 11. EXPERIENCE — DAYTIME  (#experience) ────────────────── */
.pl-exp {
  padding: clamp(80px,10vw,128px) 0;
  background: var(--pl-bg-2);
  overflow: hidden;
}

.pl-exp__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  margin-bottom: 72px;
}

.pl-exp__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 16px;
  border-radius: var(--r-pill);
  background: rgba(34,211,238,.10);
  border: 1px solid rgba(34,211,238,.28);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .12em;
  color: var(--pl-cyan);
  width: fit-content;
  margin-bottom: 22px;
}

.pl-exp__h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.8rem,5.5vw,5rem);
  line-height: .95;
  letter-spacing: -.02em;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  margin-bottom: 22px;
}
.pl-exp__h1-white { color: #ffffff; }
.pl-exp__h1-grad {
  background: var(--pl-grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.pl-exp__para {
  font-size: 1.02rem;
  color: var(--pl-muted);
  line-height: 1.72;
  max-width: 490px;
}

/* ── Tiles area (right column) ── */
.pl-exp__tiles {
  position: relative;
  height: 520px;
}

.pl-exp__featured {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 240px;
  height: 310px;
  border-radius: 22px;
  overflow: hidden;
  z-index: 2;
  background: url(../images/home-06-festival-night-market.jpg) center/cover no-repeat;
  border: 1px solid var(--pl-border);
  box-shadow: 0 0 48px rgba(168,85,247,.22), 0 16px 40px rgba(0,0,0,.5);
}

.pl-exp__featured-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  background: rgba(8,5,16,.88);
  border: 1px solid var(--pl-border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 12px;
  padding: 10px 14px;
}
.pl-exp__featured-badge-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.45rem;
  color: #ffffff;
  line-height: 1;
  margin-bottom: 2px;
}
.pl-exp__featured-badge-cap {
  font-size: .66rem;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--pl-muted);
}

.pl-exp__float-badge {
  position: absolute;
  top: 28px;
  right: 0;
  z-index: 5;
  background: var(--pl-card);
  border: 1px solid rgba(236,72,153,.32);
  border-radius: 14px;
  padding: 12px 16px;
  box-shadow: 0 0 20px rgba(236,72,153,.1), 0 8px 24px rgba(0,0,0,.4);
}
.pl-exp__float-badge-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--pl-pink);
  line-height: 1;
  margin-bottom: 2px;
}
.pl-exp__float-badge-cap {
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pl-muted);
}

/* Tile cloud wrapper */
.pl-exp__tile-cloud {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}
.pl-exp__tile-cloud .pl-tile-wrap {
  position: absolute;
  will-change: transform;
}

/* Base tile */
.pl-tile {
  border-radius: 14px;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(168,85,247,.14) 0%, transparent 60%),
    var(--pl-card);
  border: 1px solid var(--pl-border);
  box-shadow: 0 0 16px rgba(168,85,247,.12), 0 8px 20px rgba(0,0,0,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: monospace;
  font-size: .55rem;
  color: rgba(255,255,255,.18);
  text-align: center;
  padding: 4px;
}

/* Tile positions & outer rotations */
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(1) { top: 14px;  left: 8px;   transform: rotate(-7deg); }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(2) { top: 20px;  right: 4px;  transform: rotate(6deg);  }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(3) { top: 195px; left: 2px;   transform: rotate(-4deg); }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(4) { top: 185px; right: 2px;  transform: rotate(8deg);  }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(5) { bottom: 18px; left: 20px;  transform: rotate(3deg);  }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(6) { bottom: 26px; right: 6px;  transform: rotate(-5deg); }

/* Tile sizes */
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(1) .pl-tile { width: 110px; height: 90px; }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(2) .pl-tile { width: 100px; height: 110px; }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(3) .pl-tile { width: 90px;  height: 100px; }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(4) .pl-tile { width: 108px; height: 92px;  }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(5) .pl-tile { width: 105px; height: 88px;  }
.pl-exp__tile-cloud .pl-tile-wrap:nth-child(6) .pl-tile { width: 96px;  height: 108px; }

/* Float animation on inner .pl-tile — outer wrapper holds rotation so transforms don't fight */
@keyframes pl-tile-float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-10px); }
}
@media (prefers-reduced-motion: no-preference) {
  .pl-exp__tile-cloud .pl-tile-wrap:nth-child(1) .pl-tile { animation: pl-tile-float 4.8s ease-in-out infinite; }
  .pl-exp__tile-cloud .pl-tile-wrap:nth-child(2) .pl-tile { animation: pl-tile-float 5.4s ease-in-out infinite; animation-delay: -.9s;  }
  .pl-exp__tile-cloud .pl-tile-wrap:nth-child(3) .pl-tile { animation: pl-tile-float 5.1s ease-in-out infinite; animation-delay: -1.7s; }
  .pl-exp__tile-cloud .pl-tile-wrap:nth-child(4) .pl-tile { animation: pl-tile-float 4.6s ease-in-out infinite; animation-delay: -2.5s; }
  .pl-exp__tile-cloud .pl-tile-wrap:nth-child(5) .pl-tile { animation: pl-tile-float 5.7s ease-in-out infinite; animation-delay: -3.3s; }
  .pl-exp__tile-cloud .pl-tile-wrap:nth-child(6) .pl-tile { animation: pl-tile-float 4.9s ease-in-out infinite; animation-delay: -4.1s; }
}

/* Experience stats row */
.pl-exp__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 820px;
  margin: 0 auto;
}
.pl-exp__stat {
  background: var(--pl-card);
  border-radius: 20px;
  border: 1px solid var(--pl-border);
  padding: 28px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.pl-exp__stat-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2rem,3.5vw,2.8rem);
  line-height: 1;
}
.pl-exp__stat-num--pink   { color: var(--pl-pink); }
.pl-exp__stat-num--cyan   { color: var(--pl-cyan); }
.pl-exp__stat-num--purple { color: var(--pl-purple); }
.pl-exp__stat-cap {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pl-muted);
}

@media (max-width: 900px) {
  .pl-exp__inner       { grid-template-columns: 1fr; gap: 48px; }
  .pl-exp__tiles       { height: 380px; }
  .pl-exp__featured    { width: 180px; height: 230px; }
  .pl-exp__para        { max-width: 100%; }
  .pl-exp__float-badge { right: 0; top: 14px; }
}
@media (max-width: 600px) {
  .pl-exp__stats  { grid-template-columns: 1fr; max-width: 300px; }
  .pl-exp__tiles  { height: 300px; }
}

/* ── 12. EVENT SCHEDULE  (#schedule) ─────────────────────────── */
.pl-schedule {
  padding: clamp(80px,10vw,128px) 0;
  background: var(--pl-bg);
}

.pl-schedule__header {
  text-align: center;
  margin-bottom: 72px;
}
.pl-schedule__h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.2rem,4vw,3.4rem);
  color: #ffffff;
  letter-spacing: -.02em;
  margin-bottom: 16px;
}
.pl-schedule__sub {
  font-size: 1.05rem;
  color: var(--pl-muted);
  line-height: 1.65;
  max-width: 580px;
  margin: 0 auto;
}

.pl-schedule__blocks {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.pl-schedule__block {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 40px;
  align-items: start;
}

.pl-schedule__left {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  position: sticky;
  top: 88px;
}
.pl-schedule__day-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.2rem,2vw,1.6rem);
  color: #ffffff;
  line-height: 1.25;
  text-align: right;
  flex: 1;
}
.pl-schedule__day-title span {
  display: block;
  font-size: .82em;
  color: var(--pl-muted);
  font-weight: 600;
}

.pl-schedule__timeline {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
.pl-schedule__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--pl-purple);
  box-shadow: 0 0 10px rgba(168,85,247,.65);
  flex-shrink: 0;
  margin-top: 6px;
}
.pl-schedule__line {
  width: 2px;
  height: 180px;
  background: linear-gradient(to bottom, rgba(168,85,247,.5), transparent);
  margin-top: 6px;
}

/* Night Party — pink accent */
.pl-schedule__block--night .pl-schedule__dot {
  background: var(--pl-pink);
  box-shadow: 0 0 10px rgba(236,72,153,.65);
}
.pl-schedule__block--night .pl-schedule__line {
  background: linear-gradient(to bottom, rgba(236,72,153,.5), transparent);
}

/* Day 2 — cyan accent */
.pl-schedule__block--day2 .pl-schedule__dot {
  background: var(--pl-cyan);
  box-shadow: 0 0 10px rgba(34,211,238,.65);
}
.pl-schedule__block--day2 .pl-schedule__line {
  background: linear-gradient(to bottom, rgba(34,211,238,.5), transparent);
}

.pl-schedule__right {
  background: var(--pl-card);
  border-radius: 24px;
  border: 1px solid var(--pl-border);
  padding: clamp(24px,3.5vw,40px);
}
.pl-schedule__intro {
  font-size: .98rem;
  color: var(--pl-muted);
  line-height: 1.65;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--pl-border);
}
.pl-schedule__items {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 24px;
}
.pl-schedule__item {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 14px;
  align-items: start;
}
.pl-schedule__icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(168,85,247,.12);
  border: 1px solid rgba(168,85,247,.22);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 1px;
}
.pl-schedule__block--night .pl-schedule__icon {
  background: rgba(236,72,153,.12);
  border-color: rgba(236,72,153,.22);
}
.pl-schedule__block--day2 .pl-schedule__icon {
  background: rgba(34,211,238,.12);
  border-color: rgba(34,211,238,.22);
}
.pl-schedule__item-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .93rem;
  color: #ffffff;
  line-height: 1.3;
  margin-bottom: 3px;
}
.pl-schedule__item-desc {
  font-size: .88rem;
  color: var(--pl-muted);
  line-height: 1.55;
}
.pl-schedule__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--pl-border);
}
.pl-schedule__photo {
  border-radius: 14px;
  aspect-ratio: 4 / 3;
  background:
    radial-gradient(ellipse at 50% 35%, rgba(168,85,247,.12) 0%, transparent 65%),
    var(--pl-bg);
  border: 1px solid var(--pl-border);
  position: relative;
  overflow: hidden;
}
.pl-schedule__block--night .pl-schedule__photo {
  background:
    radial-gradient(ellipse at 50% 35%, rgba(236,72,153,.12) 0%, transparent 65%),
    var(--pl-bg);
}
.pl-schedule__block--day2 .pl-schedule__photo {
  background:
    radial-gradient(ellipse at 50% 35%, rgba(34,211,238,.1) 0%, transparent 65%),
    var(--pl-bg);
}
.pl-schedule__photo::after {
  content: 'TODO: schedule photo';
  position: absolute;
  bottom: 8px;
  left: 10px;
  font-size: .58rem;
  color: rgba(255,255,255,.2);
  font-family: monospace;
}

@media (max-width: 900px) {
  .pl-schedule__block { grid-template-columns: 1fr; gap: 0; }
  .pl-schedule__left {
    position: static;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--pl-border);
  }
  .pl-schedule__day-title { text-align: left; }
  .pl-schedule__timeline  { flex-direction: row; gap: 8px; }
  .pl-schedule__dot       { margin-top: 0; }
  .pl-schedule__line {
    width: 40px; height: 2px;
    background: linear-gradient(to right, rgba(168,85,247,.5), transparent);
  }
  .pl-schedule__block--night .pl-schedule__line {
    background: linear-gradient(to right, rgba(236,72,153,.5), transparent);
  }
  .pl-schedule__block--day2 .pl-schedule__line {
    background: linear-gradient(to right, rgba(34,211,238,.5), transparent);
  }
  .pl-schedule__right { border-radius: 16px; }
}
@media (max-width: 600px) {
  .pl-schedule__item  { grid-template-columns: 34px 1fr; gap: 10px; }
  .pl-schedule__icon  { width: 34px; height: 34px; font-size: .88rem; }
  .pl-schedule__photos { grid-template-columns: 1fr; }
}

/* ── 13. WHAT TO BRING ──────────────────────────────────────── */
.pl-bring {
  padding: clamp(80px,10vw,128px) 0;
  background: var(--pl-bg-2);
}

.pl-bring__card {
  max-width: 780px;
  margin: 0 auto;
  background: var(--pl-card);
  border-radius: 28px;
  border: 1px solid var(--pl-border);
  padding: clamp(36px,5vw,64px);
  box-shadow: 0 0 60px rgba(168,85,247,.08), 0 24px 60px rgba(0,0,0,.3);
}

.pl-bring__eyebrow {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pl-purple);
  margin-bottom: 14px;
}

.pl-bring__h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2rem,3.8vw,3rem);
  color: #ffffff;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin-bottom: 14px;
}

.pl-bring__sub {
  font-size: 1rem;
  color: var(--pl-muted);
  line-height: 1.65;
  margin-bottom: 36px;
  padding-bottom: 36px;
  border-bottom: 1px solid var(--pl-border);
}

.pl-bring__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.pl-bring__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.pl-bring__check {
  flex-shrink: 0;
  color: var(--pl-purple);
  display: flex;
  align-items: center;
  margin-top: 1px;
}

.pl-bring__item > span:last-child {
  font-size: .97rem;
  color: var(--pl-text);
  line-height: 1.55;
}

.pl-bring__subtext {
  display: block;
  font-size: .84rem;
  color: var(--pl-muted);
  margin-top: 3px;
}

.pl-bring__link {
  color: var(--pl-purple);
  text-decoration: underline;
  text-decoration-color: rgba(168,85,247,.42);
  text-underline-offset: 2px;
  transition: color var(--t-fast), text-decoration-color var(--t-fast);
}
.pl-bring__link:hover {
  color: var(--pl-cyan);
  text-decoration-color: rgba(34,211,238,.55);
}
.pl-bring__link:focus-visible {
  outline: 2px solid var(--pl-purple);
  outline-offset: 2px;
  border-radius: 2px;
}

@media (max-width: 600px) {
  .pl-bring__card { padding: 28px 20px; }
  .pl-bring__sub  { margin-bottom: 28px; padding-bottom: 28px; }
}

/* ── 14. GET YOUR TICKETS  (#tickets) ───────────────────────── */
.pl-tickets {
  padding: clamp(80px,10vw,128px) 0;
  background: var(--pl-bg);
}

.pl-tickets__header {
  text-align: center;
  margin-bottom: 56px;
}

.pl-tickets__eyebrow {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pl-purple);
  margin-bottom: 14px;
}

.pl-tickets__h2 { margin-bottom: 16px; }

.pl-tickets__h2-grad {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.2rem,4.5vw,3.8rem);
  letter-spacing: -.025em;
  line-height: 1.05;
  background: var(--pl-grad-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: block;
}

.pl-tickets__sub {
  font-size: 1.02rem;
  color: var(--pl-muted);
  line-height: 1.65;
  max-width: 620px;
  margin: 0 auto;
}

/* Cards grid */
.pl-tickets__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 44px;
}

.pl-tickets__card {
  --theme-color: 270 91% 65%;
  background: var(--pl-card);
  border-radius: 24px;
  border: 1px solid var(--pl-border);
  padding: clamp(28px,4vw,44px);
  box-shadow: 0 0 40px -15px hsl(var(--theme-color) / 0.5);
}

.pl-tickets__card--night {
  --theme-color: 330 81% 60%;
  border-color: rgba(236,72,153,.14);
  box-shadow: 0 0 40px -15px hsl(var(--theme-color) / 0.5);
}

.pl-tickets__card-top {
  margin-bottom: 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--pl-border);
}

.pl-tickets__card-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--r-pill);
  background: rgba(168,85,247,.14);
  border: 1px solid rgba(168,85,247,.28);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .14em;
  color: var(--pl-purple);
  text-transform: uppercase;
  margin-bottom: 10px;
}

.pl-tickets__card-tag--pink {
  background: rgba(236,72,153,.12);
  border-color: rgba(236,72,153,.28);
  color: var(--pl-pink);
}

.pl-tickets__card-name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.4rem;
  color: #ffffff;
  letter-spacing: -.01em;
}

/* Price sub-cards */
.pl-tickets__prices {
  display: flex;
  gap: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.pl-tickets__price {
  flex: 1;
  min-width: 0;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--pl-border);
  border-radius: 14px;
  padding: 16px 12px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.pl-tickets__price-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: -.01em;
}
.pl-tickets__price--white  .pl-tickets__price-num { color: #ffffff; }
.pl-tickets__price--purple .pl-tickets__price-num { color: var(--pl-purple); }
.pl-tickets__price--cyan   .pl-tickets__price-num { color: var(--pl-cyan); }
.pl-tickets__price--pink   .pl-tickets__price-num { color: var(--pl-pink); }

.pl-tickets__price-age {
  font-size: .72rem;
  color: var(--pl-muted);
  letter-spacing: .05em;
}

.pl-tickets__price-party {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .82rem;
  color: var(--pl-text);
}

.pl-tickets__price-night-badge {
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pl-muted);
}

/* Tickets checklist */
.pl-tickets__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 24px;
  border-top: 1px solid var(--pl-border);
}

.pl-tickets__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: .94rem;
  color: var(--pl-text);
  line-height: 1.5;
}

.pl-tickets__check {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  margin-top: 1px;
}
.pl-tickets__check--purple { color: var(--pl-purple); }
.pl-tickets__check--pink   { color: var(--pl-pink); }

/* CTA block */
.pl-tickets__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}

.pl-tickets__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 480px;
  padding: 17px 32px;
  border-radius: var(--r-pill);
  background: var(--pl-card);
  border: 1px solid var(--pl-border);
  color: rgba(255,255,255,.38);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .98rem;
  cursor: not-allowed;
  opacity: .65;
  letter-spacing: .01em;
}
.pl-tickets__btn svg { opacity: .5; flex-shrink: 0; }

.pl-tickets__note {
  font-size: .9rem;
  color: var(--pl-muted);
  margin: 0;
}

.pl-tickets__note2 {
  font-size: .82rem;
  color: rgba(255,255,255,.36);
  max-width: 420px;
  margin: 0;
}

.pl-tickets__pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px;
  border-radius: var(--r-pill);
  background: var(--pl-card);
  border: 1px solid var(--pl-border);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .85rem;
  color: rgba(255,255,255,.72);
  margin-top: 6px;
}
.pl-tickets__pill svg { opacity: .65; flex-shrink: 0; }
.pl-tickets__pill-sep { opacity: .35; }

/* Responsive */
@media (max-width: 900px) {
  .pl-tickets__cards {
    grid-template-columns: 1fr;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 600px) {
  .pl-tickets__prices   { gap: 8px; }
  .pl-tickets__price    { padding: 12px 8px; }
  .pl-tickets__price-num { font-size: 1.3rem; }
}

/* ── 15. WIRED IMAGES ───────────────────────────────────────── */

/* Header logo PNG — wide lockup, preserve ratio */
.pl-logo__img {
  width: 160px;
  height: auto;
  display: block;
}

/* Hero astronaut PNG — transparent cutout, floats */
.pl-hero__astronaut-img {
  width: 100%;
  max-width: 440px;
  height: auto;
  display: block;
  pointer-events: none;
  filter:
    drop-shadow(0 0 24px rgba(168, 85, 247, .35))
    drop-shadow(0 0 44px rgba(34, 211, 238, .20));
}
@media (prefers-reduced-motion: no-preference) {
  .pl-hero__astronaut-img { animation: pl-float 5s ease-in-out infinite; }
}

/* Experience tile images — fill the tile, cover */
.pl-tile {
  overflow: hidden;
  padding: 0;
}
.pl-tile__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Schedule photo images — fill the frame */
.pl-schedule__photo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pl-schedule__photo::after { display: none; }

/* ── 17. FIX 1 — DAYTIME/NIGHT CARD HOVER EFFECTS ──────────────── */

.pl-parties__card-bg {
  transition: transform .5s var(--ease);
}

@media (prefers-reduced-motion: no-preference) {
  .pl-parties__card:hover .pl-parties__card-bg,
  .pl-parties__card:focus-within .pl-parties__card-bg {
    transform: scale(1.06);
  }
}

.pl-parties__card:hover .pl-parties__card-overlay,
.pl-parties__card:focus-within .pl-parties__card-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.32) 55%, transparent 80%);
}

.pl-parties__subtitle {
  position: absolute;
  bottom: 56px;
  left: 24px;
  right: 24px;
  z-index: 3;
  margin: 0;
  font-family: var(--font-body);
  font-size: .82rem;
  color: rgba(255,255,255,.82);
  letter-spacing: .02em;
  line-height: 1.5;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .28s var(--ease), transform .28s var(--ease);
}

@media (prefers-reduced-motion: no-preference) {
  .pl-parties__card:hover .pl-parties__subtitle,
  .pl-parties__card:focus-within .pl-parties__subtitle {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Touch: always visible */
@media (hover: none) {
  .pl-parties__subtitle { opacity: 1; transform: translateY(0); }
}

/* ── 18. FIX 2 — STAT CARDS: ANIMATED NEON BORDER ──────────────── */

@property --pl-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

/* Gradient border via background-clip: padding-box + border-box (works with border-radius) */
.pl-stat-card {
  border: 2px solid transparent;
  background-color: transparent;
  background-image:
    linear-gradient(var(--pl-card), var(--pl-card)),
    conic-gradient(from var(--pl-angle), #a855f7 0%, #ec4899 22%, #06b6d4 45%, #8b5cf6 68%, #a855f7 100%);
  background-origin: padding-box, border-box;
  background-clip: padding-box, border-box;
}

@keyframes pl-border-spin {
  to { --pl-angle: 360deg; }
}

@media (prefers-reduced-motion: no-preference) {
  .pl-stat-card:nth-child(1) { animation: pl-border-spin 7s linear infinite; }
  .pl-stat-card:nth-child(2) { animation: pl-border-spin 7s linear infinite; animation-delay: -1.75s; }
  .pl-stat-card:nth-child(3) { animation: pl-border-spin 7s linear infinite; animation-delay: -3.5s; }
  .pl-stat-card:nth-child(4) { animation: pl-border-spin 7s linear infinite; animation-delay: -5.25s; }
}

@media (prefers-reduced-motion: reduce) {
  .pl-stat-card {
    background-image:
      linear-gradient(var(--pl-card), var(--pl-card)),
      linear-gradient(135deg, rgba(168,85,247,.7), rgba(236,72,153,.6), rgba(6,182,212,.6));
  }
}

/* ── 19. FIX 3 — EXPERIENCE: 3-COLUMN SIDE-TILE LAYOUT ─────────── */

.pl-exp__layout {
  display: grid;
  grid-template-columns: 130px 1fr 130px;
  gap: 0 28px;
  align-items: center;
  margin-bottom: 72px;
}

.pl-exp__center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.pl-exp__center .pl-exp__badge { margin-bottom: 22px; }
.pl-exp__center .pl-exp__h1   { align-items: center; }
.pl-exp__center .pl-exp__para { text-align: center; max-width: 440px; margin: 0 auto 32px; }

.pl-exp__side {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-self: stretch;
  justify-content: space-around;
  padding: 24px 0;
}
.pl-exp__side--left  { align-items: flex-end; }
.pl-exp__side--right { align-items: flex-start; }

.pl-exp__stile-wrap { flex-shrink: 0; }

.pl-exp__stile {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--pl-border);
  width: 100%;
  height: 100%;
}
.pl-exp__stile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pl-exp__stile-wrap--1 { width: 112px; height:  92px; transform: rotate(-6deg); }
.pl-exp__stile-wrap--2 { width: 100px; height: 116px; transform: rotate( 4deg); }
.pl-exp__stile-wrap--3 { width: 108px; height:  88px; transform: rotate(-3deg); }
.pl-exp__stile-wrap--4 { width: 106px; height: 118px; transform: rotate( 5deg); }
.pl-exp__stile-wrap--5 { width: 114px; height:  86px; transform: rotate(-4deg); }
.pl-exp__stile-wrap--6 { width: 104px; height: 100px; transform: rotate( 3deg); }

.pl-exp__stile-wrap--1 .pl-exp__stile,
.pl-exp__stile-wrap--5 .pl-exp__stile { box-shadow: 0 0 18px rgba(168,85,247,.22), 0 8px 22px rgba(0,0,0,.5); }
.pl-exp__stile-wrap--2 .pl-exp__stile,
.pl-exp__stile-wrap--6 .pl-exp__stile { box-shadow: 0 0 18px rgba(236,72,153,.22), 0 8px 22px rgba(0,0,0,.5); }
.pl-exp__stile-wrap--3 .pl-exp__stile,
.pl-exp__stile-wrap--4 .pl-exp__stile { box-shadow: 0 0 18px rgba(34,211,238,.22), 0 8px 22px rgba(0,0,0,.5); }

@media (prefers-reduced-motion: no-preference) {
  .pl-exp__stile-wrap--1 .pl-exp__stile { animation: pl-tile-float 4.8s ease-in-out infinite; }
  .pl-exp__stile-wrap--2 .pl-exp__stile { animation: pl-tile-float 5.4s ease-in-out infinite; animation-delay: -.9s; }
  .pl-exp__stile-wrap--3 .pl-exp__stile { animation: pl-tile-float 5.1s ease-in-out infinite; animation-delay: -1.7s; }
  .pl-exp__stile-wrap--4 .pl-exp__stile { animation: pl-tile-float 4.6s ease-in-out infinite; animation-delay: -2.5s; }
  .pl-exp__stile-wrap--5 .pl-exp__stile { animation: pl-tile-float 5.7s ease-in-out infinite; animation-delay: -3.3s; }
  .pl-exp__stile-wrap--6 .pl-exp__stile { animation: pl-tile-float 4.9s ease-in-out infinite; animation-delay: -4.1s; }
}

.pl-exp__featured-wrap {
  position: relative;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}

/* Override absolute positioning from original .pl-exp__featured */
.pl-exp__featured-wrap .pl-exp__featured {
  position: relative;
  top: auto; left: auto;
  transform: none;
  width: 100%;
  max-width: none;
  height: 340px;
}

.pl-exp__chip {
  position: absolute;
  background: var(--pl-card);
  border-radius: 14px;
  padding: 10px 14px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 4;
}
.pl-exp__chip--tr {
  top: -14px; right: -18px;
  border: 1px solid rgba(236,72,153,.35);
  box-shadow: 0 0 20px rgba(236,72,153,.12), 0 8px 24px rgba(0,0,0,.45);
}
.pl-exp__chip--bl {
  bottom: 14px; left: -18px;
  border: 1px solid rgba(34,211,238,.35);
  box-shadow: 0 0 20px rgba(34,211,238,.12), 0 8px 24px rgba(0,0,0,.45);
}
.pl-exp__chip-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1;
  margin-bottom: 2px;
}
.pl-exp__chip--tr .pl-exp__chip-num { color: var(--pl-pink); }
.pl-exp__chip--bl .pl-exp__chip-num { color: var(--pl-cyan); }
.pl-exp__chip-cap {
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pl-muted);
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .pl-exp__layout { grid-template-columns: 100px 1fr 100px; gap: 0 18px; }
  .pl-exp__stile-wrap--1 { width: 88px; height: 74px; }
  .pl-exp__stile-wrap--2 { width: 80px; height: 94px; }
  .pl-exp__stile-wrap--3 { width: 86px; height: 72px; }
  .pl-exp__stile-wrap--4 { width: 84px; height: 96px; }
  .pl-exp__stile-wrap--5 { width: 90px; height: 70px; }
  .pl-exp__stile-wrap--6 { width: 82px; height: 82px; }
}

@media (max-width: 900px) {
  .pl-exp__layout { grid-template-columns: 1fr; gap: 0; }
  .pl-exp__side   { display: none; }
  .pl-exp__center { align-items: flex-start; text-align: left; }
  .pl-exp__center .pl-exp__h1   { align-items: flex-start; }
  .pl-exp__center .pl-exp__para { text-align: left; margin-left: 0; max-width: 100%; }
  .pl-exp__featured-wrap { max-width: 100%; }
  .pl-exp__featured-wrap .pl-exp__featured { height: 260px; }
}

@media (max-width: 600px) {
  .pl-exp__featured-wrap .pl-exp__featured { height: 200px; }
  .pl-exp__chip--tr { right: -6px; top: -8px; }
  .pl-exp__chip--bl { left: -6px; bottom: 10px; }
}

/* ── 16. LOCATION ANCHOR OFFSET ─────────────────────────────── */
/* #location lives inside #tickets so nav scrolls to the tickets area.
   scroll-margin-top accounts for the sticky 72px header. */
.pl-anchor-offset {
  display: block;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  scroll-margin-top: 80px;
}
