/* ═══════════════════════════════════════════════════════════
   LA PARTY LIGHTS 360 — nightclub in a stylesheet
   palette pulled straight off the logo: black, gold, white
   + electric magenta/cyan/violet for the party
   ═══════════════════════════════════════════════════════════ */

:root{
  --ink:#07050c;
  --ink2:#0d0a16;
  --ink3:#120d1e;
  --gold:#F5C445;
  --gold-lt:#FFE9A8;
  --gold-dp:#C9932A;
  --magenta:#FF2D95;
  --cyan:#22E7FF;
  --violet:#8B5CF6;
  --white:#fff;
  --mute:rgba(255,255,255,.62);
  --mute2:rgba(255,255,255,.42);
  --line:rgba(255,255,255,.10);
  --disp:'Anton',Impact,'Arial Narrow Bold',sans-serif;
  --body:'Outfit',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --hand:'Caveat',ui-rounded,cursive;
  --wrap:1180px;
  --r:20px;
}

*,*::before,*::after{box-sizing:border-box}
/* Any element given a `display` by a class would otherwise out-rank the UA's
   [hidden]{display:none}. Everything that toggles with .hidden depends on this. */
[hidden]{display:none!important}
/* NOTE: no `scroll-behavior:smooth` here on purpose. On this page Chrome cancels
   CSS smooth scrolls instantly (anchor jumps landed at the top), so app.js does the
   easing itself AND subtracts the sticky nav height. scroll-padding-top is kept for
   keyboard/native jumps that bypass the JS handler. */
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
section[id]{scroll-margin-top:96px}
body{
  margin:0;
  background:var(--ink);
  color:var(--white);
  font-family:var(--body);
  font-size:clamp(16px,1.05vw,17.5px);
  line-height:1.62;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3{margin:0;line-height:.94;letter-spacing:.01em}
p{margin:0}
.wrap{width:min(var(--wrap),92vw);margin-inline:auto}

.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:#000;padding:12px 18px;z-index:999;border-radius:0 0 10px 0;font-weight:800}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}

/* ── ambience layers ─────────────────────────────────────── */
.spotlight{
  position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,30%),
    rgba(245,196,69,.10), rgba(255,45,149,.05) 42%, transparent 68%);
  transition:background .18s linear;
}
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.32;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='.5'/></svg>");
}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:60}

/* ── nav ─────────────────────────────────────────────────── */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:22px;
  padding:14px clamp(16px,4vw,42px);
  background:rgba(7,5,12,.55);
  backdrop-filter:blur(16px) saturate(1.4);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid transparent;
  transition:background .3s,border-color .3s,padding .3s;
}
.nav.is-stuck{background:rgba(7,5,12,.9);border-bottom-color:var(--line);padding-block:9px}
.nav__brand{display:flex;align-items:center;gap:11px;margin-right:auto;flex-shrink:0}
.nav__brand img{width:46px;height:46px;filter:drop-shadow(0 0 14px rgba(245,196,69,.55))}
.nav__brand span{font-family:var(--disp);font-size:19px;letter-spacing:.03em;line-height:1;white-space:nowrap}
.nav__brand b{color:var(--gold);font-weight:400}
.nav__brand i{
  font-style:normal;color:var(--white);
  text-shadow:0 0 10px rgba(255,255,255,.85),0 0 22px rgba(245,196,69,.6);
}
/* the nav carries more links now — tighten the gap and let it wrap gracefully */
.nav__links{display:flex;gap:19px;flex-wrap:wrap}
.nav__links a{
  font-weight:600;font-size:14px;white-space:nowrap;letter-spacing:.03em;color:var(--mute);
  position:relative;padding:4px 0;transition:color .2s;
}
.nav__links a::after{
  content:'';position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--magenta));transition:right .28s cubic-bezier(.2,.8,.2,1);
}
.nav__links a:hover{color:var(--white)}
.nav__links a:hover::after{right:0}

/* Instagram icon button, always visible next to the phone number */
.nav__ig{
  display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(105deg,#F9CE34,#EE2A7B 46%,#6228D7);
  box-shadow:0 8px 22px -8px rgba(238,42,123,.9);
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s;
}
.nav__ig svg{width:21px;height:21px;fill:#fff}
.nav__ig:hover{transform:translateY(-3px) rotate(-6deg);box-shadow:0 14px 30px -8px rgba(238,42,123,1)}
.mm-ig{color:var(--magenta);border:0}

.nav__burger{display:none;background:none;border:0;padding:10px;cursor:pointer;flex-direction:column;gap:5px}
.nav__burger span{display:block;width:24px;height:2px;background:var(--white);border-radius:2px;transition:transform .3s,opacity .2s}
.nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobilemenu{
  position:sticky;top:74px;z-index:49;display:none;flex-direction:column;
  background:rgba(10,7,18,.97);backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);padding:10px 6vw 20px;
}
.mobilemenu[hidden]{display:none}
.mobilemenu a{padding:13px 2px;border-bottom:1px solid var(--line);font-family:var(--disp);font-size:22px;letter-spacing:.04em}
.mobilemenu .mm-call{color:var(--gold);border:0;margin-top:8px}

/* ── buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:13px 22px;border-radius:999px;font-weight:800;font-size:15px;
  letter-spacing:.02em;cursor:pointer;border:1.5px solid transparent;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,background .22s,color .22s;
  will-change:transform;
}
.btn svg{width:18px;height:18px;fill:currentColor;flex-shrink:0}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(-1px) scale(.98)}

.btn--gold{
  background:linear-gradient(135deg,var(--gold-lt),var(--gold) 45%,var(--gold-dp));
  color:#1a1206;
  box-shadow:0 10px 34px -10px rgba(245,196,69,.75),inset 0 1px 0 rgba(255,255,255,.6);
}
.btn--gold:hover{box-shadow:0 18px 46px -12px rgba(245,196,69,.95),inset 0 1px 0 rgba(255,255,255,.7)}
.btn--ghost{background:rgba(255,255,255,.05);color:var(--white);border-color:rgba(255,255,255,.22)}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45)}
.btn--insta{
  background:linear-gradient(105deg,#F9CE34,#EE2A7B 46%,#6228D7);
  color:#fff;box-shadow:0 12px 40px -12px rgba(238,42,123,.85);
}
.btn--insta:hover{box-shadow:0 20px 52px -12px rgba(238,42,123,1)}
.btn--call{background:rgba(245,196,69,.13);color:var(--gold);border-color:rgba(245,196,69,.42);font-variant-numeric:tabular-nums}
.btn--call:hover{background:var(--gold);color:#1a1206;border-color:var(--gold)}

.btn--big{padding:17px 32px;font-size:16.5px}
.btn--big small{display:block;font-size:12px;font-weight:700;opacity:.72;letter-spacing:.06em;margin-top:1px}
.btn--big span{display:block}
.btn--huge{padding:21px 42px;font-size:clamp(17px,2.4vw,21px);font-family:var(--disp);font-weight:400;letter-spacing:.05em}

/* pulsing halo on the primary CTA — a glow AROUND it, never over the fill */
@keyframes hue{to{background-position:300% 0}}
@keyframes slide{to{background-position:200% 0}}
.pop{position:relative;animation:glowpulse 2.9s ease-in-out infinite}
@keyframes glowpulse{
  0%,100%{box-shadow:0 10px 34px -10px rgba(245,196,69,.75),0 0 0 0 rgba(255,45,149,.0),inset 0 1px 0 rgba(255,255,255,.6)}
  50%    {box-shadow:0 16px 46px -10px rgba(245,196,69,1),0 0 30px 5px rgba(255,45,149,.42),inset 0 1px 0 rgba(255,255,255,.75)}
}
.pop:hover{animation-play-state:paused}

/* ── HERO ────────────────────────────────────────────────── */
.hero{position:relative;z-index:3;overflow:hidden;padding:clamp(40px,6vw,80px) 0 0}
.hero__glow{
  position:absolute;inset:-25% -10% auto;height:120%;
  background:
    radial-gradient(50% 46% at 22% 26%,rgba(255,45,149,.22),transparent 70%),
    radial-gradient(46% 42% at 82% 20%,rgba(34,231,255,.16),transparent 70%),
    radial-gradient(64% 52% at 50% 78%,rgba(245,196,69,.18),transparent 72%);
  filter:blur(24px);
}
.hero__beams{position:absolute;inset:0;overflow:hidden;opacity:.5}
.hero__beams i{
  position:absolute;top:-30%;left:var(--x);width:2px;height:160%;
  background:linear-gradient(180deg,transparent,var(--c),transparent);
  transform-origin:top center;filter:blur(1px);
  animation:sweep var(--d) ease-in-out infinite alternate;
}
.hero__beams i:nth-child(1){--x:8%;--c:rgba(245,196,69,.55);--d:9s}
.hero__beams i:nth-child(2){--x:24%;--c:rgba(255,45,149,.45);--d:11s;animation-delay:-2s}
.hero__beams i:nth-child(3){--x:41%;--c:rgba(34,231,255,.38);--d:8s;animation-delay:-5s}
.hero__beams i:nth-child(4){--x:63%;--c:rgba(245,196,69,.45);--d:12s;animation-delay:-1s}
.hero__beams i:nth-child(5){--x:79%;--c:rgba(139,92,246,.45);--d:10s;animation-delay:-6s}
.hero__beams i:nth-child(6){--x:93%;--c:rgba(255,45,149,.35);--d:13s;animation-delay:-3s}
@keyframes sweep{from{transform:rotate(-13deg)}to{transform:rotate(13deg)}}

.hero__inner{
  position:relative;width:min(var(--wrap),92vw);margin-inline:auto;
  display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,4vw,56px);align-items:center;
  padding-bottom:clamp(30px,5vw,60px);
}

.kicker{
  display:inline-flex;align-items:center;gap:9px;
  font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-lt);background:rgba(245,196,69,.09);
  border:1px solid rgba(245,196,69,.28);border-radius:999px;padding:7px 15px;margin-bottom:22px;
}
.kicker .dot{width:7px;height:7px;border-radius:50%;background:#3ee87a;box-shadow:0 0 10px #3ee87a;animation:blink 2s ease-in-out infinite}
@keyframes blink{50%{opacity:.35}}

.hero__h1{font-family:var(--disp);font-weight:400;text-transform:uppercase}
.hero__h1 span{display:block;font-size:clamp(44px,8.4vw,104px);letter-spacing:.005em}
.hero__h1 .l1,.hero__h1 .l3{color:rgba(255,255,255,.92);font-size:clamp(31px,5.2vw,64px)}
.hero__h1 .l2{
  background:linear-gradient(180deg,#fff 20%,#cfc6ff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 26px rgba(255,255,255,.35));
}
.hero__h1 em{font-style:normal;color:var(--magenta);text-shadow:0 0 24px rgba(255,45,149,.9)}
.hero__h1 .l4{
  background:linear-gradient(100deg,var(--gold-lt),var(--gold) 30%,#fff 50%,var(--gold) 70%,var(--gold-dp));
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shine 5s linear infinite;
  filter:drop-shadow(0 0 30px rgba(245,196,69,.55));
}
@keyframes shine{to{background-position:220% 0}}
.spinword{display:inline-block}

.hero__sub{margin-top:22px;max-width:52ch;font-size:clamp(16px,1.35vw,18.5px);color:var(--mute)}
.hero__sub b{color:var(--white);font-weight:800}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero__note{margin-top:20px;font-size:20px;color:var(--gold-lt);opacity:.85}
.handw{font-family:var(--hand);font-weight:700}

/* ── the cartoon 360 booth (interactive) ───────────────── */
.booth{position:relative;display:grid;place-items:center;gap:10px}
.booth__stage{
  position:relative;display:block;width:min(100%,460px);padding:0;border:0;cursor:pointer;
  background:none;-webkit-tap-highlight-color:transparent;
  filter:drop-shadow(0 26px 44px rgba(0,0,0,.6));
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.booth__stage:hover{transform:translateY(-6px) scale(1.02)}
.booth__stage:active{transform:translateY(-2px) scale(.99)}
.booth__svg{width:100%;height:auto;overflow:visible}

/* platform lights chase around the rim */
.booth__leds circle{fill:var(--gold);animation:ledchase 1.5s linear infinite}
.booth__leds circle:nth-child(1){animation-delay:0s}    .booth__leds circle:nth-child(2){animation-delay:.12s}
.booth__leds circle:nth-child(3){animation-delay:.24s}  .booth__leds circle:nth-child(4){animation-delay:.36s}
.booth__leds circle:nth-child(5){animation-delay:.48s}  .booth__leds circle:nth-child(6){animation-delay:.6s}
.booth__leds circle:nth-child(7){animation-delay:.72s}  .booth__leds circle:nth-child(8){animation-delay:.84s}
.booth__leds circle:nth-child(9){animation-delay:.96s}  .booth__leds circle:nth-child(10){animation-delay:1.08s}
.booth__leds circle:nth-child(11){animation-delay:1.2s} .booth__leds circle:nth-child(12){animation-delay:1.32s}
@keyframes ledchase{
  0%,100%{fill:#6b5520;r:4}
  18%{fill:#fff;r:6.5}
  36%{fill:var(--gold);r:5}
}

/* The camera rides an elliptical path AROUND the platform and the people.
   Two copies exist: one drawn behind the crew, one in front. Each is visible only
   for the half of the lap where it belongs, which is what sells the depth. */
.booth__cam{
  offset-path:path("M 160,188 a 118,40 0 1,0 0,80 a 118,40 0 1,0 0,-80");
  offset-rotate:0deg;                      /* stay upright while orbiting */
  animation:orbit 7s linear infinite;
}
@keyframes orbit{from{offset-distance:0%}to{offset-distance:100%}}

/* 0% = top of the ellipse = behind. 50% = bottom = in front. */
.booth__cam--back {animation:orbit 7s linear infinite, camback  7s linear infinite}
.booth__cam--front{animation:orbit 7s linear infinite, camfront 7s linear infinite}
@keyframes camback {0%,24.9%{opacity:1;transform:scale(.9)}25%,74.9%{opacity:0}75%,100%{opacity:1;transform:scale(.9)}}
@keyframes camfront{0%,24.9%{opacity:0}25%{opacity:1;transform:scale(1.08)}74.9%{opacity:1;transform:scale(1.08)}75%,100%{opacity:0}}

.booth__stage:hover .booth__cam{animation-duration:3.4s}
.booth.is-shooting .booth__cam{animation-duration:.85s}
.booth__blink{animation:blink 1.1s ease-in-out infinite}
.booth__glow{animation:pulse 4.5s ease-in-out infinite;transform-origin:160px 228px}

/* if a browser can't do motion paths, hide the camera rather than park it at 0,0 */
@supports not (offset-path: path("M 0,0 L 1,1")){
  .booth__cam{display:none}
}

/* the friends bob, and jump when you take the shot */
.booth__guy{transform-origin:center bottom}
.booth__guy--a{animation:bob 2.2s ease-in-out infinite}
.booth__guy--b{animation:bob 2.2s ease-in-out infinite .55s}
@keyframes bob{50%{transform:translateY(-7px)}}
.booth.is-shooting .booth__guy--a{animation:jump .55s cubic-bezier(.3,1.6,.5,1) 2}
.booth.is-shooting .booth__guy--b{animation:jump .55s cubic-bezier(.3,1.6,.5,1) .12s 2}
@keyframes jump{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-26px) rotate(-5deg)}}
.booth__arm-l{animation:wave 1.6s ease-in-out infinite;transform-origin:96px 166px}
.booth__arm-r{animation:wave 1.6s ease-in-out infinite .4s;transform-origin:120px 166px}
.booth__arm-w{animation:wave 1.9s ease-in-out infinite .8s;transform-origin:192px 170px}
@keyframes wave{50%{transform:rotate(-16deg)}}

/* the shutter flash */
.booth__flash{
  position:absolute;left:50%;top:56%;translate:-50% -50%;z-index:3;
  width:118%;aspect-ratio:1.45;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(closest-side,
    rgba(255,255,255,.95) 0%, rgba(255,248,228,.72) 32%,
    rgba(245,196,69,.28) 58%, rgba(245,196,69,0) 78%);
  filter:blur(8px);
}
.booth.is-shooting .booth__flash{animation:shutter .5s ease-out}
@keyframes shutter{0%{opacity:0}12%{opacity:.85}100%{opacity:0}}

/* speech bubble */
.booth__bubble{
  position:absolute;left:6%;top:2%;z-index:4;
  font-family:var(--hand);font-weight:700;font-size:clamp(17px,2.2vw,23px);color:#150d02;
  background:var(--gold-lt);padding:8px 16px;border-radius:16px 16px 16px 4px;
  border:3px solid #0b0713;white-space:nowrap;
  transform:rotate(-6deg) scale(0);transform-origin:left bottom;
  transition:transform .3s cubic-bezier(.3,1.6,.5,1);
  box-shadow:0 8px 20px rgba(0,0,0,.5);
}
.booth__bubble.is-on{transform:rotate(-6deg) scale(1)}

/* nudge to tap it */
.booth__tap{
  position:absolute;right:2%;bottom:14%;z-index:4;
  font-family:var(--hand);font-weight:700;font-size:20px;color:var(--gold-lt);
  animation:nudge 1.8s ease-in-out infinite;pointer-events:none;
}
.booth__tap.is-off{opacity:0;transition:opacity .4s}
@keyframes nudge{50%{transform:translateX(7px)}}
.booth__label{font-size:19px;color:var(--mute);text-align:center;margin-top:2px}

/* ── marquee ─────────────────────────────────────────────── */
/* The ribbon is rotated, so its corners stick out past its own box. The wrapper
   gives them room and does the horizontal clipping, which is why the banner is a
   sibling of .hero rather than a child — .hero's overflow:hidden was slicing the
   top-left corner off. */
.marqwrap{
  position:relative;z-index:4;overflow:hidden;
  padding-block:14px;margin-block:-6px;
}
.marquee{
  position:relative;overflow:hidden;padding:15px 0;
  background:linear-gradient(90deg,var(--gold-dp),var(--gold) 22%,var(--gold-lt) 50%,var(--gold) 78%,var(--gold-dp));
  border-block:2px solid rgba(0,0,0,.35);
  /* scaled wider than the viewport so the tilted ends never leave a gap */
  transform:rotate(-1.4deg) scaleX(1.08);
  box-shadow:0 0 60px -10px rgba(245,196,69,.6);
}
.marquee__track{display:flex;width:max-content;animation:roll 26s linear infinite}
.marquee span{
  font-family:var(--disp);font-size:clamp(19px,2.4vw,30px);letter-spacing:.1em;
  color:#140e04;padding-right:28px;white-space:nowrap;
}
@keyframes roll{to{transform:translateX(-50%)}}

/* ── sections ────────────────────────────────────────────── */
.sec{position:relative;z-index:3;padding:clamp(62px,8.5vw,120px) 0}
.sec--alt{background:
  radial-gradient(70% 100% at 50% 0%,rgba(139,92,246,.13),transparent 70%),
  linear-gradient(180deg,var(--ink2),var(--ink))}
.eyebrow{
  font-size:12.5px;font-weight:900;letter-spacing:.2em;color:var(--gold);
  text-transform:uppercase;margin-bottom:14px;
}
.h2{
  font-family:var(--disp);font-weight:400;text-transform:uppercase;
  font-size:clamp(34px,5.6vw,68px);letter-spacing:.01em;max-width:16ch;
}
.h2--big{font-size:clamp(42px,8.5vw,96px);max-width:none;text-align:center}
.hl{
  background:linear-gradient(100deg,var(--gold-lt),var(--gold) 40%,var(--magenta));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 22px rgba(245,196,69,.35));
}
.lede{margin-top:20px;max-width:60ch;font-size:clamp(16px,1.3vw,18px);color:var(--mute)}
.lede--center{margin-inline:auto;text-align:center}

/* ── cards ───────────────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:18px;margin-top:44px}
.card{
  position:relative;padding:30px 26px 28px;border-radius:var(--r);
  background:linear-gradient(160deg,rgba(255,255,255,.065),rgba(255,255,255,.018));
  border:1px solid var(--line);overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s;
}
.card::before{
  content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s;
  background:radial-gradient(340px circle at var(--cx,50%) var(--cy,0%),rgba(245,196,69,.16),transparent 62%);
}
.card:hover{border-color:rgba(245,196,69,.4);box-shadow:0 26px 60px -28px rgba(245,196,69,.55)}
.card:hover::before{opacity:1}
.card__ico{font-size:36px;line-height:1;margin-bottom:16px;filter:drop-shadow(0 6px 16px rgba(0,0,0,.6))}
.card h3{font-family:var(--disp);font-weight:400;font-size:22px;letter-spacing:.02em;text-transform:uppercase;margin-bottom:10px;color:var(--gold-lt)}
.card p{font-size:15.2px;color:var(--mute);position:relative}

/* ── chips ───────────────────────────────────────────────── */
.chips{display:flex;flex-wrap:wrap;gap:11px;margin-top:40px}
.chips li{
  font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.045em;
  font-size:clamp(17px,2.1vw,25px);line-height:1.15;padding:12px 22px 11px;border-radius:999px;
  border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.85);cursor:default;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,border-color .25s,color .25s,box-shadow .25s;
}
.chips li:hover{
  transform:translateY(-4px) rotate(-1.6deg) scale(1.04);
  background:linear-gradient(135deg,var(--gold),var(--gold-dp));
  border-color:var(--gold);color:#150e03;
  box-shadow:0 14px 34px -12px rgba(245,196,69,.85);
}
.chips li:nth-child(3n):hover{background:linear-gradient(135deg,var(--magenta),#b8156a);border-color:var(--magenta);color:#fff;box-shadow:0 14px 34px -12px rgba(255,45,149,.85)}
.chips li:nth-child(4n):hover{background:linear-gradient(135deg,var(--cyan),#0e9fb5);border-color:var(--cyan);color:#04222a;box-shadow:0 14px 34px -12px rgba(34,231,255,.8)}
.chips__note{margin-top:24px;font-size:22px;color:var(--mute)}

/* ── steps ───────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:26px;margin-top:48px}
.steps li{position:relative;padding-top:14px}
.steps__n{
  /* line-height must stay >=1 — a tighter one clips the top of the digits, and
     background-clip:text has no overflow to spill into. */
  display:block;font-family:var(--disp);font-size:clamp(58px,7.5vw,92px);line-height:1.02;
  background:linear-gradient(180deg,rgba(245,196,69,.95),rgba(245,196,69,.10));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:4px;
  padding-top:2px;
}
.steps h3{font-family:var(--disp);font-weight:400;font-size:24px;text-transform:uppercase;letter-spacing:.02em;margin-bottom:9px}
.steps p{color:var(--mute);font-size:15.4px}

.included{
  margin-top:56px;padding:34px clamp(22px,3.6vw,40px);border-radius:var(--r);
  border:1px solid rgba(245,196,69,.24);
  background:linear-gradient(150deg,rgba(245,196,69,.09),rgba(255,45,149,.05) 60%,transparent);
}
.included__h{font-family:var(--disp);font-weight:400;font-size:clamp(22px,3vw,32px);text-transform:uppercase;letter-spacing:.03em;margin-bottom:20px;color:var(--gold-lt)}
.included ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 26px}
.included li{position:relative;padding-left:28px;font-size:15.4px;color:rgba(255,255,255,.86)}
.included li::before{
  content:'✦';position:absolute;left:0;top:-1px;color:var(--gold);
  font-size:15px;text-shadow:0 0 12px rgba(245,196,69,.8);
}

/* ── instagram ───────────────────────────────────────────── */
.sec--insta{background:
  radial-gradient(60% 80% at 78% 40%,rgba(238,42,123,.16),transparent 70%),
  linear-gradient(180deg,var(--ink),var(--ink3))}
.insta{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center}
.insta .btn{margin-top:30px}
.qr{margin:0;display:grid;justify-items:center;gap:16px}
.qr__frame{
  display:block;cursor:pointer;position:relative;padding:16px;border-radius:26px;background:#fff;
  box-shadow:0 30px 70px -24px rgba(238,42,123,.7),0 0 0 3px rgba(255,255,255,.1);
  transform:rotate(2.4deg);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;
}
.qr__frame::before{
  content:'';position:absolute;inset:-6px;border-radius:32px;z-index:-1;
  background:linear-gradient(135deg,#F9CE34,#EE2A7B 50%,#6228D7);
  background-size:200% 200%;animation:hue 7s linear infinite;filter:blur(10px);opacity:.85;
}
.qr__frame:hover{transform:rotate(-1.6deg) scale(1.04);box-shadow:0 40px 90px -24px rgba(238,42,123,.9)}
.qr__frame img{width:clamp(190px,20vw,250px);height:auto;border-radius:8px}
.qr figcaption{text-align:center;display:grid;gap:2px}
.qr figcaption .handw{font-size:21px;color:var(--gold-lt)}
.qr figcaption b{font-family:var(--disp);font-weight:400;font-size:23px;letter-spacing:.05em;text-transform:uppercase}

/* ── book ────────────────────────────────────────────────── */
.sec--book{background:linear-gradient(180deg,var(--ink3),var(--ink));overflow:hidden}
.book{position:relative;text-align:center}
.book__glow{
  position:absolute;left:50%;top:-40%;translate:-50% 0;width:min(900px,120vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(245,196,69,.20),rgba(255,45,149,.10) 45%,transparent 68%);
  filter:blur(30px);pointer-events:none;animation:pulse 6s ease-in-out infinite;
}
.book>*:not(.book__glow){position:relative}
.book__cta{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:38px}
.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;margin-top:52px;text-align:left}
.info__box{
  display:block;padding:20px 22px;border-radius:16px;
  background:rgba(255,255,255,.045);border:1px solid var(--line);
  transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,background .25s;
}
a.info__box:hover{transform:translateY(-4px);border-color:rgba(245,196,69,.5);background:rgba(245,196,69,.08)}
.info__k{display:block;font-size:11.5px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.info__box b{font-size:16px;font-weight:700;overflow-wrap:anywhere}

/* ── promo bar (top ribbon) ──────────────────────────────── */
.promobar{
  position:relative;z-index:51;
  /* the stops loop back to the start colour so the animated slide never shows a hard edge */
  background:linear-gradient(90deg,var(--gold-lt),var(--gold) 14%,var(--gold-dp) 28%,
    var(--magenta) 44%,var(--gold-dp) 62%,var(--gold) 78%,var(--gold-lt));
  background-size:200% 100%;animation:slide 14s linear infinite;
  box-shadow:0 6px 30px -8px rgba(245,196,69,.7);
}
.promobar[hidden]{display:none}
.promobar__in{
  width:min(var(--wrap),94vw);margin-inline:auto;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  padding:12px 0 13px;line-height:1.45;
}
.promobar__flash{
  font-family:var(--disp);font-size:13px;letter-spacing:.14em;color:#fff;
  background:rgba(0,0,0,.42);padding:4px 11px;border-radius:999px;
  animation:blink 1.6s ease-in-out infinite;flex-shrink:0;
}
.promobar__txt{font-size:14.5px;font-weight:700;color:#150d02;text-align:center}
.promobar__txt b{font-weight:900}
.promobar__cta{
  font-size:12.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;
  background:#150d02;color:var(--gold-lt);padding:7px 15px;border-radius:999px;
  white-space:nowrap;transition:transform .2s,background .2s;
}
.promobar__cta:hover{transform:translateY(-2px);background:#000}

/* ── promo card ──────────────────────────────────────────── */
.promo{
  position:relative;margin-top:46px;padding:clamp(28px,4vw,46px);border-radius:26px;overflow:hidden;
  border:2px solid rgba(245,196,69,.55);text-align:center;
  background:linear-gradient(155deg,rgba(255,45,149,.14),rgba(245,196,69,.12) 55%,rgba(139,92,246,.12));
  box-shadow:0 44px 100px -50px rgba(245,196,69,.95);
}
.promo[hidden]{display:none}
.promo__glow{
  position:absolute;left:50%;top:-60%;translate:-50% 0;width:min(760px,130%);aspect-ratio:1;
  background:radial-gradient(circle,rgba(245,196,69,.3),rgba(255,45,149,.16) 45%,transparent 68%);
  filter:blur(30px);animation:pulse 5s ease-in-out infinite;
}
.promo>*:not(.promo__glow){position:relative}
.promo__tag{
  display:inline-block;font-family:var(--disp);font-size:13px;letter-spacing:.22em;
  text-transform:uppercase;color:#150d02;background:linear-gradient(135deg,var(--gold-lt),var(--gold));
  padding:7px 17px;border-radius:999px;margin-bottom:16px;
  box-shadow:0 0 26px rgba(245,196,69,.7);
}
.promo__head{
  font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(30px,6vw,64px);line-height:.95;
  background:linear-gradient(100deg,var(--gold-lt),#fff 32%,var(--gold) 58%,var(--magenta));
  background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shine 6s linear infinite;filter:drop-shadow(0 0 26px rgba(245,196,69,.45));
}
.promo__detail{margin:16px auto 0;max-width:56ch;font-size:clamp(15.5px,1.4vw,17.5px);color:rgba(255,255,255,.88)}
.promo__deadline{
  margin-top:20px;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;
  padding:11px 20px;border-radius:999px;background:rgba(0,0,0,.42);border:1px solid rgba(245,196,69,.4);
}
.promo__deadline span{font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.promo__deadline b{font-family:var(--disp);font-weight:400;font-size:clamp(19px,2.6vw,26px);letter-spacing:.04em;color:var(--gold-lt)}
.promo__deadline em{
  font-style:normal;font-size:12.5px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;
  color:#150d02;background:var(--magenta);padding:5px 11px;border-radius:999px;
  box-shadow:0 0 20px rgba(255,45,149,.7);
}
.promo__cta{display:flex;flex-wrap:wrap;gap:13px;justify-content:center;margin-top:26px}

/* ── availability calendar ───────────────────────────────── */
.cal{
  margin-top:44px;padding:clamp(22px,3.4vw,34px);border-radius:var(--r);text-align:left;
  border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
}
.cal__top{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.cal__h{font-family:var(--disp);font-weight:400;font-size:clamp(22px,3vw,30px);text-transform:uppercase;letter-spacing:.04em;color:var(--gold-lt)}
.cal__nav{display:flex;align-items:center;gap:12px}
.cal__nav b{font-family:var(--disp);font-weight:400;font-size:19px;letter-spacing:.05em;min-width:9.5ch;text-align:center}
.cal__arrow{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--line);cursor:pointer;
  background:rgba(255,255,255,.05);color:var(--white);font-size:20px;line-height:1;
  transition:background .2s,border-color .2s,transform .2s;
}
.cal__arrow:hover:not(:disabled){background:rgba(245,196,69,.16);border-color:var(--gold);transform:translateY(-2px)}
.cal__arrow:disabled{opacity:.3;cursor:not-allowed}
.cal__sub{color:var(--mute);font-size:14px;margin-top:8px}
/* capped so the square day cells stay calendar-sized instead of stretching to the container */
.cal__dow,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:520px;margin-inline:auto}
.cal__dow{margin-top:18px;margin-bottom:6px}
.cal__dow span{text-align:center;font-size:11px;font-weight:900;letter-spacing:.1em;color:var(--mute2)}
.cal__d{
  aspect-ratio:1;display:grid;place-items:center;border-radius:11px;font-size:14.5px;font-weight:700;
  border:1px solid var(--line);background:rgba(255,255,255,.04);color:rgba(255,255,255,.88);
  cursor:pointer;transition:transform .18s,background .18s,border-color .18s,color .18s;
}
.cal__d:hover:not(:disabled){transform:translateY(-3px);border-color:var(--gold);background:rgba(245,196,69,.16)}
.cal__d.is-blank{border:0;background:none;cursor:default;pointer-events:none}
.cal__d.is-past{opacity:.22;cursor:not-allowed;pointer-events:none}
.cal__d.is-full{
  background:repeating-linear-gradient(135deg,rgba(255,45,149,.22) 0 6px,rgba(255,45,149,.07) 6px 12px);
  border-color:rgba(255,45,149,.4);color:rgba(255,255,255,.42);cursor:not-allowed;pointer-events:none;
  text-decoration:line-through;
}
.cal__d.is-part{border-color:rgba(34,231,255,.5);background:rgba(34,231,255,.12);color:#c8f6ff}
.cal__d.is-picked{background:linear-gradient(135deg,var(--gold-lt),var(--gold) 50%,var(--gold-dp));border-color:var(--gold);color:#1a1206;box-shadow:0 8px 24px -8px rgba(245,196,69,.9)}
.cal__key{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:18px;font-size:12.8px;color:var(--mute)}
.cal__key .k{width:14px;height:14px;border-radius:5px;display:inline-block;margin-right:-9px;border:1px solid var(--line)}
.cal__key .k--open{background:rgba(255,255,255,.08)}
.cal__key .k--part{background:rgba(34,231,255,.35);border-color:rgba(34,231,255,.5)}
.cal__key .k--full{background:rgba(255,45,149,.35);border-color:rgba(255,45,149,.5)}

/* ── booking form ────────────────────────────────────────── */
.form{
  margin-top:44px;text-align:left;padding:clamp(24px,3.6vw,40px);border-radius:var(--r);
  background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border:1px solid rgba(245,196,69,.24);
  box-shadow:0 40px 90px -50px rgba(245,196,69,.7);
}
.form__h{font-family:var(--disp);font-weight:400;font-size:clamp(24px,3.4vw,36px);text-transform:uppercase;letter-spacing:.03em;color:var(--gold-lt)}
.form__sub{color:var(--mute);font-size:15px;margin-top:8px;margin-bottom:24px}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field--wide{grid-column:1/-1}
.field label{font-size:11.5px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.field input,.field select,.field textarea{
  font-family:var(--body);font-size:15.5px;color:var(--white);
  background:rgba(0,0,0,.42);border:1.5px solid rgba(255,255,255,.16);
  border-radius:12px;padding:13px 15px;width:100%;
  transition:border-color .2s,background .2s,box-shadow .2s;
}
.field textarea{resize:vertical;min-height:104px}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F5C445'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center;background-size:20px;padding-right:40px}
.field select option{background:#12101c;color:#fff}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.32)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--gold);background:rgba(0,0,0,.6);
  box-shadow:0 0 0 4px rgba(245,196,69,.16);
}
.field--hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px}
.form__note{font-size:13.5px;color:var(--mute2);flex:1 1 220px}
.form__msg{margin-top:16px;font-size:15px;font-weight:700;border-radius:12px;padding:14px 16px;display:none}
.form__msg.ok{display:block;background:rgba(62,232,122,.11);border:1px solid rgba(62,232,122,.42);color:#8bf5b3}
.form__msg.bad{display:block;background:rgba(255,45,149,.11);border:1px solid rgba(255,45,149,.45);color:#ff9ac9}
.btn[disabled]{opacity:.6;pointer-events:none;animation:none}

/* ── coming soon / account ───────────────────────────────── */
.sec--soon{background:linear-gradient(180deg,var(--ink),var(--ink2))}
.soon{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:42px}
.soon__card{
  position:relative;padding:32px 28px;border-radius:var(--r);overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015));
  border:1px dashed rgba(255,255,255,.2);
}
.soon__card::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(245,196,69,.05) 0 12px,transparent 12px 24px);
}
.soon__tag{
  display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:900;
  letter-spacing:.18em;text-transform:uppercase;padding:6px 13px;border-radius:999px;
  background:rgba(245,196,69,.14);border:1px solid rgba(245,196,69,.4);color:var(--gold-lt);margin-bottom:16px;
}
.soon__tag::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);animation:blink 1.8s ease-in-out infinite}
.soon__card h3{font-family:var(--disp);font-weight:400;font-size:clamp(21px,2.6vw,27px);text-transform:uppercase;letter-spacing:.02em;margin-bottom:11px}
.soon__card p{color:var(--mute);font-size:15.2px;position:relative;z-index:1}
.soon__mock{
  position:relative;z-index:1;margin-top:22px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  padding:16px;border-radius:14px;background:rgba(0,0,0,.35);border:1px solid var(--line);
}
.soon__mock input{
  flex:1 1 150px;font-family:var(--body);font-size:14.5px;color:var(--mute2);
  background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:11px 13px;
}
.soon__mock .btn{pointer-events:none;opacity:.55}
.soon__cards{display:flex;gap:8px;align-items:center;margin-top:4px}
.soon__cards span{
  font-size:10.5px;font-weight:900;letter-spacing:.1em;padding:6px 10px;border-radius:7px;
  background:rgba(255,255,255,.07);border:1px solid var(--line);color:var(--mute)
}
.soon__meanwhile{margin-top:28px;font-size:21px;color:var(--gold-lt);text-align:center}

/* ── footer ──────────────────────────────────────────────── */
.foot{position:relative;z-index:3;padding:56px 0 108px;border-top:1px solid var(--line);background:#050409}
.foot__cols{display:grid;grid-template-columns:minmax(260px,1fr) 2.2fr;gap:clamp(28px,4vw,56px);align-items:start}

.foot__brandcol{display:grid;gap:12px;justify-items:start}
.foot__logo{width:clamp(96px,11vw,130px);height:auto;filter:drop-shadow(0 0 24px rgba(245,196,69,.4))}
.foot__tag{font-family:var(--disp);font-weight:400;font-size:clamp(15px,1.6vw,19px);letter-spacing:.22em;color:var(--gold-lt)}
.foot__blurb{font-size:14px;color:var(--mute);line-height:1.65;max-width:38ch}
.foot__ig{
  display:inline-flex;align-items:center;gap:9px;margin-top:4px;padding:9px 16px;border-radius:999px;
  background:linear-gradient(105deg,#F9CE34,#EE2A7B 46%,#6228D7);color:#fff;font-weight:800;font-size:14px;
  transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s;
}
.foot__ig svg{width:17px;height:17px;fill:currentColor}
.foot__ig:hover{transform:translateY(-3px);box-shadow:0 12px 30px -10px rgba(238,42,123,.95)}

.foot__nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:26px}
.foot__col{display:grid;gap:9px;align-content:start}
.foot__col h3{
  font-size:11.5px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);margin-bottom:3px;
}
.foot__col a{
  font-size:14.2px;color:var(--mute);transition:color .2s,transform .2s;width:fit-content;
}
.foot__col a:hover{color:var(--gold-lt);transform:translateX(3px)}
.foot__plain{font-size:13.5px;color:var(--mute2);line-height:1.65}

.foot__base{
  margin-top:40px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:8px 24px;align-items:baseline;justify-content:space-between;
}
.foot__copy{color:var(--mute2);font-size:12.8px}
.foot__fine{color:var(--mute2);font-size:12.2px;max-width:62ch;line-height:1.6}

@media (max-width:900px){
  .foot__cols{grid-template-columns:1fr}
  .foot__brandcol{justify-items:center;text-align:center}
  .foot__blurb{max-width:46ch}
}
@media (max-width:620px){
  .foot{padding:44px 0 118px}
  .foot__nav{grid-template-columns:1fr 1fr;gap:22px}
  .foot__base{flex-direction:column}
}
@media (max-width:400px){
  .foot__nav{grid-template-columns:1fr}
}

/* ── about ───────────────────────────────────────────────── */
.sec--about{background:linear-gradient(180deg,var(--ink2),var(--ink))}
.about__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:18px;margin-top:42px}
.about__card{
  padding:28px 24px;border-radius:var(--r);
  background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.018));
  border:1px solid var(--line);transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s;
}
.about__card:hover{transform:translateY(-4px);border-color:rgba(245,196,69,.4)}
.about__ico{font-size:30px;line-height:1;margin-bottom:14px}
.about__card h3{
  font-family:var(--disp);font-weight:400;font-size:21px;letter-spacing:.02em;
  text-transform:uppercase;color:var(--gold-lt);margin-bottom:10px;
}
.about__card p{font-size:15px;color:var(--mute);line-height:1.68}
.about__cta{display:flex;flex-wrap:wrap;gap:13px;margin-top:34px}
@media (max-width:620px){.about__cta .btn{width:100%}}

/* ── sticky mobile call bar ──────────────────────────────── *//* ── sticky mobile call bar ──────────────────────────────── */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;
  padding:15px 16px calc(15px + env(safe-area-inset-bottom));text-align:center;
  font-family:var(--disp);font-size:19px;letter-spacing:.06em;color:#1a1206;
  background:linear-gradient(135deg,var(--gold-lt),var(--gold) 45%,var(--gold-dp));
  box-shadow:0 -10px 34px -12px rgba(245,196,69,.9);
}

/* ── reveal on scroll ────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ── responsive ──────────────────────────────────────────── */
@media (max-width:960px){
  .hero__inner{grid-template-columns:1fr;text-align:left}
  .booth{order:-1;margin-bottom:4px}
  .booth__stage{width:min(100%,380px);margin-inline:auto}
  .insta{grid-template-columns:1fr}
  .qr{justify-items:start}
  .nav__links{display:none}
  .nav__burger{display:flex}
  .mobilemenu:not([hidden]){display:flex}
}
@media (max-width:620px){
  .form__grid{grid-template-columns:1fr}
  .nav__cta span{display:none}
  .nav__cta{padding:11px 13px}
  .nav__brand span{font-size:16px}
  .callbar{display:block}
  .foot{padding-bottom:118px}
  .hero__cta .btn{flex:1 1 100%}
  .book__cta .btn{flex:1 1 100%}
  .qr{justify-items:center}
}

/* ── calm mode ───────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}
  .spotlight{display:none}
}

/* ── extra handwritten hints ─────────────────────────────── */
.cal__hint{margin-top:6px;font-size:19px;color:var(--gold-lt);opacity:.85}
.form__hint{flex:1 1 100%;font-size:19px;color:var(--gold-lt);opacity:.85;margin-top:-4px}

/* ── "AI Fun" coming-soon card ───────────────────────────── */
.soon__card--ai{border-color:rgba(34,231,255,.34)}
.soon__card--ai::after{background:repeating-linear-gradient(135deg,rgba(34,231,255,.05) 0 12px,transparent 12px 24px)}
.soon__card--ai h3{color:var(--cyan)}
.soon__card--ai .soon__tag{background:rgba(34,231,255,.14);border-color:rgba(34,231,255,.4);color:#bdf2fb}
.soon__card--ai .soon__tag::before{background:var(--cyan)}
.ai-dots{display:inline-flex;gap:7px;align-items:center;flex:1 1 auto}
.ai-dots i{
  width:11px;height:11px;border-radius:50%;background:var(--cyan);opacity:.35;
  animation:aithink 1.4s ease-in-out infinite;
}
.ai-dots i:nth-child(2){animation-delay:.18s}
.ai-dots i:nth-child(3){animation-delay:.36s}
@keyframes aithink{40%{opacity:1;transform:translateY(-5px) scale(1.15)}}

/* ── two-step booking flow ───────────────────────────────── */
.step__badge{
  display:inline-block;font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;
  color:#150d02;background:linear-gradient(135deg,var(--gold-lt),var(--gold));
  padding:5px 13px;border-radius:999px;margin-bottom:14px;
}

/* a day already carried into the picks list */
.cal__d.is-chosen{border-color:rgba(62,232,122,.6);background:rgba(62,232,122,.14);color:#c6ffdc}

.timepick{
  margin-top:24px;padding:22px;border-radius:16px;
  background:rgba(0,0,0,.34);border:1px solid rgba(245,196,69,.28);
}
.timepick__day{font-size:15px;color:var(--mute);margin-bottom:14px}
.timepick__day b{color:var(--gold-lt);font-family:var(--disp);font-weight:400;font-size:21px;letter-spacing:.04em}
.timepick__presets{display:flex;flex-wrap:wrap;gap:10px}
.tchip{
  display:grid;gap:2px;text-align:left;font-family:var(--body);cursor:pointer;
  padding:11px 17px;border-radius:13px;border:1.5px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.05);color:var(--white);font-weight:800;font-size:14.5px;
  transition:transform .2s cubic-bezier(.2,.8,.2,1),background .2s,border-color .2s,color .2s;
}
.tchip small{font-weight:600;font-size:12px;color:var(--mute)}
.tchip:hover{transform:translateY(-3px);border-color:var(--gold);background:rgba(245,196,69,.16)}
.tchip:hover small{color:rgba(0,0,0,.55)}
.tchip:hover{background:linear-gradient(135deg,var(--gold),var(--gold-dp));color:#150e03}
.timepick__custom{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-top:16px}
.timepick__custom .field{flex:0 1 140px}
.timepick__msg{margin-top:12px;font-size:14.5px;font-weight:700;display:none}
.timepick__msg.ok{display:block;color:#8bf5b3}
.timepick__msg.bad{display:block;color:#ff9ac9}

.picks{margin-top:22px}
.picks__h{font-family:var(--disp);font-weight:400;font-size:22px;text-transform:uppercase;letter-spacing:.04em;color:var(--gold-lt)}
.picks__h span{font-family:var(--body);font-size:13px;font-weight:700;color:var(--mute);letter-spacing:0}
.picks__list{display:grid;gap:10px;margin-top:12px}
.pick{
  display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:13px;
  background:linear-gradient(120deg,rgba(62,232,122,.12),rgba(255,255,255,.03));
  border:1px solid rgba(62,232,122,.34);
}
.pick__n{
  display:grid;place-items:center;width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:var(--gold);color:#150e03;font-weight:900;font-size:13px;
}
.pick__txt{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;flex:1}
.pick__txt b{font-size:15.5px}
.pick__txt em{font-style:normal;color:var(--gold-lt);font-weight:700;font-size:14.5px}
/* ── icon buttons (edit / remove) ────────────────────────── */
/* Used anywhere a small action sits beside content. Real buttons with a border and a
   hit area, not bare ✕ and ✎ characters — those looked like typos. */
.iconbtn{
  display:grid;place-items:center;flex-shrink:0;
  width:34px;height:34px;padding:0;border-radius:10px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);
  color:var(--mute);
  transition:background .2s,border-color .2s,color .2s,transform .18s cubic-bezier(.2,.8,.2,1);
}
.iconbtn svg{width:15px;height:15px;fill:currentColor;display:block}
.iconbtn:hover{transform:translateY(-2px)}
.iconbtn--edit:hover{background:rgba(245,196,69,.16);border-color:var(--gold);color:var(--gold-lt)}
.iconbtn--del:hover{background:rgba(255,45,149,.16);border-color:var(--magenta);color:#ffb3d8}
.iconbtn:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}

.pick__acts{display:flex;gap:7px;flex-shrink:0}
.picks__hint{margin-top:14px;font-size:19px;color:var(--gold-lt);opacity:.85}

.form__slots{
  padding:13px 16px;border-radius:12px;margin-bottom:20px;font-size:14.5px;
  background:rgba(62,232,122,.10);border:1px solid rgba(62,232,122,.32);color:#c6ffdc;
}
.form__slots b{color:#8bf5b3}
.lbl-soft{font-weight:700;letter-spacing:.02em;text-transform:none;color:var(--mute2);font-size:11px}

/* ── booking wizard: info left, calendar right ───────────── */
.wiz{
  margin-top:46px;padding:clamp(22px,3.4vw,36px);border-radius:var(--r);text-align:left;
  border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
}
.wiz__bar{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.wiz__bar i{flex:1;height:2px;background:rgba(255,255,255,.14);border-radius:2px}
.wiz__dot{
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;flex-shrink:0;
  font-weight:900;font-size:14px;background:rgba(255,255,255,.07);color:var(--mute2);
  border:1.5px solid var(--line);transition:all .3s;
}
.wiz__dot.is-on{background:linear-gradient(135deg,var(--gold-lt),var(--gold));color:#150e03;border-color:var(--gold)}
.wiz__step{display:none}
.wiz__step.is-on{display:block;animation:wizin .35s ease}
@keyframes wizin{from{opacity:0;transform:translateY(10px)}}
.wiz__cols{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.05fr);gap:clamp(20px,3vw,38px);align-items:start}
.wiz__info .cal__h{margin-bottom:10px}
.wiz__how{display:grid;gap:7px;margin:18px 0;font-size:15px;color:var(--mute)}
.wiz__how b{color:var(--gold);font-weight:900;margin-right:5px}
.wiz__cal{padding:18px;border-radius:16px;background:rgba(0,0,0,.3);border:1px solid var(--line)}
.wiz__cal .cal__top{justify-content:center;margin-bottom:6px}
.wiz__cal .cal__dow,.wiz__cal .cal__grid{max-width:none}
.wiz__nav{margin-top:22px;display:grid;gap:8px;justify-items:start}
.wiz__hint{font-size:18px;color:var(--gold-lt);opacity:.85}
.form__foot #to-step1{order:-1}
@media (max-width:900px){
  .wiz__cols{grid-template-columns:1fr}
  .wiz__cal{order:-1}
}

/* ── wizard: 3 steps ─────────────────────────────────────── */
.wiz__bar{display:flex;align-items:center;gap:10px;margin-bottom:24px;list-style:none;padding:0}
.wiz__line{flex:1;height:2px;background:rgba(255,255,255,.14);border-radius:2px}
.wiz__dot{display:flex;align-items:center;gap:9px;color:var(--mute2);transition:color .3s}
.wiz__dot b{
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;flex-shrink:0;
  font-weight:900;font-size:14px;background:rgba(255,255,255,.07);
  border:1.5px solid var(--line);transition:all .3s;
}
.wiz__dot span{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.wiz__dot.is-on{color:var(--gold-lt)}
.wiz__dot.is-on b{background:linear-gradient(135deg,var(--gold-lt),var(--gold));color:#150e03;border-color:var(--gold)}
.wiz__nav--row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-items:start}
.form--bare{padding:0;border:0;background:none;box-shadow:none;margin-top:18px}

/* the "your dates" side panel */
.wiz__side{
  padding:22px;border-radius:16px;position:sticky;top:110px;
  background:linear-gradient(160deg,rgba(62,232,122,.10),rgba(255,255,255,.02));
  border:1px solid rgba(62,232,122,.3);
}
.side__h{font-family:var(--disp);font-weight:400;font-size:20px;letter-spacing:.04em;text-transform:uppercase;color:#8bf5b3;margin-bottom:14px}
.side__list{display:grid;gap:9px;margin-bottom:14px}
.side__list li{font-size:14.8px;color:rgba(255,255,255,.9)}
.side__list b{color:var(--gold);margin-right:4px}
.side__note{font-size:13.5px;color:var(--mute);margin-bottom:16px}

/* review */
.review{display:grid;gap:16px;margin:22px 0}
.rv__block{padding:20px;border-radius:16px;background:rgba(0,0,0,.32);border:1px solid var(--line)}
.rv__block h4{font-family:var(--disp);font-weight:400;font-size:18px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:12px}
.rv__dates{display:grid;gap:7px}
.rv__dates li{font-size:15.5px;font-weight:700}
.rv{display:grid;grid-template-columns:minmax(120px,150px) 1fr;gap:6px 16px;padding:7px 0;border-top:1px solid rgba(255,255,255,.07)}
.rv:first-of-type{border-top:0}
.rv__k{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.rv__v{font-size:14.8px;color:rgba(255,255,255,.9);overflow-wrap:anywhere}

/* disclaimers */
.terms{padding:22px;border-radius:16px;border:1px solid rgba(245,196,69,.32);background:rgba(245,196,69,.06)}
.terms__h{font-family:var(--disp);font-weight:400;font-size:20px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:14px}
.terms__list{display:grid;gap:12px;counter-reset:t;list-style:none}
.terms__list li{position:relative;padding-left:30px;font-size:14.8px;color:rgba(255,255,255,.88);line-height:1.65}
.terms__list li::before{
  counter-increment:t;content:counter(t);position:absolute;left:0;top:1px;
  width:21px;height:21px;border-radius:50%;display:grid;place-items:center;
  background:var(--gold);color:#150e03;font-size:11.5px;font-weight:900;
}
.terms__eg{display:block;margin-top:6px;font-size:13.5px;color:var(--mute);font-style:italic}
.terms__warn{margin-top:16px;padding:13px 16px;border-radius:12px;font-size:14.5px;
  background:rgba(255,45,149,.12);border:1px solid rgba(255,45,149,.42);color:#ffc2de}
.terms__ok{margin-top:18px;font-size:15px}
.terms__ok input{width:19px;height:19px;accent-color:var(--gold);cursor:pointer}
.check{display:flex;align-items:center;gap:10px;cursor:pointer;color:rgba(255,255,255,.88)}

/* ── print sheet ─────────────────────────────────────────── */
/* #printout is a DIRECT child of <body>. It has to be: hiding `body > *` and then
   un-hiding a nested element does nothing, because its ancestors are still display:none.
   That was why printing came out blank. */
.printout{display:none}

@media print{
  @page{margin:14mm}
  html,body{background:#fff!important;color:#000!important}
  body>*:not(.printout){display:none!important}

  .printout{
    display:block!important;
    color:#000;background:#fff;
    font-family:Georgia,'Times New Roman',serif;
    max-width:none;padding:0;
  }
  .printout img{width:96px;height:auto;margin:0 auto 6px;display:block;filter:none!important}
  /* two logos side by side when a package is co-branded */
  .printout__brands{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:6px}
  .printout__brands img{width:80px;margin:0}
  .printout h1{
    font-family:Georgia,serif;font-size:22px;font-weight:700;text-align:center;
    margin:0 0 2px;letter-spacing:0;color:#000;line-height:1.2;
  }
  .printout__sub{text-align:center;font-size:11px;color:#444;margin:0 0 3px}
  .printout__web{text-align:center;font-size:11.5px;color:#000;margin:0 0 20px}
  .printout__web2{text-align:center;border:0;margin-top:6px;padding-top:0}
  .printout__lead{font-size:11px;color:#444;margin:0 0 8px}

  /* one numbered block per date option */
  .popt{margin:0 0 9px;padding:7px 11px;border:1px solid #ccc;border-radius:4px;break-inside:avoid;page-break-inside:avoid}
  .popt__h{font-family:Georgia,serif;font-size:12.5px;font-weight:700;color:#000;margin:0 0 3px}
  .popt__t{margin:0 0 0 15px;list-style:circle}
  .popt__t li{font-size:11.5px;margin-bottom:2px}
  .printout h2{
    font-family:Georgia,serif;font-size:13px;font-weight:700;color:#000;
    margin:18px 0 7px;padding-bottom:3px;border-bottom:1px solid #bbb;
    letter-spacing:.06em;text-transform:uppercase;line-height:1.3;
  }
  .printout ul{margin:0 0 6px 17px;padding:0;list-style:disc}
  .printout ol{margin:0 0 6px 17px;padding:0;list-style:decimal}
  .printout li{font-size:12px;line-height:1.55;margin-bottom:4px;color:#000}
  .printout p{font-size:12px;line-height:1.55;margin:0 0 4px;color:#000}
  .printout p b{font-weight:700}
  .printout__terms li{margin-bottom:6px}
  .printout__foot{
    margin-top:22px;padding-top:7px;border-top:1px solid #bbb;
    font-size:10px;color:#555;
  }
  /* keep a block from splitting across pages mid-thought */
  .printout h2,.printout li{break-inside:avoid;page-break-inside:avoid}
  .printout h2{break-after:avoid;page-break-after:avoid}
}


/* ── time picker: pick as many windows as you like ───────── */
.timepick__lead{font-size:13.8px;color:var(--mute);margin:-6px 0 12px}
.tchip.is-on{
  background:linear-gradient(135deg,var(--gold),var(--gold-dp));color:#150e03;border-color:var(--gold);
  box-shadow:0 8px 22px -10px rgba(245,196,69,.9);
}
.tchip.is-on small{color:rgba(0,0,0,.6)}

.tpcustom{margin-top:14px}
.tpcustom summary{
  cursor:pointer;font-size:13.8px;font-weight:800;color:var(--gold-lt);
  padding:7px 0;list-style:none;display:block;
}
.tpcustom summary::-webkit-details-marker{display:none}
.tpcustom summary::marker{content:''}
.tpcustom summary::before{content:'＋ ';font-weight:900}
.tpcustom[open] summary::before{content:'－ '}

.tpchosen{display:grid;gap:7px;margin-top:14px;padding:0;list-style:none}
.tpchosen li{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 13px;border-radius:11px;font-size:14.5px;font-weight:700;
  background:rgba(62,232,122,.12);border:1px solid rgba(62,232,122,.34);
}
.tpchosen li .iconbtn{
  width:30px;height:30px;border-radius:9px;
  background:rgba(0,0,0,.28);border-color:rgba(255,255,255,.16);
}
.tpchosen__none{
  background:rgba(255,255,255,.04)!important;border:1px dashed var(--line)!important;
  color:var(--mute2)!important;font-weight:600!important;justify-content:center!important;
}
.tpactions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.tpactions .btn{flex:1 1 auto}
.tpactions .btn[disabled]{opacity:.5;pointer-events:none}

.rv__edit{margin-top:14px}
.rv__dates li b{color:var(--gold-lt)}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — one pass over every breakpoint.
   Rule of thumb here: nothing may cause a horizontal scrollbar,
   and every tap target stays at least 44px on touch.
   ═══════════════════════════════════════════════════════════ */

/* wide desktops — stop the page sprawling */
@media (min-width:1600px){
  :root{--wrap:1320px}
  .hero__inner{gap:60px}
}
@media (min-width:2000px){
  :root{--wrap:1480px}
  body{font-size:18px}
}

/* laptops / small desktops */
@media (max-width:1180px){
  .nav{gap:14px}
  .nav__links{gap:15px}
  .nav__links a{font-size:13.2px}
}

/* the nav runs out of room before the layout does — and "Become a Partner" is a wide
   item, so it folds earlier than the layout otherwise would */
@media (max-width:1280px){
  .nav__links{display:none}
  .nav__burger{display:flex}
  .mobilemenu:not([hidden]){display:flex}
}

/* tablets */
@media (max-width:900px){
  .wiz__cols{grid-template-columns:1fr}
  .wiz__cal{order:-1}
  .wiz__side{position:static}
  .cal__dow,.cal__grid{max-width:440px}
}

@media (max-width:820px){
  .hero__inner{gap:18px}
  .cards,.steps{gap:14px}
  .included ul{grid-template-columns:1fr 1fr}
}

/* phones */
@media (max-width:620px){
  :root{--r:16px}
  .sec{padding:clamp(46px,11vw,70px) 0}
  .wrap{width:min(var(--wrap),94vw)}

  /* the wizard has to breathe on a small screen */
  .wiz{padding:16px 14px;border-radius:16px}
  .wiz__cal{padding:12px 10px}
  .cal__dow,.cal__grid{max-width:none;gap:5px}
  .cal__d{border-radius:9px;font-size:13.5px}
  .wiz__bar{gap:6px}
  .wiz__dot span{display:none}          /* keep the numbers, drop the words */
  .wiz__dot b{width:26px;height:26px;font-size:12.5px}
  .wiz__nav .btn,.wiz__nav--row .btn{width:100%}
  .wiz__nav--row{flex-direction:column;align-items:stretch}

  .timepick{padding:15px 13px}
  .timepick__presets{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .tchip{padding:11px 12px;font-size:13.5px;min-height:52px}
  .timepick__custom{gap:10px}
  .timepick__custom .field{flex:1 1 calc(50% - 5px)}
  .timepick__custom .btn{width:100%}
  .tpactions .btn{flex:1 1 100%}

  .form__grid{grid-template-columns:1fr}
  .form__foot{flex-direction:column;align-items:stretch}
  .form__foot .btn{width:100%}

  .rv{grid-template-columns:1fr;gap:2px}
  .rv__k{font-size:11px}
  .terms{padding:17px 15px}
  .terms__list li{padding-left:26px;font-size:14px}

  .promo{padding:24px 18px;border-radius:20px}
  .promo__cta .btn,.book__cta .btn{width:100%}
  .promo__deadline{flex-direction:column;gap:6px;padding:12px 16px}

  .included ul{grid-template-columns:1fr}
  .chips li{font-size:15.5px;padding:10px 16px}
  .qr__frame img{width:min(210px,64vw)}

  .promobar__in{padding:10px 0;gap:8px}
  .promobar__txt{font-size:13.2px;line-height:1.5}
  .promobar__flash{font-size:11.5px}
  .promobar__cta{font-size:11.5px;padding:6px 12px}
}

/* small phones */
@media (max-width:400px){
  .cal__d{font-size:12.5px;border-radius:8px}
  .cal__grid,.cal__dow{gap:4px}
  .timepick__presets{grid-template-columns:1fr}
  .tchip{min-height:auto}
  .hero__h1 span{font-size:clamp(36px,11vw,52px)}
  .hero__h1 .l1,.hero__h1 .l3{font-size:clamp(25px,7.5vw,34px)}
  .nav__brand span{font-size:14.5px}
  .nav__brand img{width:38px;height:38px}
}

/* short landscape phones — don't let the hero eat the whole screen */
@media (max-height:520px) and (orientation:landscape){
  .hero{padding-top:20px}
  .booth__stage{width:min(100%,260px)}
  .hero__h1 span{font-size:clamp(30px,6vw,44px)}
}

/* touch: every control comfortably tappable, and no hover-only reveals */
@media (hover:none){
  .btn{min-height:46px}
  .cal__d{min-height:42px}
  .mini{min-height:36px;padding:8px 13px}
  .iconbtn{width:38px;height:38px}
  .tpchosen li .iconbtn,.sd__acts .iconbtn{width:36px;height:36px}
  .card:hover{transform:none}
  .chips li:hover{transform:none}
  .booth__stage:hover{transform:none}
}

/* ── step 1: calendar left, times right ──────────────────── */
.wiz__cols--cal{grid-template-columns:minmax(300px,1.05fr) minmax(300px,1fr);align-items:start}
.wiz__cols--cal .wiz__cal{order:0}
.wiz__side2{
  padding:20px;border-radius:16px;min-height:260px;
  background:rgba(0,0,0,.28);border:1px solid var(--line);
  display:flex;flex-direction:column;gap:16px;overflow-anchor:none;
}
.wiz__side2 .timepick{margin-top:0;background:none;border:0;padding:0}
.wiz__side2 .picks{margin-top:0}
.wiz__side2 .wiz__nav{margin-top:auto;padding-top:4px}

/* the "tap a day" nudge that the time panel replaces */
.prompt{display:grid;gap:7px;place-items:center;text-align:center;padding:26px 14px;margin:auto 0}
.prompt__ico{font-size:30px;line-height:1}
.prompt__h{font-family:var(--disp);font-weight:400;font-size:21px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--gold-lt)}
.prompt__s{font-size:14px;color:var(--mute);max-width:30ch}

@media (max-width:900px){
  .wiz__cols--cal{grid-template-columns:1fr}
  .wiz__cols--cal .wiz__cal{order:0}
  .wiz__side2{min-height:0}
  .prompt{padding:16px 12px}
}

/* ── packages ────────────────────────────────────────────── */
.sec--packages{background:linear-gradient(180deg,var(--ink3),var(--ink))}
.pkgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px;margin-top:40px}
.pkgcard{
  position:relative;display:flex;flex-direction:column;gap:7px;
  padding:26px 24px 22px;border-radius:var(--r);overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.065),rgba(255,255,255,.018));
  border:1px solid var(--line);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s;
}
.pkgcard:hover{transform:translateY(-5px);border-color:rgba(245,196,69,.5);
  box-shadow:0 26px 60px -28px rgba(245,196,69,.6)}
.pkgcard--partner{border-color:rgba(34,231,255,.3)}
.pkgcard--partner:hover{border-color:var(--cyan);box-shadow:0 26px 60px -28px rgba(34,231,255,.6)}
.pkgcard__logo{width:58px;height:58px;object-fit:contain;border-radius:12px;background:#fff;padding:6px;margin-bottom:4px}
.pkgcard__tag{
  align-self:flex-start;font-size:10.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;
  padding:4px 11px;border-radius:999px;background:rgba(34,231,255,.16);color:#bdf2fb;
}
.pkgcard__name{font-family:var(--disp);font-weight:400;font-size:23px;letter-spacing:.02em;
  text-transform:uppercase;color:var(--gold-lt);line-height:1.1}
.pkgcard__price{font-family:var(--disp);font-weight:400;font-size:28px;letter-spacing:.03em;color:#fff}
.pkgcard__hours{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.pkgcard__blurb{font-size:14.5px;color:var(--mute);flex:1}
.pkgcard__go{margin-top:8px;font-size:13.5px;font-weight:800;color:var(--gold);letter-spacing:.03em}

.pkgs__standing{
  margin-top:34px;padding:clamp(26px,4vw,40px);border-radius:26px;text-align:center;
  border:2px solid rgba(245,196,69,.45);
  background:linear-gradient(155deg,rgba(245,196,69,.12),rgba(139,92,246,.08));
}
.pkgs__sh{font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(26px,5vw,46px);line-height:1;margin:14px 0 12px;
  background:linear-gradient(100deg,var(--gold-lt),var(--gold) 45%,var(--magenta));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.pkgs__sd{max-width:56ch;margin:0 auto 22px;font-size:16px;color:rgba(255,255,255,.86)}

/* the standalone package page */
.pkgpage{padding-top:clamp(30px,5vw,60px);text-align:center}
.pkg__brands{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:20px}
.pkg__logo{width:clamp(84px,11vw,120px);height:auto;filter:drop-shadow(0 0 22px rgba(245,196,69,.45))}
.pkg__logo--partner{background:#fff;border-radius:16px;padding:9px;object-fit:contain;filter:none}
.pkg__x{font-family:var(--disp);font-size:28px;color:var(--mute2)}
.pkg__price{font-family:var(--disp);font-weight:400;font-size:clamp(30px,6vw,54px);
  letter-spacing:.03em;color:var(--gold-lt);margin-top:8px}
.pkg__hero{width:100%;max-width:760px;margin:26px auto 0;border-radius:var(--r);border:1px solid var(--line)}
.pkg__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;
  margin-top:36px;text-align:left}
.pkg__card{padding:26px;border-radius:var(--r);border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015))}
.pkg__card--partner{border-color:rgba(34,231,255,.3);background:linear-gradient(160deg,rgba(34,231,255,.07),rgba(255,255,255,.015))}
.pkg__h{font-family:var(--disp);font-weight:400;font-size:22px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--gold-lt);margin-bottom:14px}
.pkg__list{display:grid;gap:9px}
.pkg__list li{position:relative;padding-left:26px;font-size:15px;color:rgba(255,255,255,.88)}
.pkg__list li::before{content:'✦';position:absolute;left:0;color:var(--gold)}
.pkg__hours{margin-top:14px;font-size:13px;font-weight:900;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold)}
.pkg__body{font-size:15px;color:rgba(255,255,255,.88);white-space:pre-wrap}
.pkg__event{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.pkg__event h3{font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:6px}
.pkg__event p{font-size:14.8px;color:rgba(255,255,255,.86);white-space:pre-wrap}
.pkg__card--partner .btn{margin-top:16px}
.pkg__cta{display:flex;flex-wrap:wrap;gap:13px;justify-content:center;margin-top:36px}
.pkg__terms{max-width:60ch;margin:26px auto 0;font-size:13.5px;color:var(--mute2);line-height:1.7}
.pkg__gone{text-align:center;padding:40px 0}
@media (max-width:620px){
  .pkg__cta .btn{width:100%}
  .pkg__brands{gap:12px}
}

/* ── partner with us ─────────────────────────────────────── */
.partner{
  position:relative;margin-top:44px;padding:clamp(28px,4vw,48px);
  border-radius:26px;overflow:hidden;
  border:2px solid rgba(34,231,255,.34);
  background:linear-gradient(155deg,rgba(34,231,255,.10),rgba(139,92,246,.09) 55%,rgba(255,45,149,.07));
  box-shadow:0 44px 100px -55px rgba(34,231,255,.7);
}
.partner__glow{
  position:absolute;left:50%;top:-55%;translate:-50% 0;width:min(820px,125%);aspect-ratio:1;
  background:radial-gradient(circle,rgba(34,231,255,.22),rgba(139,92,246,.12) 45%,transparent 68%);
  filter:blur(30px);pointer-events:none;animation:pulse 6s ease-in-out infinite;
}
.partner__in{position:relative;display:grid;grid-template-columns:1.35fr .8fr;gap:clamp(24px,4vw,48px);align-items:start}
.partner__tag{
  display:inline-block;font-size:11.5px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;margin-bottom:16px;
  background:rgba(34,231,255,.16);border:1px solid rgba(34,231,255,.42);color:#bdf2fb;
}
.partner__h{
  font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(30px,5.2vw,54px);line-height:.98;
}
.partner__lede{margin-top:16px;font-size:clamp(15.5px,1.35vw,17.5px);color:rgba(255,255,255,.86);max-width:56ch}
.partner__steps{display:grid;gap:11px;margin-top:22px}
.partner__steps li{position:relative;padding-left:30px;font-size:15px;color:var(--mute);line-height:1.6}
.partner__steps li b{position:absolute;left:0;color:var(--cyan);font-weight:900}
.partner__steps code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;
  background:rgba(0,0,0,.45);padding:2px 7px;border-radius:6px;color:var(--gold-lt);
  overflow-wrap:anywhere;
}
.partner__note{margin-top:18px;font-size:20px;color:#bdf2fb;opacity:.9}
.partner__cta{display:flex;flex-wrap:wrap;gap:13px;margin-top:22px}

.partner__perks{display:grid;gap:12px}
.partner__perks li{
  display:grid;grid-template-columns:auto 1fr;gap:4px 13px;align-items:start;
  padding:16px 18px;border-radius:15px;
  background:rgba(0,0,0,.32);border:1px solid var(--line);
}
.partner__perks span{grid-row:1/3;font-size:22px;line-height:1}
.partner__perks b{font-size:15px;color:var(--gold-lt)}
.partner__perks li{font-size:13.8px;color:var(--mute);line-height:1.55}

@media (max-width:900px){
  .partner__in{grid-template-columns:1fr}
}
@media (max-width:620px){
  .partner{padding:24px 18px;border-radius:20px}
  .partner__cta .btn{width:100%}
  .partner__perks li{padding:14px 15px}
}
.partner--mini{margin-top:40px;text-align:left}
.partner__in--mini{grid-template-columns:1fr;max-width:64ch;margin:0 auto;text-align:center}
.partner__in--mini .partner__lede{margin-inline:auto}
.partner__in--mini .partner__cta{justify-content:center}

/* ── "become a partner" callout (the detail lives on /partners) ─── */
.pcallout{
  position:relative;margin-top:44px;padding:clamp(26px,3.6vw,42px);
  border-radius:26px;overflow:hidden;
  border:2px solid rgba(34,231,255,.34);
  background:linear-gradient(155deg,rgba(34,231,255,.10),rgba(139,92,246,.09) 55%,rgba(255,45,149,.07));
  box-shadow:0 44px 100px -55px rgba(34,231,255,.7);
}
.pcallout__glow{
  position:absolute;left:50%;top:-60%;translate:-50% 0;width:min(760px,125%);aspect-ratio:1;
  background:radial-gradient(circle,rgba(34,231,255,.22),rgba(139,92,246,.12) 45%,transparent 68%);
  filter:blur(30px);pointer-events:none;animation:pulse 6s ease-in-out infinite;
}
.pcallout__in{position:relative;display:grid;grid-template-columns:1.5fr auto;gap:clamp(22px,3.5vw,44px);align-items:center}
.pcallout__h{font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(27px,4.4vw,46px);line-height:.98;margin-bottom:12px}
.pcallout__lede{font-size:clamp(15px,1.3vw,17px);color:rgba(255,255,255,.86);max-width:52ch}
.pcallout__cta{display:grid;gap:11px;justify-items:stretch}
.pcallout--mini{margin-top:40px;text-align:center}
.pcallout__in--mini{grid-template-columns:1fr;max-width:60ch;margin:0 auto;justify-items:center}
.pcallout__in--mini .pcallout__lede{margin-inline:auto}
@media (max-width:900px){
  .pcallout__in{grid-template-columns:1fr}
  .pcallout__cta{justify-items:start}
}
@media (max-width:620px){
  .pcallout{padding:22px 17px;border-radius:20px}
  .pcallout__cta{width:100%}
  .pcallout__cta .btn{width:100%}
}

/* ── /partners page ──────────────────────────────────────── */
.ptop{position:relative;overflow:hidden;text-align:center;
  padding-top:clamp(34px,4.5vw,58px);padding-bottom:clamp(40px,6vw,72px)}
.ptop__glow{
  position:absolute;left:50%;top:-40%;translate:-50% 0;width:min(1000px,130vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(34,231,255,.18),rgba(139,92,246,.12) 45%,transparent 68%);
  filter:blur(34px);pointer-events:none;animation:pulse 6s ease-in-out infinite;
}
.ptop__in{position:relative}
.ptop__h{font-size:clamp(34px,7vw,76px);margin-top:6px}
.ptop__lede{margin-top:20px}
.ptop__cta{justify-content:center;margin-top:30px}
.ptop__note{text-align:center;margin-top:16px}

.psteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;margin-top:44px}
.psteps li{position:relative;padding-top:12px}
.psteps__n{
  display:block;font-family:var(--disp);font-size:clamp(50px,6.5vw,80px);line-height:1.02;
  background:linear-gradient(180deg,rgba(34,231,255,.95),rgba(34,231,255,.10));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:4px;padding-top:2px;
}
.psteps h3{font-family:var(--disp);font-weight:400;font-size:22px;text-transform:uppercase;
  letter-spacing:.02em;margin-bottom:9px;color:var(--gold-lt)}
.psteps p{color:var(--mute);font-size:15px}
.psteps code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;
  background:rgba(0,0,0,.45);padding:2px 7px;border-radius:6px;color:var(--gold-lt);overflow-wrap:anywhere}

.pperks{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:40px}

/* ── partnership questionnaire ───────────────────────────── */
.pform{margin-top:36px}
.pform__what{border:0;padding:0;margin:0 0 24px}
.pform__what legend{
  font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);margin-bottom:12px;padding:0;
}
.whatgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.whatgrid label{cursor:pointer}
.whatgrid input{position:absolute;opacity:0;width:0;height:0}
.whatgrid span{
  display:flex;align-items:center;gap:11px;padding:14px 16px;border-radius:14px;
  border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);
  font-size:15px;transition:all .2s cubic-bezier(.2,.8,.2,1);
}
.whatgrid span b{font-weight:800}
.whatgrid label:hover span{border-color:rgba(34,231,255,.5);background:rgba(34,231,255,.09)}
.whatgrid input:checked + span{
  border-color:var(--cyan);background:rgba(34,231,255,.16);
  box-shadow:0 8px 24px -12px rgba(34,231,255,.9);
}
.whatgrid input:focus-visible + span{outline:3px solid var(--cyan);outline-offset:3px}

.preferrow{display:flex;flex-wrap:wrap;gap:10px}
.prefer{cursor:pointer;flex:1 1 190px}
.prefer input{position:absolute;opacity:0;width:0;height:0}
.prefer span{
  display:block;text-align:center;padding:13px 16px;border-radius:13px;font-weight:800;font-size:15px;
  border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);transition:all .2s;
}
.prefer:hover span{border-color:var(--gold)}
.prefer input:checked + span{
  background:linear-gradient(135deg,var(--gold-lt),var(--gold));color:#150e03;border-color:var(--gold);
}
.prefer input:focus-visible + span{outline:3px solid var(--cyan);outline-offset:3px}

/* "Become a partner" is its own band, so it reads as a separate offer rather than a
   tail on the package list. */
.sec--partnercta{
  padding-block:clamp(38px,6vw,70px);
  background:linear-gradient(180deg,var(--ink),var(--ink2) 50%,var(--ink));
}
.sec--partnercta .pcallout{margin-top:0}

/* the package page keeps one way out; make it read as a back link, not a nav */
.nav__links a[href="/"]{font-weight:800;color:var(--gold-lt)}
.nav__links a[href="/"]:hover{color:var(--gold)}

/* ── screen-by-screen pages (/partners) ──────────────────── */
/* Each section is at least a comfortable screenful and vertically centred, so a page
   reads as a sequence of panels rather than one long column. Not exactly 100vh — that
   clips on short phones the moment content grows. */
.screen{
  display:flex;flex-direction:column;justify-content:center;
  min-height:min(760px,88vh);
}
.screen > .wrap{width:min(var(--wrap),92vw)}

/* the "next" control at the foot of a screen */
.nextdown,.scrollcue{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  font-family:var(--body);font-weight:800;font-size:14.5px;letter-spacing:.02em;
  padding:13px 24px;border-radius:999px;
  background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.18);color:var(--white);
  transition:transform .22s cubic-bezier(.2,.8,.2,1),background .22s,border-color .22s,color .22s;
}
.nextdown{margin-top:36px}
.nextdown svg,.scrollcue svg{width:19px;height:19px;fill:currentColor;transition:transform .22s}
.nextdown:hover,.scrollcue:hover{
  transform:translateY(-3px);border-color:var(--cyan);
  background:rgba(34,231,255,.13);color:#bdf2fb;
}
.nextdown:hover svg,.scrollcue:hover svg{transform:translateY(3px)}
.nextdown--go{
  background:linear-gradient(135deg,var(--gold-lt),var(--gold) 50%,var(--gold-dp));
  border-color:var(--gold);color:#150e03;
  box-shadow:0 12px 34px -14px rgba(245,196,69,.9);
}
.nextdown--go:hover{background:linear-gradient(135deg,var(--gold-lt),var(--gold));color:#150e03;border-color:var(--gold)}

/* the hero cue nudges downward so it reads as "there's more" */
.scrollcue{margin-top:34px;animation:cuebob 2.4s ease-in-out infinite}
@keyframes cuebob{50%{transform:translateY(6px)}}
.scrollcue:hover{animation-play-state:paused}

@media (max-width:620px){
  .screen{min-height:0;justify-content:flex-start}
  .nextdown,.scrollcue{width:100%;justify-content:center}
}
