:root {
  --party-navy: #071f3d;
  --party-navy-deep: #031326;
  --party-violet: #6d3df5;
  --party-violet-dark: #4f28c9;
  --party-pink: #ef4f91;
  --party-orange: #ff7a18;
  --party-gold: #ffd058;
  --party-aqua: #38cfda;
  --party-ink: #16243a;
  --party-muted: #627084;
  --party-line: #dce4ef;
  --party-soft: #f7f6fc;
  --party-white: #fff;
  --party-shell: 1180px;
  --party-radius: 26px;
  --party-shadow: 0 22px 58px rgba(15, 29, 54, 0.12);
}

html { scroll-behavior: smooth; }

.party-page {
  overflow: hidden;
  color: var(--party-ink);
  background: #fff;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.party-page *,
.party-page *::before,
.party-page *::after { box-sizing: border-box; }

.party-page h1,
.party-page h2,
.party-page h3,
.party-page h4,
.party-page p { margin-top: 0; }

.party-page h1,
.party-page h2,
.party-page h3,
.party-page h4 { line-height: 1.08; }

.party-page p { color: var(--party-muted); }

.party-shell {
  width: min(calc(100% - 2.5rem), var(--party-shell));
  margin-inline: auto;
}

.party-hero {
  position: relative;
  isolation: isolate;
  min-height: 650px;
  display: flex;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(105deg, rgba(3, 14, 31, 0.97) 0%, rgba(10, 29, 58, 0.93) 46%, rgba(49, 24, 92, 0.62) 100%),
    url('/assets/images/optimized/hero-bowling.webp') center 45% / cover no-repeat;
}

.party-hero::before,
.party-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  filter: blur(1px);
  pointer-events: none;
}

.party-hero::before {
  width: 480px;
  height: 480px;
  right: -120px;
  top: -180px;
  background: radial-gradient(circle, rgba(239, 79, 145, 0.28), transparent 68%);
}

.party-hero::after {
  width: 420px;
  height: 420px;
  left: -150px;
  bottom: -220px;
  background: radial-gradient(circle, rgba(56, 207, 218, 0.18), transparent 70%);
}

.party-hero__confetti {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.36;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 11% 18%, #ffd058 0 3px, transparent 4px),
    radial-gradient(circle at 82% 15%, #ef4f91 0 4px, transparent 5px),
    radial-gradient(circle at 72% 75%, #38cfda 0 3px, transparent 4px),
    radial-gradient(circle at 25% 83%, #ff7a18 0 3px, transparent 4px),
    linear-gradient(115deg, transparent 49%, #ffd058 50% 53%, transparent 54%),
    linear-gradient(70deg, transparent 48%, #ef4f91 49% 53%, transparent 54%);
  background-size: 180px 180px, 230px 230px, 210px 210px, 195px 195px, 280px 280px, 320px 320px;
}

.party-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, 0.62fr);
  gap: 74px;
  align-items: center;
  padding-block: 92px;
}

.party-hero__copy { max-width: 760px; }

.party-eyebrow,
.party-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 15px;
  color: var(--party-violet);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.party-eyebrow {
  padding: 8px 12px;
  color: #fff2c5;
  background: rgba(255, 208, 88, 0.12);
  border: 1px solid rgba(255, 208, 88, 0.25);
  border-radius: 999px;
  backdrop-filter: blur(10px);
}

.party-hero h1 {
  max-width: 760px;
  margin-bottom: 22px;
  color: #fff;
  font-size: clamp(3rem, 6.6vw, 6.25rem);
  letter-spacing: -0.058em;
}

.party-hero h1 span {
  color: transparent;
  background: linear-gradient(90deg, var(--party-gold), #ff9d65 45%, #ff85bb);
  -webkit-background-clip: text;
  background-clip: text;
}

.party-hero__copy > p {
  max-width: 700px;
  margin-bottom: 31px;
  color: rgba(255,255,255,0.78);
  font-size: clamp(1.05rem, 2vw, 1.22rem);
  line-height: 1.72;
}

.party-hero__actions,
.party-final-cta__actions,
.party-poster-copy__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.party-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 50px;
  padding: 13px 19px;
  color: inherit;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.94rem;
  font-weight: 900;
  line-height: 1.15;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.party-button:hover { transform: translateY(-2px); }

.party-button--primary {
  color: #281700;
  background: linear-gradient(135deg, var(--party-gold), #ffb64d);
  box-shadow: 0 12px 30px rgba(255, 183, 74, 0.24);
}

.party-button--primary:hover { box-shadow: 0 16px 36px rgba(255, 183, 74, 0.32); }

.party-button--glass {
  color: #fff;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.24);
  backdrop-filter: blur(10px);
}

.party-button--glass:hover { background: rgba(255,255,255,.14); }

.party-button--dark {
  color: #fff;
  background: var(--party-navy);
}

.party-button--light {
  color: var(--party-navy);
  background: #fff;
  box-shadow: 0 12px 30px rgba(0,0,0,.16);
}

.party-button--outline {
  color: var(--party-navy);
  background: #fff;
  border-color: rgba(7,31,61,.16);
}

.party-button--wide { width: 100%; }

.party-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-top: 24px;
  color: rgba(255,255,255,.62);
  font-size: .82rem;
  font-weight: 750;
}

.party-hero__trust span { display: inline-flex; align-items: center; gap: 7px; }
.party-hero__trust i { color: #82e8ec; }

.party-hero__card {
  position: relative;
  overflow: hidden;
  padding: 25px;
  background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.07));
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 28px;
  box-shadow: 0 26px 70px rgba(0,0,0,.28);
  backdrop-filter: blur(18px);
}

.party-hero__card::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  right: -55px;
  bottom: -55px;
  background: radial-gradient(circle, rgba(239,79,145,.38), transparent 68%);
  pointer-events: none;
}

.party-hero__card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 17px;
  border-bottom: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.72);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.party-hero__card-top i { color: var(--party-gold); font-size: 1.35rem; }

.party-hero__card-price { padding: 22px 0 16px; }
.party-hero__card-price small { display: block; margin-bottom: 2px; color: rgba(255,255,255,.6); font-weight: 700; }
.party-hero__card-price strong { display: block; color: #fff; font-size: clamp(2rem, 4vw, 3.15rem); letter-spacing: -.045em; }

.party-hero__card ul { display: grid; gap: 10px; padding: 0; margin: 0 0 22px; list-style: none; }
.party-hero__card li { display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,.82); font-size: .92rem; }
.party-hero__card li i { display: grid; place-items: center; width: 21px; height: 21px; flex: 0 0 auto; color: #12263e; background: var(--party-gold); border-radius: 50%; font-size: .66rem; }
.party-hero__card > a { display: inline-flex; align-items: center; gap: 8px; color: #fff2bd; font-size: .86rem; font-weight: 900; text-decoration: none; }
.party-hero__card > a:hover { text-decoration: underline; }

.party-jumpbar {
  position: sticky;
  top: 88px;
  z-index: 90;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(7,31,61,.09);
  box-shadow: 0 10px 28px rgba(7,31,61,.05);
  backdrop-filter: blur(16px);
}

.party-jumpbar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 58px;
  overflow-x: auto;
  scrollbar-width: none;
}

.party-jumpbar__inner::-webkit-scrollbar { display: none; }

.party-jumpbar a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 9px 13px;
  color: #46566e;
  border-radius: 999px;
  font-size: .84rem;
  font-weight: 850;
  text-decoration: none;
}

.party-jumpbar a:hover { color: var(--party-violet-dark); background: #f0edff; }

.party-section {
  padding-block: 94px;
  scroll-margin-top: 160px;
}

.party-section--packages {
  background:
    radial-gradient(circle at 12% 0%, rgba(109,61,245,.06), transparent 26%),
    linear-gradient(180deg, #f8f7fc, #f4f7fb);
}

.party-heading { margin-bottom: 42px; }
.party-heading--center { max-width: 820px; margin-inline: auto; margin-bottom: 45px; text-align: center; }
.party-heading--split { display: grid; grid-template-columns: minmax(0,.92fr) minmax(300px,.68fr); gap: 72px; align-items: end; }
.party-heading h2,
.party-poster-copy h2,
.party-final-cta h2 { margin-bottom: 0; color: var(--party-navy); font-size: clamp(2.05rem, 4vw, 3.65rem); letter-spacing: -.047em; }
.party-heading > p,
.party-heading--split > p { margin-bottom: 0; font-size: 1.02rem; line-height: 1.75; }
.party-heading--center > p { margin-top: 18px; margin-bottom: 0; font-size: 1.02rem; line-height: 1.75; }

.party-benefits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 17px;
}

.party-benefit {
  min-height: 235px;
  padding: 26px;
  background: #fff;
  border: 1px solid rgba(7,31,61,.09);
  border-radius: 22px;
  box-shadow: 0 12px 36px rgba(7,31,61,.065);
  transition: transform .2s ease, box-shadow .2s ease;
}

.party-benefit:hover { transform: translateY(-4px); box-shadow: var(--party-shadow); }

.party-icon {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  color: var(--party-violet);
  background: #f0edff;
  border-radius: 15px;
}

.party-benefit:nth-child(2) .party-icon { color: #c84c1c; background: #fff0e8; }
.party-benefit:nth-child(3) .party-icon { color: #b82768; background: #ffedf5; }
.party-benefit:nth-child(4) .party-icon { color: #087d85; background: #e8fafa; }

.party-benefit h3 { margin: 20px 0 10px; color: var(--party-navy); font-size: 1.18rem; }
.party-benefit p { margin-bottom: 0; font-size: .94rem; line-height: 1.7; }

.party-package-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  align-items: start;
}

.party-package-grid--single { grid-template-columns: minmax(0, 900px); justify-content: center; }

.party-package-card {
  position: relative;
  overflow: hidden;
  padding: 30px;
  background: #fff;
  border: 1px solid rgba(7,31,61,.1);
  border-radius: var(--party-radius);
  box-shadow: 0 15px 44px rgba(7,31,61,.075);
}

.party-package-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--party-violet), var(--party-pink), var(--party-orange));
}

.party-package-card--featured { box-shadow: 0 20px 58px rgba(80,45,173,.13); border-color: rgba(109,61,245,.18); }

.party-package-card__topline { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }

.party-package-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  color: #744f00;
  background: #fff6d9;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.party-package-badge--soft { color: #5b3fc3; background: #f0edff; }
.party-package-price { color: var(--party-navy); font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 950; letter-spacing: -.04em; }
.party-package-card > h3 { margin-bottom: 12px; color: var(--party-navy); font-size: clamp(1.55rem, 3vw, 2.1rem); }
.party-package-card__description { min-height: 3.4em; margin-bottom: 22px; line-height: 1.68; }

.party-package-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 9px;
  margin-bottom: 26px;
}

.party-package-meta span {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 54px;
  padding: 11px 13px;
  color: #45566d;
  background: #f7f9fc;
  border: 1px solid #e8edf3;
  border-radius: 14px;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.35;
}

.party-package-meta i { color: var(--party-violet); }

.party-package-card__section { padding-top: 23px; border-top: 1px solid #e9edf3; }
.party-package-card__section + .party-package-card__section { margin-top: 24px; }
.party-package-card__section h4 { margin-bottom: 14px; color: #35465e; font-size: .83rem; letter-spacing: .07em; text-transform: uppercase; }

.party-feature-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 11px 18px; padding: 0; margin: 0; list-style: none; }
.party-feature-list li { display: flex; gap: 9px; align-items: flex-start; color: #3e5068; font-size: .9rem; line-height: 1.48; }
.party-feature-list i { margin-top: 2px; color: #15986f; }

.party-addons { display: grid; gap: 8px; }
.party-addon { overflow: hidden; background: #fafbfe; border: 1px solid #e6ebf2; border-radius: 13px; }
.party-addon[open] { background: #fff; border-color: #d5ddea; }
.party-addon summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; cursor: pointer; list-style: none; }
.party-addon summary::-webkit-details-marker { display: none; }
.party-addon summary::after { content: "+"; width: 23px; flex: 0 0 23px; color: #6a7583; font-size: 1rem; font-weight: 900; text-align: center; }
.party-addon[open] summary::after { content: "–"; }
.party-addon summary span { min-width: 0; flex: 1; color: #34465f; font-size: .88rem; font-weight: 850; }
.party-addon summary strong { color: var(--party-violet-dark); font-size: .85rem; }
.party-addon p { margin: 0; padding: 0 14px 14px; font-size: .83rem; line-height: 1.6; }

.party-package-card__footer { display: grid; gap: 10px; margin-top: 28px; }
.party-package-card__footer > span { color: #7a8694; font-size: .77rem; text-align: center; }

.party-empty-state { padding: 55px 30px; text-align: center; background: #fff; border: 1px dashed #c9d3df; border-radius: var(--party-radius); }
.party-empty-state > i { margin-bottom: 18px; color: var(--party-violet); font-size: 2.45rem; }
.party-empty-state h3 { margin-bottom: 9px; color: var(--party-navy); }
.party-empty-state p { max-width: 620px; margin-inline: auto; margin-bottom: 20px; }

.party-section--poster {
  color: #fff;
  background:
    radial-gradient(circle at 12% 0%, rgba(239,79,145,.16), transparent 28%),
    radial-gradient(circle at 94% 90%, rgba(56,207,218,.12), transparent 26%),
    linear-gradient(145deg, #081d39, #221647 76%, #331b57);
}

.party-poster-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 430px); gap: 85px; align-items: center; }
.party-kicker--light { color: #ffda78; }
.party-poster-copy h2 { color: #fff; }
.party-poster-copy > p { max-width: 650px; margin: 19px 0 27px; color: rgba(255,255,255,.7); font-size: 1.02rem; line-height: 1.75; }
.party-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--party-violet-dark); font-weight: 900; text-decoration: none; }
.party-text-link:hover { text-decoration: underline; }
.party-text-link--light { color: #ffe49b; }

.party-poster { position: relative; display: block; max-width: 360px; justify-self: center; text-decoration: none; transform: rotate(2deg); transition: transform .25s ease; }
.party-poster:hover { transform: rotate(0) translateY(-6px); }
.party-poster img { display: block; width: 100%; height: auto; border: 8px solid rgba(255,255,255,.9); border-radius: 20px; box-shadow: 0 28px 70px rgba(0,0,0,.35); }
.party-poster span { position: absolute; right: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 11px; color: #182038; background: rgba(255,255,255,.94); border-radius: 999px; font-size: .72rem; font-weight: 900; box-shadow: 0 8px 18px rgba(0,0,0,.16); }

.party-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; padding: 0; margin: 0; list-style: none; counter-reset: none; }
.party-steps li { position: relative; min-height: 245px; padding: 24px; background: #fff; border: 1px solid #e2e8f0; border-radius: 22px; box-shadow: 0 10px 32px rgba(7,31,61,.055); }
.party-steps li:not(:last-child)::after { content: ""; position: absolute; top: 48px; right: -17px; z-index: 2; width: 18px; height: 2px; background: #d9dff0; }
.party-step-number { display: inline-grid; place-items: center; width: 47px; height: 47px; margin-bottom: 30px; color: var(--party-violet-dark); background: #f0edff; border-radius: 14px; font-size: .82rem; font-weight: 950; letter-spacing: .04em; }
.party-steps h3 { margin-bottom: 9px; color: var(--party-navy); font-size: 1.15rem; }
.party-steps p { margin-bottom: 0; font-size: .9rem; line-height: 1.65; }

.party-section--notes {
  color: #fff;
  background:
    radial-gradient(circle at 82% 20%, rgba(255,208,88,.15), transparent 25%),
    linear-gradient(140deg, #061a34, #0b2b50 78%, #0b3159);
}
.party-heading--light h2, .party-heading--light > p { color: #fff; }
.party-heading--light > p { color: rgba(255,255,255,.7); }
.party-notes-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }
.party-notes-grid article { display: flex; align-items: flex-start; gap: 18px; padding: 23px; background: rgba(255,255,255,.065); border: 1px solid rgba(255,255,255,.1); border-radius: 19px; }
.party-notes-grid article > i { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; color: #12263e; background: var(--party-gold); border-radius: 13px; }
.party-notes-grid h3 { margin-bottom: 7px; color: #fff; font-size: 1.05rem; }
.party-notes-grid p { margin-bottom: 0; color: rgba(255,255,255,.68); font-size: .89rem; line-height: 1.62; }

.party-final-cta { padding-block: 74px; background: linear-gradient(180deg, #fff9eb, #fff); }
.party-final-cta__inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 50px; align-items: center; padding: 42px; background: #fff; border: 1px solid #ede4cf; border-radius: 28px; box-shadow: 0 18px 50px rgba(95,72,22,.08); }
.party-final-cta h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
.party-final-cta p { margin: 13px 0 0; }

.party-mobile-cta { display: none; }

/* UV / Cosmic mode */
body.uv-mode .party-page {
  --party-navy: #f7fbff;
  --party-ink: #eff5ff;
  --party-muted: #b8c3df;
  --party-violet: #a976ff;
  --party-violet-dark: #c9a7ff;
  --party-gold: #d9ff4d;
  --party-orange: #ff6eb7;
  --party-aqua: #31f3ff;
  background: #07051a;
}
body.uv-mode .party-hero { background: linear-gradient(105deg, rgba(5,3,22,.97), rgba(17,8,51,.9) 54%, rgba(35,8,70,.66)), url('/assets/images/optimized/hero-bowling.webp') center 45%/cover no-repeat; }
body.uv-mode .party-hero h1 span { background: linear-gradient(90deg, #d9ff4d, #31f3ff 45%, #ff6eb7); -webkit-background-clip:text; background-clip:text; }
body.uv-mode .party-button--primary { color: #071119; background: linear-gradient(135deg, #d9ff4d, #6fffea); box-shadow: 0 0 28px rgba(49,243,255,.22); }
body.uv-mode .party-jumpbar { background: rgba(10,7,31,.94); border-bottom-color: rgba(49,243,255,.13); }
body.uv-mode .party-jumpbar a { color: #c2cdea; }
body.uv-mode .party-jumpbar a:hover { color: #31f3ff; background: rgba(49,243,255,.08); }
body.uv-mode .party-section { background-color: #09071f; }
body.uv-mode .party-section--packages { background: radial-gradient(circle at 12% 0%, rgba(169,118,255,.13), transparent 27%), #0b0825; }
body.uv-mode .party-benefit,
body.uv-mode .party-package-card,
body.uv-mode .party-steps li,
body.uv-mode .party-empty-state,
body.uv-mode .party-final-cta__inner { background: #100d2d; border-color: rgba(140,166,224,.14); box-shadow: 0 16px 42px rgba(0,0,0,.22); }
body.uv-mode .party-benefit h3,
body.uv-mode .party-package-card > h3,
body.uv-mode .party-package-price,
body.uv-mode .party-package-card__section h4,
body.uv-mode .party-steps h3,
body.uv-mode .party-heading h2,
body.uv-mode .party-final-cta h2 { color: #f8fbff; }
body.uv-mode .party-benefit p,
body.uv-mode .party-package-card__description,
body.uv-mode .party-steps p,
body.uv-mode .party-heading p,
body.uv-mode .party-final-cta p { color: #b8c3df; }
body.uv-mode .party-package-meta span,
body.uv-mode .party-addon { color: #c5cee4; background: #171337; border-color: rgba(140,166,224,.14); }
body.uv-mode .party-package-meta i { color: #31f3ff; }
body.uv-mode .party-feature-list li,
body.uv-mode .party-addon summary span { color: #dce5f7; }
body.uv-mode .party-addon summary strong { color: #d9ff4d; }
body.uv-mode .party-addon p { color: #aebbd7; }
body.uv-mode .party-package-card__section { border-top-color: rgba(140,166,224,.13); }
body.uv-mode .party-package-card--featured { border-color: rgba(49,243,255,.22); box-shadow: 0 0 34px rgba(49,243,255,.07); }
body.uv-mode .party-package-card::before { background: linear-gradient(90deg,#31f3ff,#a976ff,#ff6eb7); }
body.uv-mode .party-section--poster,
body.uv-mode .party-section--notes { background: radial-gradient(circle at 20% 5%, rgba(49,243,255,.1), transparent 28%), radial-gradient(circle at 90% 90%, rgba(255,110,183,.1), transparent 28%), #060417; }
body.uv-mode .party-final-cta { background: #07051a; }
body.uv-mode .party-button--outline { color: #f5f8ff; background: #151133; border-color: rgba(49,243,255,.2); }

/* Halloween mode */
html.halloween-mode .party-page {
  --party-violet: #ff7a18;
  --party-violet-dark: #ff9b45;
  --party-pink: #c15cff;
  --party-gold: #ffc24a;
  --party-navy: #24102f;
  --party-navy-deep: #16091d;
  --party-ink: #26152f;
  --party-muted: #705f77;
}
html.halloween-mode .party-hero { background: linear-gradient(105deg, rgba(18,7,23,.98), rgba(41,12,42,.91) 52%, rgba(81,27,19,.65)), url('/assets/images/optimized/hero-bowling.webp') center 45%/cover no-repeat; }
html.halloween-mode .party-hero h1 span { background: linear-gradient(90deg, #ffc24a, #ff7a18 48%, #c15cff); -webkit-background-clip:text; background-clip:text; }
html.halloween-mode .party-hero__confetti { opacity:.3; filter:hue-rotate(270deg) saturate(1.3); }
html.halloween-mode .party-button--primary { color:#281100; background:linear-gradient(135deg,#ffc24a,#ff7a18); }
html.halloween-mode .party-jumpbar a:hover { color:#8b3900; background:#fff0df; }
html.halloween-mode .party-section--packages { background: radial-gradient(circle at 12% 0%, rgba(193,92,255,.07), transparent 27%), #fbf6f2; }
html.halloween-mode .party-package-card::before { background:linear-gradient(90deg,#ff7a18,#ffc24a,#c15cff); }
html.halloween-mode .party-package-badge--soft { color:#6b287f; background:#f6eafa; }
html.halloween-mode .party-icon { color:#a64600; background:#fff0df; }
html.halloween-mode .party-section--poster,
html.halloween-mode .party-section--notes { background: radial-gradient(circle at 12% 0%, rgba(255,122,24,.16), transparent 28%), radial-gradient(circle at 92% 90%, rgba(193,92,255,.14), transparent 26%), linear-gradient(145deg,#17081d,#2e1238 76%,#41142d); }
html.halloween-mode .party-final-cta { background:linear-gradient(180deg,#fff4e7,#fff); }

@media (max-width: 1050px) {
  .party-hero__inner { grid-template-columns: minmax(0,1fr) minmax(300px,.68fr); gap: 42px; }
  .party-benefits { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .party-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .party-steps li:nth-child(2)::after { display:none; }
}

@media (max-width: 820px) {
  .party-shell { width: min(calc(100% - 1.5rem), var(--party-shell)); }
  .party-hero { min-height: auto; }
  .party-hero__inner { grid-template-columns: 1fr; gap: 34px; padding-block: 70px; }
  .party-hero__card { max-width: 560px; }
  .party-jumpbar { top: 72px; }
  .party-jumpbar__inner { justify-content: flex-start; }
  .party-section { padding-block: 72px; scroll-margin-top: 138px; }
  .party-heading--split { grid-template-columns: 1fr; gap: 18px; }
  .party-package-grid { grid-template-columns: 1fr; }
  .party-poster-layout { grid-template-columns: 1fr; gap: 46px; }
  .party-poster { max-width: 310px; }
  .party-notes-grid { grid-template-columns: 1fr; }
  .party-final-cta__inner { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 620px) {
  .party-hero__inner { padding-block: 58px 48px; }
  .party-hero h1 { font-size: clamp(2.7rem, 14vw, 4.4rem); }
  .party-hero__actions { align-items: stretch; }
  .party-hero__actions .party-button { width: 100%; }
  .party-hero__trust { display: grid; gap: 9px; }
  .party-hero__card { padding: 21px; border-radius: 22px; }
  .party-jumpbar { top: 66px; }
  .party-benefits { grid-template-columns: 1fr; }
  .party-benefit { min-height: auto; }
  .party-package-card { padding: 23px 19px; border-radius: 21px; }
  .party-package-card__topline { align-items: flex-start; }
  .party-package-meta { grid-template-columns: 1fr; }
  .party-feature-list { grid-template-columns: 1fr; }
  .party-steps { grid-template-columns: 1fr; }
  .party-steps li { min-height: auto; }
  .party-steps li::after { display:none !important; }
  .party-step-number { margin-bottom: 20px; }
  .party-final-cta { padding-block: 55px 100px; }
  .party-final-cta__inner { padding: 28px 22px; }
  .party-final-cta__actions { align-items: stretch; }
  .party-final-cta__actions .party-button { width: 100%; }
  .party-mobile-cta {
    position: fixed;
    z-index: 450;
    left: 10px;
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 10px 10px 14px;
    background: rgba(5,18,37,.96);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 17px;
    box-shadow: 0 14px 42px rgba(0,0,0,.25);
    backdrop-filter: blur(15px);
  }
  .party-mobile-cta span { min-width:0; }
  .party-mobile-cta strong, .party-mobile-cta small { display:block; }
  .party-mobile-cta strong { color:#fff; font-size:.82rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .party-mobile-cta small { margin-top:2px; color:rgba(255,255,255,.55); font-size:.67rem; }
  .party-mobile-cta a { display:inline-flex; align-items:center; gap:7px; flex:0 0 auto; padding:10px 12px; color:#281700; background:linear-gradient(135deg,var(--party-gold),#ffb64d); border-radius:12px; font-size:.78rem; font-weight:900; text-decoration:none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .party-button,
  .party-benefit,
  .party-poster { transition: none; }
}
