/* =====================================================
   BLOOM BEACH FESTIVAL — Stylesheet
   Brand palette pulled from official brand guide (Apr 2026)
   ===================================================== */

:root{
  /* Brand palette */
  --blue:        #BCE0F4;   /* C25 — sky/water */
  --blue-deep:   #6FB8E0;
  --blue-ink:    #2a7fb8;
  --green:       #82C158;   /* C55 M0 Y75 — palm */
  --orange:      #F4A82B;   /* M35 Y100 — sunset */
  --orange-deep: #d8901a;
  --pink:        #F4B6D1;   /* M35 — coral */
  --yellow:      #FFE282;   /* M10 Y55 — sand */

  /* Neutrals */
  --ink:         #0A2540;
  --ink-soft:    #1a3658;
  --paper:       #fefcf7;
  --paper-warm:  #fff8ed;
  --sand:        #fff2d8;

  /* System */
  --shadow-soft: 0 8px 32px rgba(10,37,64,.08);
  --shadow-pop:  0 20px 60px rgba(10,37,64,.18);
  --radius:      18px;
  --radius-lg:   28px;
  --radius-pill: 999px;

  --font-display: 'Sansita Swashed', Georgia, serif;
  --font-chunk:   'Bagel Fat One', 'Sansita Swashed', sans-serif;
  --font-body:    'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

  --nav-h: 76px;
}

/* =========== RESET / BASE =========== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:transparent}
ul{list-style:none;padding:0;margin:0}
input{font:inherit}

.container{
  width:100%;
  max-width:1320px;
  margin:0 auto;
  padding:0 32px;
}

.display{
  font-family:var(--font-chunk);
  font-weight:400;
  font-size:clamp(2.4rem, 5vw, 4.6rem);
  line-height:1;
  letter-spacing:-.01em;
  margin:0 0 24px;
  color:var(--ink);
}
.display em{
  font-family:var(--font-display);
  font-weight:900;
  font-style:italic;
  color:var(--orange);
}
.display-light{color:var(--paper-warm)}
.eyebrow{
  font-family:var(--font-body);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--orange-deep);
  margin:0 0 16px;
}
.eyebrow-light{color:var(--yellow)}
.lede{
  font-size:clamp(1rem, 1.3vw, 1.18rem);
  color:var(--ink-soft);
  max-width:60ch;
  margin:0 0 24px;
}
.lede-light{color:rgba(255,255,255,.85)}

/* =========== BUTTONS =========== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  border-radius:var(--radius-pill);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn-sm{padding:10px 20px;font-size:.82rem}
.btn-block{width:100%}
.btn-primary{
  background:var(--orange);
  color:var(--ink);
  box-shadow:0 4px 0 var(--orange-deep);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--orange-deep)}
.btn-primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--orange-deep)}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:2px solid var(--ink);
}
.btn-ghost:hover{background:var(--ink);color:var(--paper-warm)}
.btn-ghost.btn-light{color:var(--paper-warm);border-color:var(--paper-warm)}
.btn-ghost.btn-light:hover{background:var(--paper-warm);color:var(--ink)}

/* =========== NAV =========== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:14px 0;
  transition:background .3s ease, box-shadow .3s ease;
}
.nav.scrolled{
  background:rgba(254,252,247,.92);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  box-shadow:0 1px 0 rgba(10,37,64,.06);
}
.nav-inner{
  max-width:1320px;margin:0 auto;
  padding:0 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.nav-logo{display:flex;align-items:center}
.nav-logo-img{height:42px;width:auto}
.logo-dark{display:none}
.nav.scrolled .logo-light{display:none}
.nav.scrolled .logo-dark{display:block}
.nav-links{display:flex;gap:28px}
.nav-links a{
  font-size:.88rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--paper-warm);
  position:relative;
  padding:6px 0;
}
.nav-links a::after{
  content:'';position:absolute;left:50%;bottom:0;
  width:0;height:2px;background:var(--orange);
  transition:width .25s ease,left .25s ease;
}
.nav-links a:hover::after{width:100%;left:0}
.nav.scrolled .nav-links a{color:var(--ink)}
.nav-cta{display:flex;align-items:center;gap:12px}
.nav-burger{display:none;flex-direction:column;gap:5px;padding:8px}
.nav-burger span{width:24px;height:2px;background:var(--paper-warm);transition:.2s}
.nav.scrolled .nav-burger span{background:var(--ink)}

/* =========== HERO =========== */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  padding:120px 32px 80px;
  overflow:hidden;
  isolation:isolate;
}
.hero-media{position:absolute;inset:0;z-index:-1}
.hero-img{width:100%;height:100%;object-fit:cover;animation:slowZoom 18s ease-out forwards}
.hero-video{width:100%;height:100%;object-fit:cover}
@keyframes slowZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(10,37,64,.1) 0%, rgba(10,37,64,.55) 70%, rgba(10,37,64,.85) 100%),
    linear-gradient(180deg, rgba(10,37,64,.2) 0%, rgba(10,37,64,.65) 100%);
}
.hero-content{position:relative;z-index:2;max-width:980px;width:100%}
.hero-logo{
  width:min(70vw, 620px);
  margin:0 auto 24px;
  filter:drop-shadow(0 8px 30px rgba(0,0,0,.45));
  animation:fadeUp 1s ease-out both;
}
.hero-date{
  font-family:var(--font-chunk);
  font-size:clamp(1.1rem, 2vw, 1.5rem);
  color:var(--paper-warm);
  letter-spacing:.06em;
  margin:0 0 40px;
  animation:fadeUp 1.1s .15s ease-out both;
}

/* Countdown */
.countdown{
  display:flex;justify-content:center;gap:18px;
  margin:0 0 40px;
  animation:fadeUp 1.2s .25s ease-out both;
}
.cd-unit{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-radius:18px;
  padding:14px 18px;
  min-width:88px;
  display:flex;flex-direction:column;align-items:center;
}
.cd-num{
  font-family:var(--font-chunk);
  font-size:clamp(1.8rem,3vw,2.6rem);
  color:var(--paper-warm);
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.cd-label{
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--yellow);
  margin-top:6px;
}

.hero-note{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--paper-warm);
  background:rgba(10,37,64,.72);
  border:1px solid rgba(255,226,130,.5);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:8px 18px;border-radius:var(--radius-pill);
  margin:0 0 22px;
  animation:fadeUp 1.25s .3s ease-out both;
}
.hero-note::before{
  content:'';width:8px;height:8px;border-radius:50%;
  background:var(--orange);
  animation:pulse 2s ease-out infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(244,168,43,.6)}
  70%{box-shadow:0 0 0 9px rgba(244,168,43,0)}
  100%{box-shadow:0 0 0 0 rgba(244,168,43,0)}
}
.hero-ctas{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
  animation:fadeUp 1.3s .35s ease-out both;
}
.hero-ctas .btn-ghost{color:var(--paper-warm);border-color:var(--paper-warm)}
.hero-ctas .btn-ghost:hover{background:var(--paper-warm);color:var(--ink)}

@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* Sticker */
.sticker{
  position:absolute;
  right:6vw;bottom:14vh;
  width:160px;height:160px;
  display:flex;align-items:center;justify-content:center;
  color:var(--ink);
  text-align:center;
  background:var(--yellow);
  border-radius:50%;
  box-shadow:var(--shadow-pop);
  animation:spin 22s linear infinite, bob 4s ease-in-out infinite;
  z-index:3;
}
.sticker-svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 12s linear infinite reverse;opacity:0}
.sticker-center{
  font-family:var(--font-chunk);
  font-size:1.1rem;
  line-height:1.1;
  letter-spacing:.04em;
}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bob{50%{transform:translateY(-8px)}}

/* Scroll indicator */
.hero-scroll{
  position:absolute;left:6vw;bottom:24px;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:var(--paper-warm);
  font-size:.68rem;letter-spacing:.3em;
  opacity:.7;
}
.hero-scroll-line{
  width:1px;height:38px;background:var(--paper-warm);position:relative;overflow:hidden;
}
.hero-scroll-line::after{
  content:'';position:absolute;top:-38px;left:0;width:100%;height:38px;
  background:var(--orange);
  animation:scrollDown 2s ease-in-out infinite;
}
@keyframes scrollDown{
  0%{top:-38px}50%{top:0}100%{top:38px}
}

/* =========== MARQUEE =========== */
.marquee{
  background:var(--ink);
  color:var(--paper-warm);
  padding:18px 0;
  overflow:hidden;
  border-top:3px solid var(--orange);
  border-bottom:3px solid var(--orange);
}
.marquee-track{
  display:flex;gap:48px;
  white-space:nowrap;
  animation:slide 30s linear infinite;
  font-family:var(--font-chunk);
  font-size:1.2rem;
  letter-spacing:.08em;
}
.marquee-track span{color:var(--yellow)}
.marquee-track span:nth-child(even){color:var(--paper-warm)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* =========== SECTION HEADS =========== */
section{padding:96px 0}
.section-dark{background:var(--ink);color:var(--paper-warm)}
.section-head{margin-bottom:56px;max-width:780px}
.section-head-center{text-align:center;margin-inline:auto}
.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;max-width:none}
.link-arrow{
  font-weight:700;font-size:.95rem;
  letter-spacing:.04em;
  display:inline-flex;gap:8px;align-items:center;
  border-bottom:2px solid var(--ink);
  padding-bottom:4px;
  transition:gap .2s ease;
}
.link-arrow:hover{gap:14px}

/* =========== ABOUT =========== */
.about{background:var(--paper-warm)}
.about-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:80px;
  align-items:center;
}
.about-meta{
  display:flex;gap:32px;flex-wrap:wrap;margin-top:32px;
  padding-top:24px;
  border-top:1px dashed rgba(10,37,64,.15);
}
.about-meta>div{display:flex;flex-direction:column;gap:4px}
.meta-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--orange-deep);font-weight:700}
.meta-value{font-family:var(--font-chunk);font-size:1.15rem}
.about-photo{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-pop);
  aspect-ratio:4/5;
  transform:rotate(2deg);
}
.about-photo img{width:100%;height:100%;object-fit:cover}

/* =========== LINEUP =========== */
.lineup{background:var(--ink);position:relative;overflow:hidden}
.lineup::before{
  content:'';position:absolute;
  top:-200px;right:-200px;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,var(--blue) 0%,transparent 60%);
  opacity:.15;
  pointer-events:none;
}
.lineup-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.lineup-card{
  position:relative;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius);
  overflow:hidden;
  min-height:220px;
  transition:transform .25s ease, border-color .25s ease, background .25s ease;
}
.lineup-card:hover{transform:translateY(-4px);border-color:var(--orange);background:rgba(244,168,43,.08)}
.lineup-headliner{grid-column:span 2;grid-row:span 2;min-height:460px}
.lineup-card-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:.55;
  transition:opacity .3s ease, transform .6s ease;
}
.lineup-card:hover .lineup-card-bg{opacity:.75;transform:scale(1.05)}
.lineup-card-inner{
  position:relative;
  padding:28px;
  height:100%;
  display:flex;flex-direction:column;justify-content:flex-end;
  z-index:1;
}
.lineup-tag{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--yellow);font-weight:700;
  margin-bottom:8px;
}
.lineup-card h3{
  font-family:var(--font-chunk);
  font-size:clamp(1.6rem, 3vw, 2.4rem);
  margin:0;color:var(--paper-warm);line-height:1;
}
.lineup-headliner h3{font-size:clamp(2.6rem,5vw,4rem)}
.lineup-card p{color:rgba(255,255,255,.7);margin:8px 0 0;font-size:.9rem}
.lineup-cta-card{background:linear-gradient(135deg,var(--orange) 0%,var(--pink) 100%);border:0}
.lineup-cta-card h3,.lineup-cta-card p{color:var(--ink)}
.lineup-cta-card .lineup-card-inner{justify-content:center}

.inline-form{
  display:flex;gap:8px;margin-top:16px;
  background:rgba(255,255,255,.7);
  border-radius:var(--radius-pill);
  padding:6px 6px 6px 18px;
}
.inline-form input{
  border:0;background:transparent;flex:1;outline:none;
  font-size:.92rem;color:var(--ink);
}
.inline-form input::placeholder{color:rgba(10,37,64,.5)}

/* =========== PILLARS =========== */
.pillars{background:var(--paper)}
.pillars-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.pillar{
  border-radius:var(--radius-lg);
  padding:40px 32px;
  min-height:280px;
  display:flex;flex-direction:column;
  transition:transform .3s ease;
}
.pillar:hover{transform:translateY(-6px)}
.pillar-icon{
  font-size:2.4rem;margin-bottom:24px;line-height:1;
  width:60px;height:60px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.55);
  border-radius:50%;
}
.pillar h3{
  font-family:var(--font-chunk);
  font-size:1.7rem;
  margin:0 0 12px;line-height:1;
}
.pillar p{color:var(--ink-soft);margin:0}
.pillar-blue{background:var(--blue)}
.pillar-orange{background:var(--orange);color:var(--ink)}
.pillar-pink{background:var(--pink)}

/* =========== GALLERY =========== */
.gallery{background:var(--paper-warm)}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:200px;
  grid-auto-flow:dense;
  gap:14px;
}
.g-item{
  overflow:hidden;border-radius:14px;
  position:relative;background:var(--ink);
  cursor:zoom-in;
}
.g-item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s ease, filter .3s ease;
}
.g-item:hover img{transform:scale(1.06);filter:saturate(1.15)}
.g-tall{grid-row:span 2}
.g-wide{grid-column:span 2}

/* =========== VIP =========== */
.vip{background:var(--ink);color:var(--paper-warm);position:relative;overflow:hidden}
.vip::after{
  content:'VIP';
  position:absolute;
  font-family:var(--font-chunk);
  font-size:30rem;
  color:rgba(244,168,43,.04);
  bottom:-10rem;right:-6rem;
  line-height:1;
  pointer-events:none;
}
.vip-grid{
  display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;
}
.vip-photo{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow-pop);
  transform:rotate(-2deg);
}
.vip-photo img{width:100%;height:100%;object-fit:cover}
.vip-photo-tag{
  position:absolute;top:20px;left:20px;
  background:var(--orange);color:var(--ink);
  padding:8px 16px;border-radius:var(--radius-pill);
  font-family:var(--font-chunk);font-size:.95rem;
  letter-spacing:.06em;
}
.vip-copy .display{color:var(--paper-warm)}
.vip-copy .eyebrow{color:var(--yellow)}
.vip-copy .lede{color:rgba(255,255,255,.8)}
.vip-list{
  margin:24px 0 32px;
  display:grid;gap:12px;
}
.vip-list li{
  display:flex;align-items:center;gap:14px;
  font-size:1.02rem;
  color:rgba(255,255,255,.92);
}
.vip-list li::before{
  content:'';width:8px;height:8px;background:var(--orange);
  border-radius:50%;flex-shrink:0;
}
.vip-ctas{display:flex;gap:12px;flex-wrap:wrap}

/* =========== TICKETS / DROP =========== */
.tickets{background:var(--ink);position:relative;overflow:hidden}
.tickets::before{
  content:'';position:absolute;
  bottom:-220px;left:-180px;
  width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,var(--orange) 0%,transparent 60%);
  opacity:.14;pointer-events:none;
}
.drop-embed{
  max-width:560px;margin:0 auto;
  position:relative;z-index:1;
}
.drop-fine{
  font-size:.74rem;line-height:1.5;
  color:rgba(255,255,255,.45);
  text-align:center;margin:14px auto 0;max-width:46ch;
}
.drop-fine a{color:rgba(255,255,255,.65);text-decoration:underline}
.drop-fine a:hover{color:var(--orange)}
.tickets-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
}
.ticket-card{
  background:var(--paper-warm);
  border-radius:var(--radius);
  padding:32px 24px;
  text-align:center;
  display:flex;flex-direction:column;gap:8px;
  border:1px solid rgba(10,37,64,.08);
}
.ticket-card-active{
  background:var(--orange);
  transform:scale(1.04);
  box-shadow:var(--shadow-pop);
  border-color:transparent;
}
.ticket-card-dark{background:var(--ink);color:var(--paper-warm)}
.ticket-tier{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:700;color:var(--ink-soft);margin:0;
}
.ticket-card-dark .ticket-tier{color:var(--yellow)}
.ticket-price{
  font-family:var(--font-chunk);
  font-size:2.8rem;line-height:1;margin:8px 0;
}
.ticket-status{
  font-size:.85rem;color:var(--ink-soft);margin:8px 0 0;
  font-weight:600;
}
.ticket-card .btn{margin-top:12px}

/* =========== INFO / FAQ =========== */
.info{background:var(--paper-warm)}
.faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.faq details{
  border-bottom:1px solid rgba(10,37,64,.12);
  padding:18px 4px;
  transition:padding .2s ease;
}
.faq details[open]{padding-bottom:24px}
.faq summary{
  font-family:var(--font-chunk);
  font-size:1.3rem;
  cursor:pointer;
  list-style:none;
  display:flex;justify-content:space-between;align-items:center;
  gap:16px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:'+';
  font-family:var(--font-body);
  font-weight:300;
  font-size:1.6rem;
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--ink);
  border-radius:50%;
  transition:transform .25s ease, background .25s ease, color .25s ease;
}
.faq details[open] summary::after{
  content:'−';
  background:var(--orange);
  border-color:var(--orange);
}
.faq p{
  margin:16px 0 0;color:var(--ink-soft);max-width:65ch;
}

/* =========== PARTNERS =========== */
.partners{background:var(--pink)}
.partners-row{
  display:flex;justify-content:center;align-items:center;
  flex-wrap:wrap;
  gap:48px 64px;
  margin:48px 0;
}
.partner-logo{
  font-family:var(--font-chunk);
  font-size:2rem;
  color:var(--ink);
  opacity:.45;
  transition:opacity .2s ease, transform .2s ease;
}
.partner-logo:hover{opacity:1;transform:translateY(-3px)}
.partners-cta{
  text-align:center;
  margin-top:32px;
  display:flex;flex-direction:column;align-items:center;gap:16px;
}
.partners-cta p{
  font-family:var(--font-chunk);
  font-size:1.6rem;
  margin:0;
}

/* =========== FOOTER =========== */
.footer{
  background:var(--ink);
  color:var(--paper-warm);
  padding:80px 0 24px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1.2fr 1fr 1fr;
  gap:48px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-brand img{height:48px;margin-bottom:16px}
.footer-tag{color:rgba(255,255,255,.6);font-size:.95rem;margin:0}
.footer-head{
  font-family:var(--font-chunk);
  font-size:1rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--yellow);
  margin:0 0 16px;
}
.footer-col ul li{margin-bottom:8px}
.footer-col a{color:rgba(255,255,255,.7);transition:color .2s ease}
.footer-col a:hover{color:var(--orange)}
.footer-form{
  display:flex;align-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-pill);
  padding:4px 4px 4px 18px;
}
.footer-form input{
  border:0;background:transparent;flex:1;outline:none;
  color:var(--paper-warm);
  font-size:.92rem;
  padding:10px 0;
}
.footer-form input::placeholder{color:rgba(255,255,255,.4)}
.footer-form button{
  width:40px;height:40px;border-radius:50%;
  background:var(--orange);color:var(--ink);
  font-size:1.4rem;font-weight:700;
}
.footer-fine{font-size:.78rem;color:rgba(255,255,255,.45);margin:12px 0 0}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding:24px 32px 0;max-width:1320px;margin:0 auto;
  font-size:.85rem;color:rgba(255,255,255,.5);
  flex-wrap:wrap;gap:12px;
}
.footer-bottom a:hover{color:var(--orange)}

/* =========== STICKY MOBILE CTA =========== */
.mobile-cta{
  display:none;
  position:fixed;bottom:0;left:0;right:0;
  padding:14px 18px calc(14px + env(safe-area-inset-bottom));
  background:rgba(254,252,247,.96);
  backdrop-filter:blur(12px);
  box-shadow:0 -4px 24px rgba(10,37,64,.12);
  z-index:40;
}

/* =========== LIGHTBOX =========== */
.lightbox{
  position:fixed;inset:0;z-index:100;
  background:rgba(5,15,30,.92);
  display:flex;align-items:center;justify-content:center;
  padding:32px;
}
.lightbox[hidden]{display:none}
.lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.lb-close,.lb-prev,.lb-next{
  position:absolute;top:50%;transform:translateY(-50%);
  width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fff;
  font-size:1.8rem;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.2)}
.lb-close{top:24px;right:24px;transform:none}
.lb-prev{left:24px}
.lb-next{right:24px}

/* =========== THE RUNDOWN (KNOWN / COMING) =========== */
.rundown{background:var(--sand)}
.rundown-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
  max-width:980px;margin:0 auto;
}
.rundown-col{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:36px 32px;
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(10,37,64,.06);
}
.rundown-soon{
  background:var(--ink);color:var(--paper-warm);
  border-color:transparent;
}
.rundown-label{
  font-family:var(--font-chunk);
  font-size:1.4rem;margin:0 0 20px;
  display:flex;align-items:center;gap:10px;
}
.rundown-locked .rundown-label{color:var(--green)}
.rundown-soon .rundown-label{color:var(--yellow)}
.rundown-soon-note{font-size:1.15rem;line-height:1.6;color:rgba(255,255,255,.92);margin:0 0 24px}
.rundown-soon-note b{color:var(--yellow)}
.rundown-list{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.rundown-list li{
  display:flex;flex-direction:column;gap:2px;
  padding-bottom:14px;
  border-bottom:1px dashed rgba(10,37,64,.14);
  font-size:1.02rem;
}
.rundown-soon .rundown-list li{border-bottom-color:rgba(255,255,255,.14);color:rgba(255,255,255,.92)}
.rundown-list li:last-child{border-bottom:0;padding-bottom:0}
.rundown-list li span{
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;
  color:var(--orange-deep);
}
.rundown-soon .rundown-list li span{color:var(--yellow)}
.rundown-cta{
  text-align:center;margin-top:44px;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.rundown-cta p{
  font-family:var(--font-chunk);font-size:1.5rem;line-height:1.1;margin:0;color:var(--ink);
}
/* staggered slide-in — items drop in one after another when scrolled into view */
@keyframes rundownIn{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
.rundown.js-reveal .rundown-label,
.rundown.js-reveal .rundown-list li{opacity:0}
.rundown.js-reveal .rundown-col.revealed .rundown-label{animation:rundownIn .5s cubic-bezier(.16,1,.3,1) both}
.rundown.js-reveal .rundown-col.revealed .rundown-list li{animation:rundownIn .5s cubic-bezier(.16,1,.3,1) both}
.rundown-col.revealed .rundown-list li:nth-child(1){animation-delay:.12s}
.rundown-col.revealed .rundown-list li:nth-child(2){animation-delay:.20s}
.rundown-col.revealed .rundown-list li:nth-child(3){animation-delay:.28s}
.rundown-col.revealed .rundown-list li:nth-child(4){animation-delay:.36s}
.rundown-col.revealed .rundown-list li:nth-child(5){animation-delay:.44s}
.rundown-soon.revealed .rundown-label{animation-delay:.10s}
.rundown-soon.revealed .rundown-list li:nth-child(1){animation-delay:.22s}
.rundown-soon.revealed .rundown-list li:nth-child(2){animation-delay:.30s}
.rundown-soon.revealed .rundown-list li:nth-child(3){animation-delay:.38s}
.rundown-soon.revealed .rundown-list li:nth-child(4){animation-delay:.46s}
.rundown-soon.revealed .rundown-list li:nth-child(5){animation-delay:.54s}

/* =========== LINEUP TEASER =========== */
.lineup-teaser{
  background:var(--ink);position:relative;overflow:hidden;text-align:center;
}
.lineup-teaser-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:.18;
  filter:grayscale(.3) contrast(1.1);
  mask-image:radial-gradient(ellipse at center, #000 30%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 30%, transparent 78%);
}
.lineup-teaser-inner{position:relative;z-index:1;max-width:680px;display:flex;flex-direction:column;align-items:center}
.lineup-teaser-hint{
  font-size:.82rem;letter-spacing:.04em;
  color:rgba(255,255,255,.45);margin:18px 0 0;
}

/* =========== PARTNERS TILES =========== */
.partners-tiles{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  margin:48px 0 16px;
}
.partner-tile{
  background:rgba(255,255,255,.6);
  border:1px solid rgba(10,37,64,.08);
  border-radius:var(--radius);
  padding:32px 28px;
  transition:transform .25s ease, background .25s ease;
}
.partner-tile:hover{transform:translateY(-5px);background:var(--paper-warm)}
.partner-tile-icon{
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  background:var(--ink);color:var(--yellow);
  font-size:1.4rem;margin-bottom:18px;
}
.partner-tile h3{font-family:var(--font-chunk);font-size:1.3rem;margin:0 0 8px;line-height:1.1}
.partner-tile p{color:var(--ink-soft);margin:0;font-size:.95rem}

/* =========== DROP MODAL =========== */
.drop-modal{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  background:rgba(5,12,24,.74);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:overlayFade .3s ease both;
}
.drop-modal[hidden]{display:none}
@keyframes overlayFade{from{opacity:0}to{opacity:1}}
.drop-modal-overlay{position:absolute;inset:0}
.drop-modal-card{
  position:relative;z-index:1;
  width:100%;max-width:480px;
  max-height:92vh;overflow-y:auto;
  background:linear-gradient(165deg,var(--ink-soft) 0%,var(--ink) 70%);
  border:1px solid rgba(244,168,43,.35);
  border-radius:var(--radius-lg);
  box-shadow:0 0 0 1px rgba(255,255,255,.04), 0 30px 80px rgba(0,0,0,.6), 0 0 60px rgba(244,168,43,.12);
  animation:dropIn .45s cubic-bezier(.16,1,.3,1) both;
}
@keyframes dropIn{from{opacity:0;transform:translateY(28px) scale(.95)}to{opacity:1;transform:none}}
.drop-modal-marquee{
  background:var(--orange);overflow:hidden;padding:9px 0;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.drop-modal-marquee-track{
  display:flex;gap:22px;white-space:nowrap;
  animation:slide 18s linear infinite;
  font-family:var(--font-chunk);font-size:.92rem;letter-spacing:.08em;
  color:var(--ink);
}
.drop-modal-close{
  position:absolute;top:54px;right:16px;z-index:3;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.08);color:var(--paper-warm);
  font-size:1.5rem;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease, transform .2s ease;
}
.drop-modal-close:hover{background:rgba(255,255,255,.2);transform:rotate(90deg)}
.drop-modal-body{padding:32px 32px 28px}
.drop-modal-eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--yellow);margin:0 0 12px;
}
.drop-modal-title{
  font-family:var(--font-chunk);font-weight:400;
  font-size:clamp(2rem,7vw,2.8rem);line-height:.95;
  color:var(--paper-warm);margin:0 0 14px;
}
.drop-modal-title em{font-family:var(--font-display);font-style:italic;font-weight:900;color:var(--orange)}
.drop-modal-sub{
  color:rgba(255,255,255,.75);font-size:.98rem;line-height:1.5;margin:0 0 22px;
}
.drop-modal-embed{min-height:120px}
.drop-modal-fine{
  font-size:.72rem;line-height:1.5;color:rgba(255,255,255,.42);margin:14px 0 0;
}
.drop-modal-fine a{color:rgba(255,255,255,.62);text-decoration:underline}
.drop-modal-fine a:hover{color:var(--orange)}

/* =========== RESPONSIVE =========== */
@media (max-width: 1024px){
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .pillars-grid{grid-template-columns:1fr}
  .partners-tiles{grid-template-columns:1fr}
  .about-grid,.vip-grid{grid-template-columns:1fr;gap:48px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
}

@media (max-width: 700px){
  section{padding:72px 0}
  .container{padding:0 22px}
  .nav-links{display:none}
  .nav-cta .btn{display:none}
  .nav-burger{display:flex}
  .hero{padding:120px 22px 100px}
  .sticker{
    width:120px;height:120px;
    right:18px;bottom:auto;top:90px;
  }
  .sticker-center{font-size:.85rem}
  .countdown{gap:8px}
  .cd-unit{min-width:64px;padding:10px 8px}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}
  .g-wide{grid-column:span 2}
  .rundown-grid{grid-template-columns:1fr}
  .mobile-cta{display:block}
  .hero-scroll{display:none}
  body{padding-bottom:84px}
  .footer-grid{grid-template-columns:1fr}
  .marquee-track{font-size:1rem}
  .about-photo,.vip-photo{transform:none}
  .partner-logo{font-size:1.4rem}
}

/* =========== MOBILE NAV OPEN =========== */
.nav.open .nav-links{
  display:flex;flex-direction:column;
  position:absolute;top:100%;left:0;right:0;
  background:var(--paper-warm);
  padding:24px 32px;
  gap:18px;
  box-shadow:var(--shadow-soft);
}
.nav.open .nav-links a{color:var(--ink)}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}

/* screenshot helper: cap full-viewport hero so full-page captures lay out */
.static-cap .hero{min-height:0!important;height:760px!important}
