/* V3 landing layout, measured against v3Assets/mockup.jpeg (830 × 1184).
   The centered composition keeps its original scale while a wider outer
   frame gives the header and edge artwork room on large displays. */
@font-face {
  font-family: 'Happy Season Display';
  src: url('./happy-season-semibold.otf') format('opentype');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

body.v3-static-hero {
  --v3-frame-width: min(1080px, max(560px, calc((100svh - 24px) * 830 / 702)));
  --v3-outer-frame-width: min(90vw, 2600px);
  background: #171717;
  color: #fff;
  font-size: 16px;
}

/* One observer drives subtle entrance and exit motion without scroll handlers. */
body.v3-static-hero.v3-motion-ready .v3-reveal {
  opacity: 0;
  translate: 0 16px;
  transition: opacity .45s ease, translate .45s ease;
}

body.v3-static-hero.v3-motion-ready .v3-reveal.is-visible {
  opacity: 1;
  translate: 0 0;
}

body.v3-static-hero .v3-top-sentinel {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 200px;
  pointer-events: none;
}

body.v3-static-hero .v3-back-to-top {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 90;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid #d7d3d7;
  border-radius: 14px;
  background: #fffffff2;
  box-shadow: 0 4px 14px #0003;
  color: #423bad;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  translate: 0 12px;
  pointer-events: none;
  transition: opacity .2s ease, translate .2s ease, visibility .2s;
}
body.v3-static-hero .v3-back-to-top.is-visible { opacity: 1; visibility: visible; translate: 0 0; pointer-events: auto; }
body.v3-static-hero .v3-back-to-top:hover { background: #ece9ff; }
body.v3-static-hero .v3-back-to-top:focus-visible { outline: 3px solid #ff963e; outline-offset: 4px; }

body.v3-static-hero .v3-lineup-headliner-copy[hidden],
body.v3-static-hero .v3-lineup-headliner-copy > [hidden] { display: none; }
body.v3-static-hero .v3-lineup-headliner[hidden] { display: none; }
body.v3-static-hero .v3-lineup-zoom {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
body.v3-static-hero .v3-lineup-zoom:focus-visible { outline: 3px solid #ff963e; outline-offset: 3px; border-radius: 8px; }
body.v3-static-hero .v3-city-card[role="button"],
body.v3-static-hero .v3-merch-card[role="button"] { cursor: zoom-in; }
body.v3-static-hero .v3-city-card[role="button"]:focus-visible,
body.v3-static-hero .v3-merch-card[role="button"]:focus-visible { outline: 3px solid #ff963e; outline-offset: 3px; border-radius: 8px; }
html.v3-viewer-open { overflow: hidden; }
body.v3-static-hero .v3-image-viewer {
  width: min(94vw, 1080px);
  max-width: none;
  max-height: calc(100dvh - 24px);
  padding: 0;
  border: 0;
  overflow: visible;
  background: transparent;
  color: #fff;
  font-family: Arial, sans-serif;
}
body.v3-static-hero .v3-image-viewer::backdrop { background: #08090cc9; backdrop-filter: blur(6px); }
body.v3-static-hero .v3-viewer-shell {
  display: grid;
  gap: 14px;
  padding: 0;
}
body.v3-static-hero .v3-viewer-stage { min-width: 0; }
body.v3-static-hero .v3-viewer-frame {
  position: relative;
  height: min(66dvh, calc(100dvh - 160px), 640px);
  min-width: 0;
  overflow: hidden;
  border-radius: 16px;
  touch-action: pan-y;
}
body.v3-static-hero .v3-viewer-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}
body.v3-static-hero .v3-viewer-count {
  position: absolute;
  top: 12px;
  left: 12px;
  margin: 0;
  padding: 10px 14px;
  border: 1px solid #ffffff20;
  border-radius: 14px;
  background: #151222d9;
  color: #fff;
  font: 500 16px/1 Arial, sans-serif;
}
body.v3-static-hero .v3-viewer-control {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: clamp(44px, 4vw, 56px);
  height: clamp(44px, 4vw, 56px);
  padding: 0;
  border: 1px solid #ffffff45;
  border-radius: 50%;
  background: #0b0c11c9;
  color: #fff;
  cursor: pointer;
}
body.v3-static-hero .v3-viewer-control:hover { border-color: #ff963e; background: #342321; }
body.v3-static-hero .v3-viewer-close { position: absolute; top: 10px; right: 10px; }
body.v3-static-hero :is(.v3-viewer-prev, .v3-viewer-next) { position: absolute; top: 50%; transform: translateY(-50%); }
body.v3-static-hero .v3-viewer-prev { left: 10px; }
body.v3-static-hero .v3-viewer-next { right: 10px; }
body.v3-static-hero .v3-viewer-filmstrip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: min(100%, 940px);
  min-width: 0;
  margin-inline: auto;
}
body.v3-static-hero .v3-viewer-thumbnails {
  display: flex;
  gap: 8px;
  min-width: 0;
  padding: 4px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: #ffffff35 transparent;
}
body.v3-static-hero .v3-viewer-thumb {
  display: block;
  flex: 0 0 clamp(72px, 9vw, 120px);
  min-width: 0;
  padding: 2px;
  border: 2px solid #ffffff18;
  border-radius: 11px;
  background: #101115;
  cursor: pointer;
}
body.v3-static-hero .v3-viewer-thumb img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
body.v3-static-hero .v3-viewer-thumb[aria-current="true"] { border-color: #ff8a36; }
body.v3-static-hero .v3-viewer-thumb:hover { border-color: #ffbd8c; }
body.v3-static-hero .v3-image-viewer button:focus-visible { outline: 3px solid #ff963e; outline-offset: 2px; }
@media (max-height: 600px) {
  body.v3-static-hero .v3-viewer-shell { gap: 10px; }
  body.v3-static-hero .v3-viewer-thumb { flex-basis: 72px; }
}
@media (max-width: 640px) {
  body.v3-static-hero .v3-image-viewer { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  body.v3-static-hero .v3-image-viewer::backdrop { backdrop-filter: blur(4px); }
  body.v3-static-hero .v3-viewer-shell { gap: 10px; }
  body.v3-static-hero .v3-viewer-frame { height: min(calc(100dvh - 126px), calc(100vw - 16px)); border-radius: 12px; }
  body.v3-static-hero .v3-viewer-control { width: 44px; height: 44px; }
  body.v3-static-hero .v3-viewer-count { top: 8px; left: 8px; padding: 10px 12px; font-size: 14px; }
  body.v3-static-hero .v3-viewer-close { top: 6px; right: 6px; }
  body.v3-static-hero .v3-viewer-prev { left: 6px; }
  body.v3-static-hero .v3-viewer-next { right: 6px; }
  body.v3-static-hero .v3-viewer-filmstrip { gap: 6px; }
  body.v3-static-hero .v3-viewer-thumbnails { gap: 6px; padding: 3px; }
  body.v3-static-hero .v3-viewer-thumb { flex-basis: 64px; border-radius: 9px; }
}

/* The artwork supplies its own texture; a fixed paper layer tints the white. */
body.v3-static-hero::before,
body.v3-static-hero::after {
  display: none;
}

body.v3-static-hero #content-scroll-wrapper {
  animation: none !important;
  transform: none !important;
}

/* Keep sections outside the current V3 redesign out of the preview. */
body.v3-static-hero #content-scroll-wrapper > :not(#tickets):not(.unified-bg-wrapper):not(#memories):not(#spotlight):not(#faq):not(.v3-site-footer) {
  display: none !important;
}

body.v3-static-hero .unified-bg-wrapper {
  position: relative;
  z-index: auto;
  padding: 0;
  overflow: visible;
  background: linear-gradient(#0002, #0002), #141414 url('./v3Assets/hero/background Black Gsrek@2x 1.png') center top / cover no-repeat;
}

body.v3-static-hero .unified-bg-wrapper > :not(#lineup):not(#explore):not(#memories) {
  display: none !important;
}

body.v3-static-hero .v3-hero {
  position: relative;
  overflow: visible;
  background: linear-gradient(#0002, #0002), #141414 url('./v3Assets/hero/background Black Gsrek@2x 1.png') center top / 100% auto no-repeat;
}

body.v3-static-hero .v3-hero-stage {
  position: relative;
  width: min(100%, var(--v3-frame-width));
  aspect-ratio: 830 / 702;
  margin-inline: auto;
  overflow: visible;
  isolation: isolate;
  container-type: inline-size;
}

body.v3-static-hero .v3-header {
  position: absolute;
  top: 4%;
  left: 50%;
  z-index: 10;
  width: var(--v3-outer-frame-width);
  max-width: calc(100vw - 32px);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  transform: translateX(-50%);
}

body.v3-static-hero .v3-site-logo {
  display: block;
  justify-self: start;
  width: clamp(80px, 7.5vw, 120px);
}

body.v3-static-hero .v3-site-logo img {
  display: block;
  width: 100%;
  height: auto;
}

body.v3-static-hero .v3-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 1.7vw, 28px);
  padding: 0;
  white-space: nowrap;
  font-family: 'Happy Season', sans-serif;
  font-size: clamp(20px, 1.8vw, 28px);
  line-height: 1.2;
}

body.v3-static-hero .v3-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 4px 2px;
  transition: opacity .2s ease;
}

body.v3-static-hero .v3-nav a:hover { opacity: .7; }

body.v3-static-hero .v3-nav-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: #f16c39;
}

body.v3-static-hero .v3-header-ticket {
  display: block;
  justify-self: end;
  width: clamp(110px, 10vw, 156px);
  transition: transform .2s ease;
}

body.v3-static-hero .v3-header-ticket:hover { transform: rotate(-2deg); }
body.v3-static-hero .v3-header-ticket img { display: block; width: 100%; height: auto; }

body.v3-static-hero .v3-hero-art {
  position: absolute;
  inset: 0;
  overflow: visible;
  pointer-events: none;
}

body.v3-static-hero .v3-hero-decor {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: var(--v3-outer-frame-width);
  overflow: visible;
  transform: translateX(-50%);
  pointer-events: none;
}

body.v3-static-hero .v3-hero-decor > img {
  position: absolute;
  display: block;
  height: auto;
  user-select: none;
}

body.v3-static-hero .v3-hero-title {
  position: absolute;
  top: 17.1%;
  left: 0;
  z-index: 3;
  width: 100%;
  margin: 0;
  transform: none;
}

body.v3-static-hero .v3-hero-title img { display: block; width: 100%; height: auto; }

body.v3-static-hero .v3-hero-sparkles {
  position: absolute;
  top: 18%;
  left: 11.5%;
  width: 7.5cqw;
  height: 9%;
}

body.v3-static-hero .v3-hero-sparkles img { position: absolute; width: 65%; }
body.v3-static-hero .v3-hero-sparkles img:nth-child(2) { width: 45%; top: 0; right: 0; filter: hue-rotate(280deg); }
body.v3-static-hero .v3-hero-sparkles img:nth-child(3) { width: 62%; top: 42%; left: 17%; }

body.v3-static-hero .v3-hero-pink-star {
  top: 20%;
  right: 14%;
  width: 7cqw;
  filter: hue-rotate(305deg) saturate(.7);
  transform: rotate(20deg);
}

body.v3-static-hero .v3-hero-starburst {
  left: -27cqw;
  top: 56%;
  bottom: auto;
  z-index: 0;
  width: 57cqw;
}

body.v3-static-hero .v3-hero-lamp {
  left: 3cqw;
  bottom: 0;
  z-index: 2;
  width: 9.2cqw;
}

body.v3-static-hero .v3-hero-kang {
  left: 8.5cqw;
  bottom: -11%;
  z-index: 2;
  width: 20.5cqw;
}

body.v3-static-hero .v3-hero-cactus {
  left: -1cqw;
  bottom: -3.5%;
  z-index: 3;
  width: 11.5cqw;
}

body.v3-static-hero .v3-hero-women {
  right: 8.5cqw;
  bottom: -4%;
  z-index: 2;
  width: 16.5cqw;
}

body.v3-static-hero .v3-hero-face-red {
  top: 50%;
  right: 3cqw;
  bottom: auto;
  z-index: 3;
  width: 21.2cqw;
}

body.v3-static-hero .v3-hero-donut {
  right: -29cqw;
  bottom: -28%;
  z-index: 1;
  width: 47cqw;
  transform: rotate(-22deg);
}

body.v3-static-hero .v3-ticket-box {
  position: absolute;
  top: 67.7%;
  left: 50%;
  z-index: 4;
  width: 43.2%;
  min-width: 0;
  aspect-ratio: 305 / 114;
  transform: translateX(-48%);
  pointer-events: auto;
}

body.v3-static-hero .v3-ticket-container {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
}

body.v3-static-hero .v3-ticket-options {
  position: absolute;
  left: 6.5%;
  right: 4%;
  bottom: 10%;
  height: 29%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2%;
  transform: translateX(-5px);
}

body.v3-static-hero .v3-ticket-options a { display: block; min-width: 0; transition: transform .2s ease; }
body.v3-static-hero .v3-ticket-options a:hover { transform: translateY(-2px); }
body.v3-static-hero .v3-ticket-options img { display: block; width: 100%; height: 100%; object-fit: contain; }

body.v3-static-hero .v3-details {
  position: relative;
  z-index: 5;
  background: #fff;
  color: #221f21;
  scroll-margin-top: 20px;
}

body.v3-static-hero .v3-details-stage {
  position: relative;
  width: min(100%, var(--v3-frame-width));
  margin-inline: auto;
  container-type: inline-size;
}

body.v3-static-hero .v3-details-content {
  position: relative;
  padding: 7.2cqw 4.6cqw 6.6cqw;
  container-type: inline-size;
}

body.v3-static-hero .v3-hero-spark {
  position: absolute;
  top: -4.5cqw;
  right: .5%;
  bottom: auto;
  z-index: 6;
  width: 13%;
  height: auto;
  transform: rotate(9deg);
  pointer-events: none;
}

body.v3-static-hero .v3-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5.7cqw;
  width: 66%;
  margin-inline: auto;
}

body.v3-static-hero .v3-stat {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  aspect-ratio: 137 / 130;
  padding-bottom: 1cqw;
  border-radius: .9cqw;
  background: #221f21;
  color: #fff;
}

body.v3-static-hero .v3-stat strong {
  position: relative;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 12.8cqw;
  font-weight: 600;
  line-height: .9;
}

body.v3-static-hero .v3-stat span {
  position: relative;
  font-family: Arial, sans-serif;
  font-size: 3.7cqw;
  font-weight: 700;
  line-height: 1.2;
}

body.v3-static-hero .v3-stat-star {
  position: absolute;
  z-index: -1;
  width: 110%;
  height: auto;
  pointer-events: none;
}

body.v3-static-hero .v3-stat-star--artists { left: -45%; top: -32%; }
body.v3-static-hero .v3-stat-star--stages { left: -12%; top: -33%; width: 85%; }
body.v3-static-hero .v3-stat-star--nights { right: -33%; top: -27%; width: 90%; }

body.v3-static-hero .v3-ticket-details {
  position: relative;
  display: grid;
  grid-template-columns: 37.5% minmax(0, 1fr);
  align-items: end;
  gap: 1.6cqw;
  margin-top: 6.5cqw;
}

body.v3-static-hero .v3-ticket-intro { position: relative; padding: 0 0 1.8cqw 1cqw; }

body.v3-static-hero .v3-ticket-intro h2 {
  position: relative;
  z-index: 1;
  margin: 0 0 1cqw;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 7.7cqw;
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -.08cqw;
}

body.v3-static-hero .v3-hornbill {
  position: absolute;
  top: -12cqw;
  left: -3cqw;
  width: 13cqw;
  height: auto;
  pointer-events: none;
}

body.v3-static-hero .v3-buy-link {
  display: block;
  padding: 1.25cqw .6cqw;
  border: .2cqw solid #221f21;
  border-radius: .7cqw;
  background: #ed3e4a;
  box-shadow: 0 .2cqw 0 #221f21;
  color: #fff;
  text-align: center;
  font: 700 clamp(14px, 1.4cqw, 18px) / 1 Arial, sans-serif;
  transition: background .2s ease;
}

body.v3-static-hero .v3-buy-link:hover { background: #d93240; }

body.v3-static-hero .v3-pricing-frame {
  position: relative;
  padding: 2cqw 3cqw;
  background: #221f21;
}

/* Cut-out ticket edges for the HTML price table. */
body.v3-static-hero .v3-pricing-frame::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 0, #fff .65cqw, transparent .72cqw) top left / 2.4cqw 1.4cqw repeat-x,
    radial-gradient(circle at 50% 100%, #fff .65cqw, transparent .72cqw) bottom left / 2.4cqw 1.4cqw repeat-x,
    radial-gradient(circle at 0 50%, #fff .65cqw, transparent .72cqw) top left / 1.4cqw 2.4cqw repeat-y,
    radial-gradient(circle at 100% 50%, #fff .65cqw, transparent .72cqw) top right / 1.4cqw 2.4cqw repeat-y;
  pointer-events: none;
}

body.v3-static-hero .v3-pricing {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 .45cqw;
  table-layout: fixed;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 3.8cqw;
  font-weight: 600;
  line-height: 1;
  text-align: center;
}

body.v3-static-hero .v3-pricing thead { color: #fff; }
body.v3-static-hero .v3-pricing thead th { padding: 0 .1cqw .15cqw; font-weight: 600; white-space: nowrap; }
body.v3-static-hero .v3-pricing thead th:first-child { width: 35%; font-size: 4cqw; }
body.v3-static-hero .v3-pricing thead span { display: block; padding: .5cqw 0 .35cqw; background: #4c3bbb; font-size: 3cqw; }
body.v3-static-hero .v3-pricing thead th:last-child span { background: #f1753a; }
body.v3-static-hero .v3-pricing tbody th,
body.v3-static-hero .v3-pricing td { position: relative; padding: .45cqw .35cqw .3cqw; background: #fff; }
body.v3-static-hero .v3-pricing tbody th { border-radius: .6cqw 0 0 .6cqw; font-weight: 600; }
body.v3-static-hero .v3-pricing td { color: #4b39b4; }
body.v3-static-hero .v3-pricing td:last-child { border-radius: 0 .6cqw .6cqw 0; color: #ed7438; }
body.v3-static-hero .v3-pricing-featured > * { box-shadow: 0 -.15cqw #ed3e4a, 0 .15cqw #ed3e4a; background: #fffdf0 !important; }
body.v3-static-hero .v3-pricing small {
  position: absolute;
  top: -.55cqw;
  right: .3cqw;
  padding: .3cqw .7cqw;
  border-radius: 2cqw;
  background: #ed3e4a;
  color: #fff;
  white-space: nowrap;
  font: 700 .62cqw / 1 Arial, sans-serif;
}

body.v3-static-hero .v3-details-cactus {
  position: absolute;
  right: -3%;
  bottom: 4%;
  width: 6%;
  height: auto;
  pointer-events: none;
}

body.v3-static-hero .v3-details::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 100%;
  height: 14px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 100% 45%, 98% 70%, 96% 40%, 94% 80%, 91% 55%, 88% 75%, 84% 40%, 81% 80%, 77% 45%, 73% 70%, 69% 40%, 65% 85%, 61% 45%, 57% 75%, 53% 45%, 49% 80%, 45% 40%, 41% 75%, 37% 45%, 33% 80%, 29% 40%, 25% 75%, 21% 40%, 17% 80%, 13% 45%, 9% 75%, 5% 40%, 2% 80%, 0 50%);
  filter: drop-shadow(0 3px 0 #aaa);
}

/* Section 3: lineup, rebuilt from v3Assets/mockup-lineup.png. */
body.v3-static-hero .v3-lineup {
  position: relative;
  z-index: 4;
  overflow: visible;
  scroll-margin-top: 20px;
  background: transparent;
  color: #fff;
}

body.v3-static-hero .v3-lineup-stage {
  position: relative;
  width: min(100%, var(--v3-frame-width));
  margin-inline: auto;
  overflow: visible;
  container-type: inline-size;
}

body.v3-static-hero .v3-lineup-content {
  position: relative;
  z-index: 2;
  padding: 9cqw 5.7cqw 9cqw;
}

body.v3-static-hero .v3-lineup h2 {
  position: relative;
  z-index: 2;
  margin: 0;
  color: #fff;
  text-align: center;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 11cqw;
  font-weight: 600;
  line-height: .9;
  letter-spacing: .15cqw;
  text-shadow: .35cqw .35cqw 0 #201d1d;
}

body.v3-static-hero .v3-lineup-stages {
  display: none;
}

body.v3-static-hero .v3-lineup-stages span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  padding: 1cqw 1.35cqw;
  border-radius: 99px;
  background: #fff;
  color: #241f20;
  white-space: nowrap;
  font: 500 1.48cqw / 1 Arial, sans-serif;
}

body.v3-static-hero .v3-stage-dot {
  flex: 0 0 auto;
  width: 1.1cqw;
  height: 1.1cqw;
  margin-right: 1.1cqw;
  border-radius: 50%;
  background: #3a2922;
}

body.v3-static-hero .v3-stage-dot--miranda { background: #ff9700; }
body.v3-static-hero .v3-stage-dot--rpm { background: #18a98a; }

body.v3-static-hero .v3-lineup-headliner {
  position: relative;
  z-index: 2;
  margin: 4cqw 0 0;
  overflow: visible;
  border-radius: 1.5cqw;
  background: #fff;
}

body.v3-static-hero .v3-lineup-headliner > img,
body.v3-static-hero .v3-lineup-headliner > .v3-lineup-zoom > img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

body.v3-static-hero .v3-lineup-headliner-copy {
  pointer-events: none;
  position: absolute;
  left: 2.8cqw;
  bottom: 2.2cqw;
  z-index: 2;
}

body.v3-static-hero .v3-lineup-headliner-copy > div {
  display: flex;
  gap: .8cqw;
  margin-bottom: .9cqw;
}

body.v3-static-hero .v3-lineup-headliner-copy > div span {
  padding: .55cqw .9cqw;
  border: .18cqw solid #fff;
  background: #ff5f5b;
  color: #fff;
  font: 500 clamp(11px, 1.65cqw, 16px) / 1 Arial, sans-serif;
}

body.v3-static-hero .v3-lineup-headliner-copy > div span:last-child {
  background: rgba(51, 31, 22, .85);
}

body.v3-static-hero .v3-lineup-headliner h3 {
  margin: 0;
  color: #fff;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 4.7cqw;
  font-weight: 600;
  line-height: 1;
  text-shadow: .15cqw .15cqw 0 #f26c36;
}

body.v3-static-hero .v3-lineup-artists {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1.4cqw;
  margin-top: 2.2cqw;
}

body.v3-static-hero .v3-lineup-artists img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: .8cqw;
}

body.v3-static-hero .v3-lineup-more {
  position: relative;
  z-index: 2;
  display: block;
  width: 41%;
  margin: 7cqw auto 0;
  transition: transform .2s ease;
}

body.v3-static-hero .v3-lineup-more img { display: block; width: 100%; height: auto; }

body.v3-static-hero .v3-lineup-more:hover { transform: translateY(-3px); }

body.v3-static-hero .v3-lineup-decor {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: visible;
  pointer-events: none;
}

body.v3-static-hero .v3-lineup-face,
body.v3-static-hero .v3-lineup-star {
  position: absolute;
  display: block;
  height: auto;
}

body.v3-static-hero .v3-lineup-face {
  left: -8cqw;
  bottom: 3cqw;
  width: 24cqw;
  opacity: .8;
}

body.v3-static-hero .v3-lineup-star {
  right: -28cqw;
  bottom: -22cqw;
  width: 68cqw;
  transform: rotate(20deg);
  opacity: .72;
}

/* Section 4: a continuous frame after Lineup, following mockup-thecity.png. */
body.v3-static-hero .v3-city {
  position: relative;
  z-index: 3;
  overflow: visible;
  scroll-margin-top: 20px;
  background: transparent;
  color: #fff;
}

body.v3-static-hero .v3-city-stage {
  position: relative;
  width: min(100%, var(--v3-frame-width));
  margin-inline: auto;
  padding: 5cqw 0 7cqw;
  overflow: visible;
  container-type: inline-size;
}

body.v3-static-hero .v3-city-header {
  position: relative;
  z-index: 2;
  width: 82%;
  margin-inline: auto;
  text-align: center;
}

body.v3-static-hero .v3-city-header h2 {
  margin: 0;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 7.8cqw;
  font-weight: 600;
  line-height: .95;
  letter-spacing: .12cqw;
  text-shadow: .25cqw .25cqw 0 #211e1e;
}

body.v3-static-hero .v3-city-header p {
  max-width: 68cqw;
  margin: 2.4cqw auto 0;
  font: 500 clamp(16px, 1.7cqw, 19px) / 1.4 Arial, sans-serif;
}

body.v3-static-hero .v3-city-carousel {
  position: relative;
  z-index: 2;
  width: 125cqw;
  margin: 5.2cqw 0 0 -12.5cqw;
  overflow: visible;
}

body.v3-static-hero .v3-city-track {
  display: grid;
  grid-template-columns: repeat(4, 29cqw);
  gap: 3cqw;
  overflow: visible;
}

body.v3-static-hero .v3-city-card,
body.v3-static-hero .v3-city-card img {
  display: block;
  width: 100%;
  height: auto;
}

body.v3-static-hero .v3-city-card {
  margin: 0;
  scroll-snap-align: center;
}

body.v3-static-hero .v3-city-arrow {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 4.2cqw;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
  transition: transform .2s ease;
}

body.v3-static-hero .v3-city-arrow:hover { transform: translateY(-50%) scale(1.08); }
body.v3-static-hero .v3-city-arrow--prev { left: 10.5cqw; }
body.v3-static-hero .v3-city-arrow--next { right: 10.5cqw; }
body.v3-static-hero .v3-city-arrow--prev img { transform: rotate(180deg); }
body.v3-static-hero .v3-city-arrow img { display: block; width: 100%; height: auto; }

/* Swiper presentation: the active card stays centered while its neighbours
   follow the curved, scaled mockup rhythm. */
body.v3-static-hero .v3-city-carousel {
  --v3-city-swipe-offset: calc(49.14cqw + 10px);
  width: 100vw;
  left: 50%;
  margin-left: 0;
  transform: translateX(-50%);
  touch-action: pan-y;
  user-select: none;
}

body.v3-static-hero .v3-city-track {
  position: relative;
  display: block;
  width: 100%;
  height: 46cqw;
  overflow: visible;
}

body.v3-static-hero .v3-city-card {
  position: absolute;
  top: 0;
  left: 50%;
  width: 48cqw;
  margin: 0;
  transform: translateX(calc(-50% + var(--swiper-x, 0cqw))) scale(var(--swiper-scale, .65));
  transform-origin: center center;
  opacity: var(--swiper-opacity, .25);
  z-index: var(--swiper-z, 1);
  transition: transform .45s cubic-bezier(.2,.8,.2,1), opacity .45s ease;
  pointer-events: none;
}

body.v3-static-hero .v3-city-card img {
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

body.v3-static-hero .v3-city-card[aria-hidden="false"],
body.v3-static-hero .v3-merch-card[aria-hidden="false"] {
  pointer-events: auto;
}

body.v3-static-hero .v3-city-arrow--prev { left: 18cqw; }
body.v3-static-hero .v3-city-arrow--next { right: 18cqw; }

/* Section 5: Memories + Aftermovie, rebuilt from mockup-memories.png. */
body.v3-static-hero .v3-memories {
  position: relative;
  z-index: 2;
  overflow: visible;
  background: transparent;
  color: #fff;
}

body.v3-static-hero .v3-memories-stage {
  position: relative;
  width: min(100%, var(--v3-frame-width));
  margin-inline: auto;
  padding: 8cqw 0 5cqw;
  overflow: visible;
  container-type: inline-size;
}

body.v3-static-hero .v3-memories-header {
  position: relative;
  z-index: 2;
  width: 94%;
  margin-inline: auto;
  text-align: center;
}

body.v3-static-hero .v3-memories-header h2 {
  display: flex;
  flex-direction: column;
  gap: 1cqw;
  margin: 0;
  color: #fff;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 10.5cqw;
  font-weight: 600;
  line-height: .92;
  letter-spacing: .08cqw;
  text-shadow: .22cqw .22cqw 0 #8a512f;
}

body.v3-static-hero .v3-memories-header h2 span {
  font-size: .72em;
}

body.v3-static-hero .v3-memories-sparkles {
  position: absolute;
  top: 5cqw;
  left: -4cqw;
  z-index: 1;
  width: 9cqw;
  height: 11cqw;
  pointer-events: none;
}

body.v3-static-hero .v3-memories-sparkles img {
  position: absolute;
  display: block;
  width: 65%;
  height: auto;
}

body.v3-static-hero .v3-memories-sparkles img:nth-child(2) {
  top: 1cqw;
  right: 0;
  width: 43%;
}

body.v3-static-hero .v3-memories-sparkles img:nth-child(3) {
  left: 1.6cqw;
  bottom: 0;
  width: 58%;
}

body.v3-static-hero .v3-memories-face {
  position: absolute;
  top: 16cqw;
  right: -8cqw;
  z-index: 1;
  display: block;
  width: 25cqw;
  height: auto;
  pointer-events: none;
}

body.v3-static-hero .v3-memories-gallery {
  --v3-memories-gallery-width: min(108cqw, 100vw);
  position: relative;
  z-index: 2;
  left: 50%;
  width: var(--v3-memories-gallery-width);
  margin-top: 5.5cqw;
  overflow: clip;
  transform: translateX(-50%);
}

body.v3-static-hero .v3-memories-gallery::before,
body.v3-static-hero .v3-memories-gallery::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  width: 9%;
  pointer-events: none;
  backdrop-filter: blur(.35cqw);
}

body.v3-static-hero .v3-memories-gallery::before {
  left: 0;
  background: linear-gradient(90deg, #171518 0%, rgba(23, 21, 24, .82) 32%, transparent 100%);
}

body.v3-static-hero .v3-memories-gallery::after {
  right: 0;
  background: linear-gradient(270deg, #171518 0%, rgba(23, 21, 24, .82) 32%, transparent 100%);
}

body.v3-static-hero .v3-memories-gallery-track {
  display: flex;
  width: max-content;
  animation: v3-memories-marquee 24s linear infinite;
  will-change: transform;
}

body.v3-static-hero .v3-memories-gallery:hover .v3-memories-gallery-track,
body.v3-static-hero .v3-memories-gallery.is-interacting .v3-memories-gallery-track,
html.v3-viewer-open body.v3-static-hero .v3-memories-gallery-track,
body.v3-static-hero .v3-memories-gallery:focus-within .v3-memories-gallery-track {
  animation-play-state: paused;
}

body.v3-static-hero .v3-memories-gallery img {
  flex: 0 0 calc(var(--v3-memories-gallery-width) / 6);
  display: block;
  width: calc(var(--v3-memories-gallery-width) / 6);
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  cursor: zoom-in;
  user-select: none;
  -webkit-user-drag: none;
}

body.v3-static-hero .v3-memory-item {
  cursor: zoom-in;
}

body.v3-static-hero .v3-memory-item:focus-visible {
  position: relative;
  z-index: 2;
  outline: .3cqw solid #fff;
  outline-offset: -.3cqw;
}

@keyframes v3-memories-marquee {
  to { transform: translateX(calc(-1 * var(--v3-memories-gallery-width))); }
}

@media (prefers-reduced-motion: reduce) {
  body.v3-static-hero .v3-memories-gallery-track { animation-play-state: paused; }
}

body.v3-static-hero .v3-memories-aftermovie {
  position: relative;
  z-index: 2;
  margin-top: 4.8cqw;
  text-align: center;
}

body.v3-static-hero .v3-memories-aftermovie h3 {
  margin: 0 0 1.5cqw;
  color: #fff;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 5.5cqw;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .08cqw;
}

body.v3-static-hero .v3-memories-video {
  position: relative;
  width: 86cqw;
  margin-inline: auto;
  cursor: pointer;
}

body.v3-static-hero .v3-memories-video > img {
  display: block;
  width: 100%;
  height: auto;
}

body.v3-static-hero .v3-memories-video > button {
  position: absolute;
  inset: 5% 3%;
  z-index: 2;
  border: 0;
  background: transparent;
  cursor: pointer;
}

body.v3-static-hero .v3-memories-video:hover > img {
  filter: brightness(1.08);
}

body.v3-static-hero a:focus-visible {
  outline: 3px solid #ff963e;
  outline-offset: 4px;
}

@media (min-width: 601px) and (max-width: 900px) {
  body.v3-static-hero .v3-nav { font-size: 20px; gap: 14px; }
  body.v3-static-hero .v3-site-logo { width: 72px; }
  body.v3-static-hero .v3-header-ticket { width: 108px; }
}

@media (max-width: 600px) {
  body.v3-static-hero { --v3-outer-frame-width: 90vw; }
  body.v3-static-hero .v3-header { top: 4%; grid-template-columns: 1fr 1fr; row-gap: 6px; }
  body.v3-static-hero .v3-header-ticket { width: 100px; grid-column: 2; grid-row: 1; }
  body.v3-static-hero .v3-site-logo { width: 64px; }
  body.v3-static-hero .v3-nav {
    grid-row: 2;
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    width: 100%;
    gap: 4px;
    font-size: clamp(16px, 4.5vw, 20px);
    white-space: normal;
  }
  body.v3-static-hero .v3-hero-stage { aspect-ratio: 390 / 470; }
  body.v3-static-hero .v3-hero-title { top: 28%; }
  body.v3-static-hero .v3-ticket-box { top: 66%; width: 50%; }
}

@media (min-width: 421px) and (max-width: 900px) {
  body.v3-static-hero .v3-lineup-content { padding: 9cqw 7cqw 10cqw; }
  body.v3-static-hero .v3-lineup-stages {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.8cqw;
    margin: 7cqw 0 4.5cqw;
  }
  body.v3-static-hero .v3-lineup-stages span { padding: 1.4cqw 1.7cqw; font-size: 1.7cqw; }
  body.v3-static-hero .v3-stage-dot { width: 1.35cqw; height: 1.35cqw; margin-right: 1.25cqw; }
  body.v3-static-hero .v3-lineup-artists {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2cqw;
    margin-top: 3cqw;
  }
  body.v3-static-hero .v3-lineup-more { width: 50%; margin-top: 8cqw; }
  body.v3-static-hero .v3-city-stage { padding: 6cqw 0 8cqw; }
  body.v3-static-hero .v3-city-header { width: 80%; }
  body.v3-static-hero .v3-city-header h2 { font-size: 9cqw; }
  body.v3-static-hero .v3-city-header p { max-width: 70cqw; font-size: clamp(16px, 2.2cqw, 19px); }
  body.v3-static-hero .v3-city-track { height: 49cqw; }
  body.v3-static-hero .v3-city-card { width: 54cqw; }
  body.v3-static-hero .v3-city-arrow { width: 5cqw; }
  body.v3-static-hero .v3-city-arrow--prev { left: 8vw; }
  body.v3-static-hero .v3-city-arrow--next { right: 8vw; }
}

@media (max-width: 420px) {
  body.v3-static-hero { --v3-outer-frame-width: 100vw; }
  body.v3-static-hero .v3-hero-face-red { top: 49%; }
  body.v3-static-hero .v3-hero-lamp { width: 10.5%; }
  body.v3-static-hero .v3-hero-kang { width: 24%; bottom: -9%; left: 6%; }
  body.v3-static-hero .v3-hero-women { width: 20%; right: 5%; bottom: -3%; }
  body.v3-static-hero .v3-hero-starburst { top: 58%; width: 66%; left: -33%; }
  body.v3-static-hero .v3-details-content { padding-top: 11cqw; padding-bottom: 12cqw; }
  body.v3-static-hero .v3-stats { width: 76%; gap: 5cqw; }
  body.v3-static-hero .v3-stat strong { font-size: 12cqw; }
  body.v3-static-hero .v3-stat span { font-size: 4cqw; }
  body.v3-static-hero .v3-ticket-details { grid-template-columns: 1fr; gap: 5cqw; margin-top: 9cqw; }
  body.v3-static-hero .v3-ticket-intro { width: 70%; justify-self: center; padding: 0; }
  body.v3-static-hero .v3-ticket-intro h2 { font-size: 10cqw; text-align: center; }
  body.v3-static-hero .v3-hornbill { width: 17cqw; left: -14cqw; top: -1cqw; }
  body.v3-static-hero .v3-buy-link { padding: 2.3cqw; font-size: 2.7cqw; }
  body.v3-static-hero .v3-pricing-frame { padding: 3cqw 4cqw; }
  body.v3-static-hero .v3-pricing { font-size: 5cqw; border-spacing: 0 1cqw; }
  body.v3-static-hero .v3-pricing thead th:first-child { font-size: 5.2cqw; }
  body.v3-static-hero .v3-pricing thead span { font-size: 4cqw; }
  body.v3-static-hero .v3-pricing tbody th,
  body.v3-static-hero .v3-pricing td { padding: 1cqw .4cqw; }
  body.v3-static-hero .v3-pricing small { font-size: 1cqw; }
  body.v3-static-hero .v3-lineup-content { padding: 10cqw 7cqw 11cqw; }
  body.v3-static-hero .v3-lineup h2 { font-size: 15cqw; }
  body.v3-static-hero .v3-lineup-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4cqw; margin: 9cqw 0 5cqw; }
  body.v3-static-hero .v3-lineup-stages span { padding: 2.3cqw; font-size: 2.8cqw; }
  body.v3-static-hero .v3-stage-dot { width: 2cqw; height: 2cqw; margin-right: 1.6cqw; }
  body.v3-static-hero .v3-lineup-headliner-copy { left: 3.5cqw; bottom: 3cqw; }
  body.v3-static-hero .v3-lineup-headliner-copy > div span { font-size: clamp(11px, 2.2cqw, 14px); }
  body.v3-static-hero .v3-lineup-headliner h3 { font-size: 6cqw; }
  body.v3-static-hero .v3-lineup-artists { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.8cqw; margin-top: 3.5cqw; }
  body.v3-static-hero .v3-lineup-more { width: 64%; margin-top: 11cqw; }
  body.v3-static-hero .v3-city-stage { padding: 9cqw 0 10cqw; }
  body.v3-static-hero .v3-city-header { width: 86%; }
  body.v3-static-hero .v3-city-header h2 { font-size: 13.5cqw; }
  body.v3-static-hero .v3-city-header p {
    max-width: 92%;
    margin: 4.5cqw auto 0;
    font-size: clamp(16px, 4.1cqw, 19px);
    line-height: 1.35;
  }
  body.v3-static-hero .v3-city-track { height: 73vw; }
  body.v3-static-hero .v3-city-card { width: 72vw; }
  body.v3-static-hero .v3-city-carousel { --v3-city-swipe-offset: calc(65.52cqw + 10px); }
  body.v3-static-hero .v3-city-arrow { width: 7cqw; }
  body.v3-static-hero .v3-city-arrow--prev { left: 4vw; }
  body.v3-static-hero .v3-city-arrow--next { right: 4vw; }
}

@media (max-width: 360px) {
  body.v3-static-hero .v3-hero-title { top: 31%; }
}

@media (min-width: 600px) {
  body.v3-static-hero .v3-city-track { height: 31cqw; }
  body.v3-static-hero .v3-city-card { width: 31cqw; }
  body.v3-static-hero .v3-city-arrow { width: 4.2cqw; }
  body.v3-static-hero .v3-city-arrow--prev { left: calc(50% - 52cqw); }
  body.v3-static-hero .v3-city-arrow--next { right: calc(50% - 52cqw); }
}

/* Section 6: Spotlight, rebuilt from mockup-Spotlight.png. */
body.v3-static-hero .v3-spotlight {
  position: relative;
  z-index: 2;
  overflow: visible;
  background: #fff;
  color: #171518;
}

body.v3-static-hero .v3-spotlight-stage {
  position: relative;
  width: min(100%, var(--v3-frame-width));
  margin-inline: auto;
  padding: 6cqw 0 2cqw;
  overflow: visible;
  container-type: inline-size;
}

body.v3-static-hero .v3-spotlight-header {
  position: relative;
  z-index: 2;
  width: 94%;
  margin: 0 auto 4.5cqw;
}

body.v3-static-hero .v3-spotlight-header h2 {
  margin: 0;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 10.5cqw;
  font-weight: 600;
  line-height: .9;
  letter-spacing: .05cqw;
}

body.v3-static-hero .v3-spotlight-list {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 2.2cqw;
  width: 94%;
  margin-inline: auto;
}

body.v3-static-hero .v3-spotlight-row {
  display: grid;
  grid-template-columns: 40% 60%;
  align-items: stretch;
  min-width: 0;
  filter: drop-shadow(.25cqw .35cqw .2cqw rgba(0, 0, 0, .25));
}

body.v3-static-hero .v3-spotlight-row--reverse {
  grid-template-columns: 60% 40%;
}

body.v3-static-hero .v3-spotlight-row > img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: cover;
}

body.v3-static-hero .v3-spotlight-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 4cqw 3.5cqw;
  background: #211e22;
  color: #fff;
}

body.v3-static-hero .v3-spotlight-copy h3 {
  margin: 0 0 1.4cqw;
  font-family: 'Happy Season Display', Impact, sans-serif;
  font-size: 3.2cqw;
  font-weight: 600;
  line-height: 1;
}

body.v3-static-hero .v3-spotlight-copy p {
  max-width: 92%;
  margin: 0 0 2cqw;
  font: 500 clamp(16px, 1.55cqw, 19px) / 1.45 Arial, sans-serif;
}

body.v3-static-hero .v3-spotlight-copy a {
  color: #f06b3b;
  font: 600 clamp(14px, 1.3cqw, 17px) / 1.2 Arial, sans-serif;
  text-decoration: none;
}

body.v3-static-hero .v3-spotlight-star {
  position: absolute;
  top: -7cqw;
  right: -22cqw;
  z-index: 1;
  width: 42cqw;
  height: auto;
  pointer-events: none;
}

body.v3-static-hero .v3-spotlight-face {
  position: absolute;
  left: -13cqw;
  bottom: -20cqw;
  z-index: -1;
  width: 23cqw;
  height: auto;
  pointer-events: none;
}

body.v3-static-hero .v3-merchandise { position: relative; z-index: 2; margin-top: 8cqw; }
body.v3-static-hero .v3-merchandise > h3 {
  margin: 0 0 5cqw;
  text-align: center;
  font: 600 7cqw/.9 'Happy Season Display', Impact, sans-serif;
  text-transform: uppercase;
}
body.v3-static-hero .v3-merch-carousel {
  position: relative;
  width: 100%;
  height: 34cqw;
  touch-action: pan-y;
  user-select: none;
  cursor: grab;
}
body.v3-static-hero .v3-merch-track { position: relative; width: 100%; height: 100%; overflow: visible; }
body.v3-static-hero .v3-merch-card {
  position: absolute;
  left: 50%;
  top: 0;
  width: 30cqw;
  margin: 0;
  transform: translateX(calc(-50% + var(--swiper-x, 0cqw))) scale(var(--swiper-scale, .8));
  opacity: var(--swiper-opacity, 0);
  z-index: var(--swiper-z, 1);
  transition: transform .45s cubic-bezier(.2,.8,.2,1), opacity .45s ease;
  pointer-events: none;
}
body.v3-static-hero .v3-merch-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}
body.v3-static-hero .v3-merch-arrow {
  position: absolute;
  top: 46%;
  z-index: 5;
  display: grid;
  place-items: center;
  width: max(44px, 5cqw);
  height: max(44px, 5cqw);
  padding: .6cqw;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
  transition: scale .2s;
}
body.v3-static-hero .v3-merch-arrow:hover { scale: 1.12; }
body.v3-static-hero .v3-merch-arrow--prev { left: 0; }
body.v3-static-hero .v3-merch-arrow--next { right: 0; }
body.v3-static-hero .v3-merch-arrow img { display: block; width: 100%; pointer-events: none; }
body.v3-static-hero .v3-merch-arrow--prev img { transform: rotate(180deg); }
body.v3-static-hero .v3-city-carousel { cursor: grab; }
body.v3-static-hero .is-dragging { cursor: grabbing; }
body.v3-static-hero .v3-carousel-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
body.v3-static-hero :is(.v3-merch-carousel, .v3-merch-arrow, .v3-faq .faq-header, .v3-site-footer a):focus-visible {
  outline: 3px solid #ee6c32;
  outline-offset: 4px;
}

@media (max-width: 599px) {
  body.v3-static-hero .v3-city-carousel,
  body.v3-static-hero .v3-merch-carousel {
    touch-action: pan-y;
  }

  body.v3-static-hero .v3-spotlight-stage { padding: 8cqw 0 5cqw; }
  body.v3-static-hero .v3-spotlight-header { width: 88%; margin-bottom: 7cqw; }
  body.v3-static-hero .v3-spotlight-header h2 { font-size: 14cqw; }
  body.v3-static-hero .v3-spotlight-list { width: 88%; gap: 5cqw; }
  body.v3-static-hero .v3-spotlight-row,
  body.v3-static-hero .v3-spotlight-row--reverse {
    display: flex;
    flex-direction: column;
  }
  body.v3-static-hero .v3-spotlight-row--reverse .v3-spotlight-copy { order: 2; }
  body.v3-static-hero .v3-spotlight-row--reverse > img { order: 1; }
  body.v3-static-hero .v3-spotlight-row > img { height: auto; aspect-ratio: 489 / 300; }
  body.v3-static-hero .v3-spotlight-copy { min-height: 34cqw; padding: 6cqw 5cqw; }
  body.v3-static-hero .v3-spotlight-copy h3 { font-size: 5.8cqw; }
  body.v3-static-hero .v3-spotlight-copy p { max-width: none; font-size: clamp(16px, 3.7cqw, 19px); }
  body.v3-static-hero .v3-spotlight-copy a { font-size: clamp(14px, 3.1cqw, 16px); }
  body.v3-static-hero .v3-spotlight-star { top: -10cqw; right: -31cqw; width: 58cqw; }
  body.v3-static-hero .v3-spotlight-face { left: -25cqw; bottom: -22cqw; width: 38cqw; }
  body.v3-static-hero .v3-merchandise { margin-top: 9cqw; }
  body.v3-static-hero .v3-merchandise > h3 { font-size: 12cqw; margin-bottom: 7cqw; }
  body.v3-static-hero .v3-merch-carousel { height: 60cqw; }
  body.v3-static-hero .v3-merch-card { width: 54cqw; }
  body.v3-static-hero .v3-merch-arrow { width: 10cqw; padding: 1.8cqw; }
}

/* Mobile polish: keep the City cards close to the focus card and make the
   memories strip readable instead of showing six tiny thumbnails at once. */
@media (max-width: 599px) {
  body.v3-static-hero .v3-memories-gallery {
    --v3-memories-gallery-width: 192cqw;
  }

  body.v3-static-hero .v3-memories-gallery img {
    flex-basis: calc(var(--v3-memories-gallery-width) / 6);
    width: calc(var(--v3-memories-gallery-width) / 6);
  }
}

/* FAQ and footer continue the white Spotlight frame (mockup-faq.jpeg). */
body.v3-static-hero .v3-faq {
  position: relative;
  z-index: 2;
  background: #fff;
  color: #171518;
  overflow: visible;
  scroll-margin-top: 24px;
}
body.v3-static-hero .v3-faq-stage {
  position: relative;
  isolation: isolate;
  width: min(100%, var(--v3-frame-width));
  margin-inline: auto;
  padding: clamp(28px, 4vw, 54px) 0 clamp(50px, 8vw, 118px);
  container-type: inline-size;
}
/* Decorative art belongs to a fixed visual canvas, never to the growing
   accordion height. Opening an answer therefore leaves the background in
   place and only expands the content below it. */
body.v3-static-hero .v3-faq-art {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: -1;
  width: 100%;
  height: clamp(520px, 76cqw, 820px);
  transform: translateX(-50%);
  pointer-events: none;
}
body.v3-static-hero .v3-faq-art img { position: absolute; display: block; height: auto; }
body.v3-static-hero .v3-faq-lamp { left: -9cqw; top: -5cqw; width: 13cqw; }
body.v3-static-hero .v3-faq-face { right: -19cqw; top: -3cqw; width: 47cqw; }
body.v3-static-hero .v3-faq-star { left: -35cqw; bottom: -18cqw; width: 89cqw; }
body.v3-static-hero .v3-faq-flower { right: -24cqw; bottom: -25cqw; width: 63cqw; }
body.v3-static-hero .v3-faq-heading {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4cqw;
  margin-bottom: 4.5cqw;
  width: 86%;
  margin-inline: auto;
}
body.v3-static-hero .v3-faq-heading h2 {
  margin: 0;
  font: 600 6.2cqw/1.2 'Happy Season Display', Impact, sans-serif;
  text-transform: uppercase;
  color: #050505;
}
body.v3-static-hero .v3-faq-heading > span { color: #050505; font: 600 17cqw/1 'Happy Season Display', Impact, sans-serif; }
body.v3-static-hero .v3-faq .faq-grid { position: relative; width: 86%; margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2cqw; }
body.v3-static-hero .v3-faq .faq-col { min-width: 0; gap: 1.3cqw; }
body.v3-static-hero .v3-faq .faq-item {
  border: 1px solid transparent;
  border-radius: 4px;
  background: #211e22;
  box-shadow: none;
  opacity: 1;
  transform: none;
  scroll-margin-top: 28px;
}
body.v3-static-hero .v3-faq .faq-item:hover,
body.v3-static-hero .v3-faq .faq-item.active { border-color: #f16c37; box-shadow: 0 3px 10px #0002; }
body.v3-static-hero .v3-faq .faq-header { min-height: 52px; padding: 1.8cqw; gap: 12px; }
body.v3-static-hero .v3-faq .faq-question { padding: 0; color: #fff; font-size: clamp(14px, 1.65cqw, 17px); font-weight: 400; line-height: 1.5; }
body.v3-static-hero .v3-faq .faq-icon {
  width: 16px;
  height: 16px;
  background: transparent;
  color: #ef6a32;
}
body.v3-static-hero .v3-faq .faq-icon i { display: none; }
body.v3-static-hero .v3-faq .faq-icon::before { content: ''; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
body.v3-static-hero .v3-faq .faq-answer {
  margin-inline: 1.8cqw;
  padding: 1.5cqw 0 2cqw;
  color: #e4dfe4;
  border-top: 1px solid #ffffff26;
  font-size: clamp(13px, 1.6cqw, 16px);
  line-height: 1.7;
}
body.v3-static-hero .v3-site-footer { position: relative; z-index: 3; background: #1b1b1b; color: #b6b1b6; font-family: 'Elims Sans', 'Outfit', Arial, sans-serif; font-weight: 400; }
body.v3-static-hero .v3-footer-stage { width: min(100%, 2000px); margin-inline: auto; padding: clamp(20px, 3vw, 32px) 0 clamp(28px, 5vw, 54px); container-type: inline-size; }
body.v3-static-hero .v3-footer-top { display: grid; width: 80%; margin-inline: auto; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: clamp(24px, 3vw, 52px); padding-top: 24px; border-top: 1px solid #ffffff0d; }
body.v3-static-hero .v3-footer-brand img { display: block; width: clamp(80px, 11cqw, 120px); height: auto; }
body.v3-static-hero .v3-footer-brand p { max-width: 26ch; margin: 16px 0 0; font-size: 16px; line-height: 1.7; }
body.v3-static-hero .v3-footer-nav { display: flex; flex-direction: column; align-items: start; gap: 14px; }
body.v3-static-hero .v3-footer-nav h2 { margin: 0 0 4px; color: #35b4e5; font: 400 15px/1.4 Arial, sans-serif; letter-spacing: 1px; text-transform: uppercase; }
body.v3-static-hero .v3-footer-nav a { font-size: 16px; line-height: 1.5; }
body.v3-static-hero .v3-footer-contact { align-self: start; display: grid; place-items: center; min-height: 44px; padding: 1.3cqw 2cqw; border: 1px solid #b5822e; border-radius: 8px; background: #ffca54; color: #171518; text-transform: uppercase; white-space: nowrap; font: 600 clamp(16px, 2cqw, 21px)/1 'Happy Season Display', Impact, sans-serif; box-shadow: 0 3px 0 #0004; }
body.v3-static-hero .v3-footer-bottom { display: flex; width: 80%; margin-inline: auto; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 40px; padding-top: 20px; border-top: 1px solid #ffffff0d; }
body.v3-static-hero .v3-footer-bottom small, body.v3-static-hero .v3-footer-policy a { font-size: clamp(10px, 1.15cqw, 12px); line-height: 1.6; }
body.v3-static-hero .v3-footer-policy { display: flex; flex-wrap: wrap; gap: 1.8cqw; }
body.v3-static-hero .v3-site-footer a { transition: color .2s; }
body.v3-static-hero .v3-site-footer a:hover { color: #ffca54; }
body.v3-static-hero .v3-site-footer .v3-footer-contact:hover { background: #ffda81; color: #171518; }

@media (max-width: 900px) {
  body.v3-static-hero .v3-faq-heading, body.v3-static-hero .v3-faq .faq-grid, body.v3-static-hero .v3-footer-top, body.v3-static-hero .v3-footer-bottom { width: 88%; }
  body.v3-static-hero .v3-footer-top { grid-template-columns: 1.5fr 1fr 1fr; }
  body.v3-static-hero .v3-footer-brand { grid-row: span 2; }
  body.v3-static-hero .v3-footer-contact { grid-column: 2 / 4; justify-self: start; min-width: 145px; }
}
@media (max-width: 599px) {
  body.v3-static-hero .v3-faq-stage { padding-top: 9cqw; padding-bottom: 18cqw; }
  body.v3-static-hero .v3-faq-art { height: 162cqw; }
  body.v3-static-hero .v3-faq-heading { gap: 2cqw; margin-bottom: 7cqw; }
  body.v3-static-hero .v3-faq-heading h2 { font-size: 7.8cqw; }
  body.v3-static-hero .v3-faq-heading > span { font-size: 20cqw; }
  body.v3-static-hero .v3-faq .faq-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  body.v3-static-hero .v3-faq .faq-col { gap: 12px; }
  body.v3-static-hero .v3-faq .faq-header { padding: 14px; min-height: 56px; }
  body.v3-static-hero .v3-faq .faq-question { font-size: 14px; }
  body.v3-static-hero .v3-faq .faq-answer { margin-inline: 14px; padding-block: 12px 16px; font-size: 14px; }
  body.v3-static-hero .v3-faq-face { right: -13cqw; top: 0; width: 48cqw; opacity: .6; }
  body.v3-static-hero .v3-faq-lamp { left: -9cqw; width: 14cqw; }
  body.v3-static-hero .v3-faq-star { left: -40cqw; width: 100cqw; bottom: -7cqw; }
  body.v3-static-hero .v3-faq-flower { right: -23cqw; width: 75cqw; bottom: -23cqw; }
  body.v3-static-hero .v3-footer-stage { padding-block: 5cqw 9cqw; }
  body.v3-static-hero .v3-footer-top { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding-top: 28px; }
  body.v3-static-hero .v3-footer-brand { grid-row: auto; grid-column: 1 / -1; }
  body.v3-static-hero .v3-footer-brand p { max-width: 35ch; margin-top: 14px; font-size: 14px; }
  body.v3-static-hero .v3-footer-nav { gap: 10px; }
  body.v3-static-hero .v3-footer-nav h2 { margin-bottom: 4px; }
  body.v3-static-hero .v3-footer-nav a { font-size: 14px; }
  body.v3-static-hero .v3-footer-contact { grid-column: 1 / -1; padding: 12px 24px; }
  body.v3-static-hero .v3-footer-bottom { align-items: start; flex-direction: column; gap: 18px; margin-top: 32px; padding-top: 24px; }
  body.v3-static-hero .v3-footer-policy { gap: 20px; }
  body.v3-static-hero .v3-footer-bottom small, body.v3-static-hero .v3-footer-policy a { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  body.v3-static-hero :is(.v3-merch-card, .v3-city-card, .v3-faq .faq-content, .v3-faq .faq-icon) { transition: none; }
  body.v3-static-hero.v3-motion-ready .v3-reveal { opacity: 1; translate: none; transition: none; }
  body.v3-static-hero .v3-back-to-top { transition: none; }
}
