/* =========================================================================
   SXM Festival 2027 — front-end layer
   Design source: SXM-Festival-2027-POSTER-FINAL.psd (Project BANG, Sept 2026)
   Poster measures on a 1080px canvas: gutter 65px (6%), date 57px Prompt Black
   line-height .8, names 48px Prompt Black line-height .95 with " / " in Prompt
   Medium 60%, labels 21px Prompt Regular lowercase tracking .02em,
   handwritten bits in Mansalva, cream #fff9a8 on the graded sea plate.
   ====================================================================== */

/* ---------- tokens ---------------------------------------------------- */
:root {
	--sxm-cream: #fff9a8;      /* poster type */
	--sxm-cream-2: #fff9a8;    /* same yellow: solid buttons, featured cards */
	--sxm-cream-deep: #ffe97a; /* deeper yellow for hover states */
	--sxm-bar: #fff9a8;        /* nav bar / cards */
	--sxm-sea-deep: #00458c;   /* graded plate, top */
	--sxm-sea: #015097;
	--sxm-sea-mid: #2671af;
	--sxm-foam: #6988bd;
	--sxm-lav: #b5add5;
	--sxm-sand: #d4cbeb;
	--sxm-ink: #00306b;        /* text on cream */
	/* Optional warm accent (2026 magenta), parked for a later test.
	   To try it on the shore/footer: --sxm-shore-ink: var(--sxm-magenta-deep); --sxm-shore-accent: var(--sxm-magenta); */
	--sxm-magenta: #f25081;
	--sxm-magenta-deep: #b8245f;
	--sxm-shore-ink: var(--sxm-sea-deep);       /* shore/footer type colour */
	--sxm-shore-accent: var(--sxm-sea);         /* shore/footer accent */
	--sxm-shore-line: rgba(0, 69, 140, .35);   /* shore/footer rules */

	--sxm-font: "Prompt", system-ui, -apple-system, "Segoe UI", sans-serif;
	--sxm-hand: "Mansalva", "Prompt", cursive;

	--sxm-gutter: clamp(20px, 6vw, 84px);
	--sxm-max: 1480px;
	--sxm-nav-h: 56px;
	--sxm-nav-top: calc(env(safe-area-inset-top, 0px) + 34px);
	--sxm-radius: 18px;
	--sxm-ease: cubic-bezier(.2, .8, .2, 1);

	--sxm-fs-label: clamp(13px, .62vw + 10px, 18px);
	--sxm-fs-body: clamp(15px, .5vw + 12px, 18px);
	--sxm-fs-lede: clamp(17px, .7vw + 13px, 22px);
	--sxm-fs-date: clamp(27px, 3.36vw, 58px);
	--sxm-fs-names: clamp(19px, 3.44vw, 53px);
	--sxm-fs-h1: clamp(34px, 5.6vw, 92px);
	--sxm-fs-h2: clamp(28px, 3.6vw, 60px);
	--sxm-fs-stat: clamp(44px, 5.5vw, 96px);

	--sxm-shadow-text: 0 1px 1px rgba(0, 32, 80, .35), 0 0 22px rgba(0, 32, 80, .18);
	--sxm-shadow-card: 0 30px 60px -30px rgba(0, 24, 64, .55);

	--sxm-bg-p: 0; /* 0 = deep sea (top of the plate), 1 = beach (bottom). Driven by scroll. */
	color-scheme: dark;
}

@media (min-width: 1024px) {
	:root { --sxm-nav-h: 56px; --sxm-nav-top: 44px; }
}

/* ---------- fonts ------------------------------------------------------ */
@font-face {
	font-family: "Mansalva";
	src: url("../../fonts/Mansalva-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ---------- reset / base ---------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.sxm27 {
	margin: 0;
	min-height: 100svh;
	background: var(--sxm-sea-deep);
	color: var(--sxm-cream);
	font: 400 var(--sxm-fs-body) / 1.5 var(--sxm-font);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body.sxm27 img, body.sxm27 video, body.sxm27 svg { display: block; max-width: 100%; }
body.sxm27 a { color: inherit; text-decoration: none; }
body.sxm27 ul { list-style: none; margin: 0; padding: 0; }
body.sxm27 h1, body.sxm27 h2, body.sxm27 h3, body.sxm27 p, body.sxm27 dl, body.sxm27 dd, body.sxm27 figure { margin: 0; }
body.sxm27 :focus-visible { outline: 2px solid var(--sxm-cream); outline-offset: 4px; border-radius: 4px; }
body.sxm27.sxm-menu-open { overflow: hidden; }

.sxm-skip {
	position: fixed; left: 12px; top: -60px; z-index: 100;
	padding: 10px 16px; border-radius: 999px; background: var(--sxm-bar); color: var(--sxm-ink);
	font-weight: 700; transition: top .2s;
}
.sxm-skip:focus { top: 12px; }
.sxm-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.sxm-wrap { width: min(100% - 2 * var(--sxm-gutter), var(--sxm-max)); margin-inline: auto; }
.sxm-section { position: relative; z-index: 2; padding-block: clamp(56px, 9vw, 140px); }
.sxm-main { position: relative; z-index: 2; }

/* ---------- the plate: fixed graded sea photo, travels with scroll ------ */
.sxm-bg { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: var(--sxm-sea-deep); }
.sxm-bg picture { display: contents; }
.sxm-bg .sxm-bg__img, body.sxm27 .sxm-bg__img {
	position: absolute; left: 50%; top: 0;
	width: max(100vw, 72vh); max-width: none; /* plate ratio 0.70 (sea → beach → a strip of sand) → always covers, with room to travel */
	height: auto;
	transform: translate3d(-50%, calc(var(--sxm-bg-p) * (100vh - 100%)), 0) scale(var(--sxm-bg-s));
	will-change: transform, opacity;
	opacity: 0; --sxm-bg-s: 1.06;
	transition: opacity 2.2s cubic-bezier(.4, 0, .2, 1), --sxm-bg-s 3.2s cubic-bezier(.2, .7, .2, 1);
}
.js .sxm-bg__img.is-loaded, html:not(.js) .sxm-bg__img { opacity: 1; --sxm-bg-s: 1; }
@property --sxm-bg-s { syntax: "<number>"; inherits: false; initial-value: 1; }
.sxm-bg__grain {
	position: absolute; inset: 0; opacity: .12; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- the conch: fixed alpha video, starts under the logo, drifts right ---- */
.sxm-conch {
	position: fixed; z-index: 1; pointer-events: none;
	left: 50%; top: var(--sxm-conch-top, 57vh);
	height: var(--sxm-conch-h, min(74vh, 60vw)); width: auto; aspect-ratio: 1295 / 1400;
	transform: translate3d(-50%, -50%, 0);
	filter: drop-shadow(0 40px 60px rgba(0, 20, 60, .45));
	transform-origin: 50% 50%;
	will-change: transform, opacity;
}
.sxm-conch__video, .sxm-conch__canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.sxm-conch.is-canvas .sxm-conch__video { opacity: 0; }
@media (max-width: 767px) {
	.sxm-conch { --sxm-conch-top: 55vh; --sxm-conch-h: min(58vh, 96vw); }
}
@media (min-aspect-ratio: 16/9) and (min-width: 1024px) {
	.sxm-conch { --sxm-conch-top: 56vh; --sxm-conch-h: 76vh; }
}

/* ---------- type styles ------------------------------------------------ */
.sxm-label {
	font-size: var(--sxm-fs-label); font-weight: 400; letter-spacing: .02em; line-height: 1.3;
	text-transform: lowercase; text-shadow: var(--sxm-shadow-text);
}
.sxm-label-row { display: flex; justify-content: space-between; gap: 16px; margin-bottom: clamp(18px, 2.4vw, 34px); }
.sxm-label-row a.sxm-label { text-decoration: underline; text-underline-offset: .22em; text-decoration-color: rgba(255, 249, 168, .5); }
.sxm-label-row a.sxm-label:hover { text-decoration-color: currentColor; }
.sxm-hand { font-family: var(--sxm-hand); font-weight: 400; letter-spacing: .12em; text-transform: uppercase; text-shadow: var(--sxm-shadow-text); }
.sxm-h1 { font-size: var(--sxm-fs-h1); font-weight: 900; line-height: .92; letter-spacing: -.005em; text-transform: uppercase; text-shadow: var(--sxm-shadow-text); text-wrap: balance; }
.sxm-h2 { font-size: var(--sxm-fs-h2); font-weight: 900; line-height: .95; text-transform: uppercase; text-shadow: var(--sxm-shadow-text); text-wrap: balance; }
.sxm-lede { font-size: var(--sxm-fs-lede); line-height: 1.4; max-width: 34em; text-shadow: var(--sxm-shadow-text); }
.sxm-prose { max-width: 38em; text-shadow: var(--sxm-shadow-text); }
.sxm-prose p + p { margin-top: .9em; }
.sxm-prose a { text-decoration: underline; text-underline-offset: .18em; }
.sxm-prose--clamp { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.sxm-amp { font-weight: 500; font-size: .78em; margin-inline: .06em; }
.sxm-x { font-weight: 500; font-size: .55em; margin-inline: .25em; text-transform: lowercase; vertical-align: .18em; }

/* ---------- buttons: pill + arrow disc ---------------------------------- */
.sxm-btn {
	display: inline-flex; align-items: center; gap: 12px;
	min-height: 44px; padding: 4px 4px 4px 20px; border-radius: 999px;
	font: 700 12px / 1 var(--sxm-font); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap;
	transition: transform .35s var(--sxm-ease), background-color .35s var(--sxm-ease), color .35s var(--sxm-ease), border-color .35s var(--sxm-ease), box-shadow .35s var(--sxm-ease);
}
.sxm-btn > span:not(.sxm-btn__arrow) { padding-right: 2px; }
.sxm-btn:hover { transform: translateY(-2px); }
.sxm-btn.is-magnetic { transition-property: background, color, border-color, box-shadow; }
.sxm-btn.is-magnetic:hover { transform: none; }
.sxm-btn__arrow {
	display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; flex: none;
	font-family: var(--sxm-font); font-size: 15px; font-weight: 700; line-height: 1;
	background: var(--sxm-sea-deep); color: var(--sxm-cream);
	transition: transform .45s var(--sxm-ease), background-color .35s var(--sxm-ease), color .35s var(--sxm-ease);
}
.sxm-btn:hover .sxm-btn__arrow { transform: rotate(45deg); }
.sxm-btn__icon { width: 16px; height: 16px; margin-right: -2px; }
body.sxm27 .sxm-btn--solid, .sxm-btn--solid { background: var(--sxm-cream-2); color: var(--sxm-ink); box-shadow: 0 14px 30px -14px rgba(0, 24, 64, .6); }
.sxm-btn--solid:hover { background: var(--sxm-cream-deep); }
body.sxm27 .sxm-btn--outline, .sxm-btn--outline { border: 1.5px solid rgba(255, 249, 168, .75); color: var(--sxm-cream); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.sxm-btn--outline .sxm-btn__arrow { background: var(--sxm-cream); color: var(--sxm-ink); }
body.sxm27 .sxm-btn--outline:hover, .sxm-btn--outline:hover { background: var(--sxm-cream); color: var(--sxm-ink); border-color: var(--sxm-cream); }
.sxm-btn--outline:hover .sxm-btn__arrow { background: var(--sxm-sea-deep); color: var(--sxm-cream); }
body.sxm27 .sxm-btn--sea, .sxm-btn--sea { background: var(--sxm-sea-deep); color: var(--sxm-cream); }
.sxm-btn--sea .sxm-btn__arrow { background: var(--sxm-cream); color: var(--sxm-sea-deep); }
.sxm-btn--sea:hover { background: var(--sxm-sea); }
.sxm-btn--sm { min-height: 38px; padding: 3px 3px 3px 16px; font-size: 11px; gap: 10px; }
.sxm-btn--sm .sxm-btn__arrow { width: 30px; height: 30px; font-size: 13px; }
.sxm-btn--sm .sxm-btn__icon { width: 14px; height: 14px; }

/* ---------- header bar ------------------------------------------------- */
.sxm-hdr { position: fixed; z-index: 40; top: var(--sxm-nav-top); left: 0; right: 0; padding-inline: max(12px, calc(var(--sxm-gutter) - 24px)); pointer-events: none; }
.sxm-bar {
	pointer-events: auto;
	position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center;
	height: var(--sxm-nav-h); margin-inline: auto; max-width: calc(var(--sxm-max) + 48px);
	padding: 0 24px 0 10px; border-radius: 999px;
	background: var(--sxm-bar); color: var(--sxm-ink);
	box-shadow: 0 18px 40px -18px rgba(0, 24, 64, .55);
	transition: transform .45s var(--sxm-ease), box-shadow .45s var(--sxm-ease);
}
.sxm-hdr.is-hidden .sxm-bar { transform: translateY(calc(-100% - var(--sxm-nav-top) - 40px)); }
.sxm-bar__left, .sxm-bar__right { display: flex; align-items: center; gap: 18px; min-width: 0; height: 100%; }
.sxm-bar__left { padding-right: 88px; }
.sxm-bar__right { justify-content: flex-end; padding-left: 88px; }
body.sxm27 .sxm-bar__ticket, .sxm-bar__ticket { min-height: 36px; padding: 3px 3px 3px 14px; gap: 10px; background: var(--sxm-sea-deep); color: var(--sxm-cream); box-shadow: none; font-size: 11.5px; }
.sxm-bar__ticket .sxm-btn__arrow { width: 28px; height: 28px; font-size: 13px; background: var(--sxm-cream); color: var(--sxm-sea-deep); }
body.sxm27 .sxm-bar__ticket:hover { background: var(--sxm-sea); color: var(--sxm-cream); transform: none; }
/* the logo: the SVG itself floats over the bar, a little taller than the bar, with a stroke outline + soft shadow */
.sxm-bar__logo {
	position: absolute; left: 50%; top: 50%; z-index: 2;
	width: var(--sxm-logo-w, 172px); transform: translate(-50%, -50%);
	display: block; line-height: 0;
	filter: drop-shadow(0 5px 9px rgba(0, 24, 64, .32));
	transition: transform .35s var(--sxm-ease);
}
.sxm-bar__logo:hover { transform: translate(-50%, -50%) scale(1.03); }
.sxm-logo-svg { width: 100%; height: auto; overflow: visible; }
.sxm-logo-svg path { fill: var(--sxm-sea-deep); stroke: var(--sxm-bar); stroke-width: 5px; stroke-linejoin: round; paint-order: stroke fill; }
.sxm-bar__logo:hover .sxm-logo-svg path { fill: var(--sxm-sea); }
.sxm-nav ul { display: flex; flex-wrap: nowrap; align-items: center; gap: 18px; }
.sxm-nav li { position: relative; display: flex; }
.sxm-nav a { display: block; padding: 4px 0; font: 700 11.5px / 1 var(--sxm-font); letter-spacing: .08em; text-transform: uppercase; color: var(--sxm-ink); white-space: nowrap; }
.sxm-nav a::after { content: ""; display: block; height: 1.5px; margin-top: 3px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--sxm-ease); }
.sxm-nav a:hover::after, .sxm-nav .current-menu-item > a::after { transform: scaleX(1); }
.sxm-nav .sub-menu, .sxm-nav .dropdown-pane { display: none; }
.sxm-burger { display: none; align-items: center; gap: 10px; height: 36px; padding: 0 10px 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--sxm-ink); font: 700 12px / 1 var(--sxm-font); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.sxm-burger__lines { display: inline-flex; flex-direction: column; gap: 5px; width: 20px; }
.sxm-burger__lines i { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform .35s var(--sxm-ease); }
.sxm-burger[aria-expanded="true"] .sxm-burger__lines i:first-child { transform: translateY(3.5px) rotate(45deg); }
.sxm-burger[aria-expanded="true"] .sxm-burger__lines i:last-child { transform: translateY(-3.5px) rotate(-45deg); }
@media (max-width: 1280px) { .sxm-nav ul { gap: 12px; } .sxm-nav a { letter-spacing: .05em; font-size: 11px; } .sxm-bar__left, .sxm-bar__right { gap: 12px; } }
@media (max-width: 1023px) {
	.sxm-nav { display: none; }
	.sxm-burger { display: inline-flex; }
	.sxm-bar { grid-template-columns: 1fr 1fr; --sxm-logo-w: 132px; }
	.sxm-bar__left { padding-right: 60px; } .sxm-bar__right { padding-left: 60px; }
	.sxm-bar__ticket span:not(.sxm-btn__arrow) { display: none; }
	.sxm-bar__ticket { padding-inline: 12px; gap: 6px; }
}

/* ---------- full-screen menu ----------------------------------------- */
.sxm-menu { position: fixed; inset: 0; z-index: 30; background: rgba(0, 48, 107, .92); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); overflow: auto; }
.sxm-menu[hidden] { display: none; }
.sxm-menu__inner { min-height: 100%; display: flex; flex-direction: column; justify-content: center; gap: 36px; padding: calc(var(--sxm-nav-top) + var(--sxm-nav-h) + 24px) var(--sxm-gutter) 40px; }
.sxm-menu__nav ul { display: flex; flex-direction: column; gap: 4px; }
.sxm-menu__nav a { display: inline-block; padding: 4px 0; font-size: clamp(30px, 8vw, 64px); font-weight: 900; line-height: 1; text-transform: uppercase; }
.sxm-menu__nav a:hover { color: var(--sxm-cream-deep); }
.sxm-menu__foot { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ---------- socials ---------------------------------------------------- */
.sxm-socials { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.sxm-socials a { font-size: var(--sxm-fs-label); letter-spacing: .02em; text-shadow: var(--sxm-shadow-text); }
.sxm-socials a::after { content: ""; display: block; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--sxm-ease); }
.sxm-socials a:hover::after { transform: scaleX(1); }
.sxm-socials--inline { align-items: center; }

/* ---------- icons ------------------------------------------------------ */
.sxm-icon { height: 1em; width: auto; fill: currentColor; }
.sxm-icons { display: flex; align-items: flex-end; gap: clamp(10px, 1.6vw, 24px); font-size: clamp(20px, 2.5vw, 36px); filter: drop-shadow(var(--sxm-shadow-text)); }
.sxm-icons .sxm-icon--seahorse { height: .95em; }
.sxm-icons .sxm-icon--bird { height: .92em; }
.sxm-icons .sxm-icon--conch { height: .8em; }

/* ---------- hero ------------------------------------------------------- */
.sxm-hero { position: relative; z-index: 2; min-height: 100svh; display: flex; }
.sxm-hero__grid {
	display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto; align-items: start;
	padding-top: calc(var(--sxm-nav-top) + var(--sxm-nav-h) + clamp(40px, 6vh, 76px));
	padding-bottom: clamp(24px, 4vh, 48px);
}
.sxm-hero__date { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; font-size: var(--sxm-fs-date); font-weight: 900; line-height: .82; text-transform: uppercase; letter-spacing: -.01em; text-shadow: var(--sxm-shadow-text); }
.sxm-date__days { display: inline-flex; align-items: center; gap: .08em; }
.sxm-date__dash { display: inline-block; width: 1.05em; height: .075em; background: currentColor; border-radius: 1px; margin-inline: .04em; }
.sxm-hero__island { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; text-align: right; }
.sxm-hero__location { font-size: clamp(11px, .95vw, 14px); }
.sxm-hero__logo {
	grid-column: 1 / -1; grid-row: 2; align-self: center; justify-self: center;
	position: relative; z-index: 2; width: clamp(220px, 30vw, 460px); margin: 0;
	filter: drop-shadow(0 10px 30px rgba(0, 24, 64, .35));
}
.sxm-hero__logo img, .sxm-hero__logo .sxm-logo-svg { width: 100%; height: auto; display: block; }
.sxm-hero__logo .sxm-logo-svg path { fill: var(--sxm-cream); stroke: none; paint-order: normal; }
.sxm-hero__logo .sxm-logo-svg { filter: drop-shadow(var(--sxm-shadow-text)); }
.sxm-hero__ten { position: absolute; right: 2%; bottom: -18%; font-size: clamp(16px, 2.1vw, 30px); letter-spacing: .16em; }
.sxm-hero__foot { grid-column: 1 / -1; grid-row: 3; align-self: end; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 249, 168, .28); }
.sxm-hero__foot .sxm-label, .sxm-hero__foot .sxm-socials a { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; opacity: 1; }
.sxm-hero__foot-col { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
.sxm-hero__foot-col--mid { justify-content: center; text-align: center; gap: 6px 10px; }
/* tagline + countdown sit together in a quiet chip */
.sxm-hero__chip { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 16px; border: 1px solid rgba(255, 249, 168, .35); border-radius: 999px; background: rgba(0, 32, 80, .22); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); white-space: nowrap; }
.sxm-hero__chip .sxm-countdown { display: inline-flex; align-items: center; gap: 8px; }
.sxm-hero__chip .sxm-countdown[hidden] { display: none; }
.sxm-hero__chip strong { font-weight: 900; font-variant-numeric: tabular-nums; margin-right: -3px; }
.sxm-hero__dot { width: 5px; height: 5px; border-radius: 50%; background: var(--sxm-cream); opacity: .9; animation: sxm-pulse 2.4s ease-in-out infinite; }
@keyframes sxm-pulse { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.5); opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .sxm-hero__dot { animation: none; } }
.sxm-hero__foot-col--right { justify-content: flex-end; text-align: right; gap: 6px 26px; }
.sxm-hero__foot .sxm-socials { gap: 6px 18px; }
.sxm-hero__foot .sxm-socials a::after { display: none; }
.sxm-hero__foot .sxm-socials a:hover { opacity: 1; text-decoration: underline; text-underline-offset: .3em; }
.sxm-hero__coords { font-variant-numeric: tabular-nums; }
.sxm-hero__scroll { display: inline-flex; gap: .5em; align-items: center; }
.sxm-arrow-down { display: inline-block; animation: sxm-bob 1.8s var(--sxm-ease) infinite; }
@keyframes sxm-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@media (max-width: 767px) {
	.sxm-hero__grid { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr auto; }
	.sxm-hero__island { grid-column: 1; grid-row: 2; align-items: flex-start; text-align: left; margin-top: 18px; }
	.sxm-hero__logo { grid-row: 3; width: min(64vw, 320px); }
	.sxm-hero__foot { grid-row: 4; align-self: end; grid-template-columns: 1fr; gap: 8px; }
	.sxm-hero__foot-col--mid, .sxm-hero__foot-col--right { justify-content: flex-start; text-align: left; }
	.sxm-hero__chip { padding: 6px 12px; gap: 8px; }
	.sxm-hero__foot-col--right { justify-content: space-between; }
	.sxm-hero__foot .sxm-label, .sxm-hero__foot .sxm-socials a { font-size: 10px; }
	.sxm-countdown { display: none; }
}

/* ---------- hero photo: one big print in a layer under the conch --------- */
.sxm-hero-photo {
	position: absolute; z-index: 1; margin: 0; pointer-events: none; will-change: transform;
	box-shadow: 0 40px 70px -30px rgba(0, 24, 64, .65);
}
.sxm-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sxm-hero-photo figcaption { position: absolute; left: 0; top: calc(100% + 10px); font-size: clamp(11px, .85vw, 14px); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }

/* A — square, bottom-left, tucked under the shell's left flank */
.sxm-hero-photo--a { left: calc(var(--sxm-gutter) + 3vw); top: 46vh; width: clamp(220px, 26vw, 420px); aspect-ratio: 1; border-radius: 12px; overflow: hidden; transform: rotate(-4deg); }
.sxm-hero-photo--a figcaption { left: 4px; }
/* B — square, right, tucked under the shell's right flank */
.sxm-hero-photo--b { right: calc(var(--sxm-gutter) + 2vw); top: 40vh; width: clamp(200px, 24vw, 380px); aspect-ratio: 1; border-radius: 12px; overflow: hidden; transform: rotate(3deg); }
.sxm-hero-photo--b figcaption { left: auto; right: 4px; }
/* C — portrait, large, straight, editorial */
.sxm-hero-photo--c { left: var(--sxm-gutter); top: 38vh; width: clamp(240px, 28vw, 460px); aspect-ratio: 4 / 5; border-radius: 16px; overflow: hidden; }
.sxm-hero-photo--c figcaption { top: auto; bottom: 14px; left: 16px; color: var(--sxm-cream); text-shadow: var(--sxm-shadow-text); }
.sxm-hero-photo--c::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 32, 80, .45), transparent 45%); }

@media (max-width: 767px) {
	.sxm-hero-photo--a { left: var(--sxm-gutter); top: 60vh; width: 44vw; }
	.sxm-hero-photo--b { right: var(--sxm-gutter); top: 40vh; width: 40vw; }
	.sxm-hero-photo--c { left: var(--sxm-gutter); top: 52vh; width: 46vw; }
}
.sxm-hero { overflow: clip; }

/* ---------- line-up ---------------------------------------------------- */
.sxm-lineup { padding-top: clamp(24px, 4vw, 60px); }
.sxm-names {
	display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .32em; row-gap: .02em;
	max-width: 74%;
	font-size: var(--sxm-fs-names); font-weight: 900; line-height: .96; letter-spacing: -.005em; text-transform: uppercase;
	text-shadow: var(--sxm-shadow-text);
}
.sxm-names__item { display: inline-flex; align-items: baseline; }
.sxm-names__item::after { content: "/"; margin-left: .32em; font-weight: 500; font-size: .58em; opacity: .9; }
.sxm-names__item:last-child::after { content: none; }
.sxm-names a { position: relative; display: inline-block; transition: color .25s; }
.sxm-names a::after { content: ""; position: absolute; left: 0; right: 0; bottom: .02em; height: .06em; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--sxm-ease); }
.sxm-names a:hover { color: #fff; }
.sxm-names a:hover::after { transform: scaleX(1); }
.sxm-names sup { font-size: .4em; font-weight: 500; vertical-align: .9em; margin-left: .1em; line-height: 0; }
.sxm-lineup__foot { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: clamp(28px, 4vw, 56px); }
.sxm-tba { opacity: .95; }
@media (max-width: 767px) { .sxm-names { max-width: 100%; } }
@media (min-width: 1500px) { .sxm-names { max-width: 66%; } }

/* ---------- spotlight / artist ------------------------------------------ */
.sxm-spotlight__grid, .sxm-artist__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .9fr); gap: clamp(28px, 5vw, 90px); align-items: center; }
.sxm-spotlight__text > * + *, .sxm-artist__text > * + * { margin-top: clamp(16px, 2vw, 28px); }
.sxm-spotlight__text .sxm-label-row, .sxm-artist__text .sxm-label-row { margin-bottom: 0; }
.sxm-spotlight__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.sxm-spotlight__card {
	position: relative; aspect-ratio: 4 / 5; border-radius: var(--sxm-radius); overflow: hidden;
	background: var(--sxm-sea-mid); box-shadow: var(--sxm-shadow-card);
	transform: rotate(-1.5deg);
}
.sxm-spotlight__card img { width: 100%; height: 100%; object-fit: cover; }
.sxm-spotlight__card figcaption { position: absolute; inset: 0; padding: clamp(14px, 2vw, 26px); pointer-events: none; }
.sxm-card__date { position: absolute; left: clamp(14px, 2vw, 26px); top: clamp(14px, 2vw, 26px); font-size: clamp(18px, 2vw, 30px); font-weight: 900; line-height: .85; text-transform: uppercase; text-shadow: var(--sxm-shadow-text); }
.sxm-card__logo { position: absolute; right: clamp(14px, 2vw, 26px); top: clamp(14px, 2vw, 26px); width: clamp(64px, 8vw, 110px); filter: drop-shadow(var(--sxm-shadow-text)); }
.sxm-card__label { position: absolute; left: clamp(14px, 2vw, 26px); bottom: clamp(14px, 2vw, 26px); }
.sxm-embed { max-width: 38em; }
.sxm-embed iframe { width: 100%; border: 0; border-radius: 12px; }
@media (max-width: 900px) {
	.sxm-spotlight__grid, .sxm-artist__grid { grid-template-columns: 1fr; }
	.sxm-spotlight__card { order: -1; max-width: 420px; }
	.sxm-deck { order: -1; }
}

/* ---------- about + stats --------------------------------------------- */
.sxm-about__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: clamp(24px, 4vw, 80px); align-items: end; }
.sxm-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: clamp(40px, 6vw, 90px); }
.sxm-stat { padding-top: 18px; border-top: 1px solid rgba(255, 249, 168, .45); }
.sxm-stat .sxm-icon { height: clamp(28px, 2.6vw, 40px); margin-bottom: 14px; filter: drop-shadow(var(--sxm-shadow-text)); }
.sxm-stat__value { display: block; font-size: var(--sxm-fs-stat); font-weight: 900; line-height: .9; letter-spacing: -.01em; text-shadow: var(--sxm-shadow-text); margin-bottom: 10px; }
@media (max-width: 900px) { .sxm-about__grid { grid-template-columns: 1fr; } .sxm-stats { grid-template-columns: repeat(2, 1fr); } }

/* ---------- venues ----------------------------------------------------- */
.sxm-venues__head { display: flex; justify-content: space-between; align-items: end; gap: 20px; flex-wrap: wrap; margin-bottom: clamp(22px, 3vw, 40px); }
.sxm-venues__track {
	display: flex; gap: clamp(14px, 1.6vw, 24px);
	padding-inline: max(var(--sxm-gutter), calc((100vw - var(--sxm-max)) / 2));
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--sxm-gutter);
	scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.sxm-venues__track::-webkit-scrollbar { display: none; }
.sxm-venue {
	position: relative; flex: 0 0 clamp(240px, 26vw, 380px); aspect-ratio: 4 / 5; scroll-snap-align: start;
	border-radius: var(--sxm-radius); overflow: hidden; background: var(--sxm-sea-mid); box-shadow: var(--sxm-shadow-card);
}
.sxm-venue img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--sxm-ease); }
.sxm-venue:hover img { transform: scale(1.04); }
.sxm-venue::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 32, 80, .75), rgba(0, 32, 80, 0) 55%); }
.sxm-venue__text { position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 1; display: flex; flex-direction: column; gap: 4px; }
.sxm-venue__text strong { font-size: clamp(20px, 1.8vw, 28px); font-weight: 900; line-height: 1; text-transform: uppercase; }

/* ---------- tickets: the boarding pass --------------------------------- */
.sxm-tickets__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.sxm-tickets__text > * + * { margin-top: clamp(14px, 1.8vw, 24px); }
.sxm-tickets__links { display: flex; flex-wrap: wrap; gap: 12px; }
.sxm-pass {
	position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 34%);
	max-width: 640px; margin-inline: auto; color: var(--sxm-ink);
	background: var(--sxm-bar); border-radius: 16px; overflow: hidden;
	box-shadow: 0 40px 70px -30px rgba(0, 24, 64, .6);
	transform: rotate(-2.5deg); transition: transform .5s var(--sxm-ease), box-shadow .5s var(--sxm-ease);
	will-change: transform;
}
.sxm-pass:hover { transform: rotate(-1deg) translateY(-6px); box-shadow: 0 50px 80px -30px rgba(0, 24, 64, .7); }
.sxm-pass::before { /* paper grain */ content: ""; position: absolute; inset: 0; opacity: .08; pointer-events: none; mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.sxm-pass__main { padding: clamp(16px, 2.2vw, 26px) clamp(18px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 12px; }
.sxm-pass__head { display: flex; justify-content: space-between; gap: 12px; }
.sxm-pass__kicker { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sxm-sea); }
.sxm-pass__route { display: flex; align-items: center; gap: 14px; margin-top: 4px; }
.sxm-pass__city { display: inline-flex; flex-direction: column; font-size: clamp(26px, 2.6vw, 40px); font-weight: 900; line-height: .9; letter-spacing: -.01em; color: var(--sxm-sea-deep); }
.sxm-pass__city small { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sxm-sea); margin-bottom: 4px; }
.sxm-pass__city em { font-family: var(--sxm-hand); font-style: normal; font-weight: 400; font-size: .5em; letter-spacing: .1em; color: var(--sxm-sea); margin-top: 2px; }
.sxm-pass__city--to { margin-left: auto; text-align: right; }
.sxm-pass__plane { flex: 1; position: relative; height: 1px; background: repeating-linear-gradient(to right, var(--sxm-sea) 0 6px, transparent 6px 12px); }
.sxm-pass__plane .sxm-icon { position: absolute; left: 50%; top: 50%; height: 22px; transform: translate(-50%, -50%) scaleX(-1); color: var(--sxm-sea-deep); background: var(--sxm-bar); padding-inline: 6px; box-sizing: content-box; }
.sxm-pass__title { margin-top: 6px; font-size: clamp(30px, 3.4vw, 52px); font-weight: 900; line-height: .86; letter-spacing: -.02em; text-transform: uppercase; color: var(--sxm-sea-deep); }
.sxm-pass__meta { display: grid; grid-template-columns: repeat(4, auto); gap: 10px 18px; margin-top: 4px; }
.sxm-pass__meta dt { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sxm-sea); }
.sxm-pass__meta dd { font-size: 13px; font-weight: 700; text-transform: uppercase; color: var(--sxm-sea-deep); white-space: nowrap; }
.sxm-pass__stub { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 12px; padding: clamp(16px, 2.2vw, 26px) 16px; border-left: 2px dashed rgba(0, 80, 151, .35); background: rgba(255, 233, 122, .55); }
.sxm-pass__stub::before, .sxm-pass__stub::after { content: ""; position: absolute; left: -11px; width: 20px; height: 20px; border-radius: 50%; background: var(--sxm-sea-deep); }
.sxm-pass__stub::before { top: -10px; } .sxm-pass__stub::after { bottom: -10px; }
.sxm-pass__barcode { width: 100%; height: 44px; background: repeating-linear-gradient(to right, var(--sxm-sea-deep) 0 2px, transparent 2px 4px, var(--sxm-sea-deep) 4px 7px, transparent 7px 9px, var(--sxm-sea-deep) 9px 10px, transparent 10px 14px); opacity: .85; }
.sxm-pass__code { font-size: 11px; font-weight: 700; letter-spacing: .18em; color: var(--sxm-sea); font-variant-numeric: tabular-nums; }
.sxm-pass__cta { min-height: 40px; padding: 3px 3px 3px 16px; font-size: 11px; gap: 10px; }
.sxm-pass__cta .sxm-btn__arrow { width: 32px; height: 32px; }
.sxm-pass:hover .sxm-pass__cta { background: var(--sxm-sea-deep); }
@media (max-width: 900px) {
	.sxm-tickets__grid { grid-template-columns: 1fr; }
	.sxm-pass { transform: rotate(-1.5deg); }
	.sxm-pass__meta { grid-template-columns: repeat(2, auto); }
}
@media (max-width: 480px) {
	.sxm-pass { grid-template-columns: 1fr; }
	.sxm-pass__stub { border-left: 0; border-top: 2px dashed rgba(0, 80, 151, .35); }
	.sxm-pass__stub::before, .sxm-pass__stub::after { top: -10px; bottom: auto; }
	.sxm-pass__stub::before { left: -10px; } .sxm-pass__stub::after { left: auto; right: -10px; }
}

/* ---------- faq -------------------------------------------------------- */
.sxm-faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: clamp(24px, 4vw, 80px); }
.sxm-faq__head > * + * { margin-top: 18px; }
.sxm-faq__item { border-top: 1px solid rgba(255, 249, 168, .45); }
.sxm-faq__item:last-child { border-bottom: 1px solid rgba(255, 249, 168, .45); }
.sxm-faq__item summary { position: relative; list-style: none; cursor: pointer; padding: 18px 44px 18px 0; font-weight: 700; font-size: var(--sxm-fs-lede); line-height: 1.25; text-shadow: var(--sxm-shadow-text); }
.sxm-faq__item summary::-webkit-details-marker { display: none; }
.sxm-faq__plus { position: absolute; right: 4px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); }
.sxm-faq__plus::before, .sxm-faq__plus::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: currentColor; transition: transform .3s var(--sxm-ease); }
.sxm-faq__plus::after { transform: rotate(90deg); }
.sxm-faq__item[open] .sxm-faq__plus::after { transform: rotate(0); }
.sxm-faq__item .sxm-prose { padding: 0 0 22px; }
@media (max-width: 900px) { .sxm-faq__grid { grid-template-columns: 1fr; } }

/* ---------- the shore: waitlist + footer sit on sand ------------------ */
.sxm-shore {
	position: relative; z-index: 2; color: var(--sxm-shore-ink);
	background: var(--sxm-sand) url("../img/sand-texture.webp") center top / 100% auto repeat-y;
	margin-top: clamp(40px, 6vh, 90px);
}
.sxm-shore::before { /* soft edge into the plate above */
	content: ""; position: absolute; left: 0; right: 0; top: -1px; height: clamp(120px, 18vh, 260px); transform: translateY(-100%);
	background: linear-gradient(to bottom, rgba(213, 201, 232, 0), var(--sxm-sand));
	pointer-events: none;
}
/* The conch sails in front of the shore; the shore keeps its right side clear so nothing hides under it. */
body.sxm-conch-front .sxm-conch { z-index: 3; }
@media (min-width: 900px) { .sxm-shore .sxm-wrap { padding-right: min(14vw, 260px); } }
.sxm-shore .sxm-label, .sxm-shore .sxm-h2, .sxm-shore .sxm-lede, .sxm-shore .sxm-socials a, .sxm-shore .sxm-hand { text-shadow: none; }
body.sxm27 .sxm-shore .sxm-btn--outline { border-color: currentColor; color: var(--sxm-shore-ink); backdrop-filter: none; }
.sxm-shore .sxm-btn--outline:hover { background: var(--sxm-shore-ink); color: var(--sxm-cream); border-color: var(--sxm-shore-ink); }
.sxm-shore .sxm-btn--outline .sxm-btn__arrow { background: var(--sxm-shore-ink); color: var(--sxm-cream); }
.sxm-shore .sxm-btn--outline:hover .sxm-btn__arrow { background: var(--sxm-cream); color: var(--sxm-shore-ink); }

/* ---------- waitlist --------------------------------------------------- */
.sxm-waitlist { padding-block: clamp(28px, 4vw, 52px) clamp(20px, 3vw, 40px); }
.sxm-waitlist__inner > * + * { margin-top: 18px; }
.sxm-waitlist__inner .sxm-label-row { margin-bottom: 0; }
.sxm-form { max-width: 560px; }
.sxm-field { display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 999px; background: var(--sxm-bar); box-shadow: 0 18px 40px -22px rgba(0, 24, 64, .45); }
.sxm-field input { flex: 1; min-width: 0; height: 44px; padding: 0 18px; border: 0; background: transparent; color: var(--sxm-ink); font: 400 16px var(--sxm-font); outline: none; }
.sxm-field input::placeholder { color: rgba(0, 48, 107, .5); }
.sxm-field .sxm-btn { min-height: 44px; background: var(--sxm-shore-ink); color: var(--sxm-cream); }
.sxm-field .sxm-btn .sxm-btn__arrow { background: var(--sxm-cream); color: var(--sxm-shore-ink); }
.sxm-field .sxm-btn:hover { background: var(--sxm-shore-accent); transform: none; }
.sxm-field:focus-within { outline: 2px solid var(--sxm-shore-ink); outline-offset: 3px; }

/* ---------- footer ----------------------------------------------------- */
.sxm-footer { position: relative; padding: 0 0 calc(20px + env(safe-area-inset-bottom, 0px)); }
.sxm-footer__hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px; padding-top: clamp(8px, 1.5vw, 24px); }
.sxm-footer__title { font-size: clamp(34px, 5.4vw, 92px); font-weight: 900; line-height: .84; letter-spacing: -.02em; text-transform: uppercase; color: var(--sxm-shore-ink); text-wrap: balance; }
.sxm-footer__title em { font-style: normal; color: var(--sxm-shore-accent); }
.sxm-footer__logo { position: relative; width: clamp(110px, 12vw, 180px); justify-self: end; }
.sxm-footer__ten { position: absolute; right: -4px; bottom: -20px; font-size: 14px; letter-spacing: .16em; }
.sxm-footer__top { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 24px; align-items: end; margin-top: clamp(22px, 3.2vw, 44px); padding-top: 18px; border-top: 1.5px solid var(--sxm-shore-line); }
.sxm-footer__tag { font-size: var(--sxm-fs-label); letter-spacing: .02em; line-height: 1.35; text-transform: uppercase; font-weight: 700; }
.sxm-footer__tag--right { text-align: right; text-transform: none; font-weight: 400; }
.sxm-footer__text { font-size: var(--sxm-fs-label); line-height: 1.45; max-width: 34em; }
.sxm-footer__col--right { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.sxm-icons--footer { font-size: 26px; filter: none; }
.sxm-footer__nav { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: clamp(20px, 2.8vw, 36px); padding-top: 16px; border-top: 1.5px solid var(--sxm-shore-line); }
.sxm-footer__links { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.sxm-footer__links a { font-size: var(--sxm-fs-label); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.sxm-footer__links a:hover, .sxm-footer__bottom a:hover { text-decoration: underline; text-underline-offset: .2em; }
.sxm-footer .sxm-socials a { font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.sxm-footer__partners { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 28px; margin-top: 22px; padding: 0; }
.sxm-partner img { height: 36px; width: auto; }
.sxm-partner--big img { height: 46px; }
.sxm-footer__bottom { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; margin-top: 18px; font-size: 13px; color: var(--sxm-shore-ink); opacity: .85; }
@media (max-width: 900px) {
	.sxm-footer__hero { grid-template-columns: 1fr; }
	.sxm-footer__logo { justify-self: start; }
	.sxm-footer__top { grid-template-columns: 1fr; }
	.sxm-footer__col--right { align-items: flex-start; }
	.sxm-footer__tag--right { text-align: left; }
}

/* ---------- floating ticket button (mobile) ---------------------------- */
.sxm-float-ticket { position: fixed; z-index: 35; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); display: none; transition: opacity .3s, visibility .3s; }
.sxm-float-ticket.is-off, .sxm-float-ticket.is-hero, body.sxm-menu-open .sxm-float-ticket { opacity: 0; visibility: hidden; }
@media (max-width: 767px) { .sxm-float-ticket { display: inline-flex; } .sxm-float-ticket:hover { transform: translateX(-50%) translateY(-2px); } }

/* ---------- motion ----------------------------------------------------- */
/* Without GSAP: CSS transitions driven by .is-in (IntersectionObserver). With GSAP (.is-gsap): inline tweens. */
.js:not(.is-gsap) .sxm-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--sxm-ease), transform .9s var(--sxm-ease); }
.js:not(.is-gsap) .sxm-reveal.is-in { opacity: 1; transform: none; }
.js:not(.is-gsap) .sxm-names__item { opacity: 0; transform: translateY(.3em); transition: opacity .7s var(--sxm-ease), transform .7s var(--sxm-ease); transition-delay: calc(var(--i, 0) * 28ms); }
.js:not(.is-gsap) .sxm-names.is-in .sxm-names__item { opacity: 1; transform: none; }
.is-gsap .sxm-names__item { will-change: opacity, transform, filter; }
@media (prefers-reduced-motion: reduce) {
	.js .sxm-reveal, .js .sxm-names__item { opacity: 1 !important; transform: none !important; transition: none !important; }
	.sxm-arrow-down { animation: none; }
	.sxm-bg__img { transform: translate3d(-50%, 0, 0); }
}

/* ---------- generic pages (page.php, single, archives, 404) ------------ */
.sxm-page { min-height: 70svh; padding-top: calc(var(--sxm-nav-top) + var(--sxm-nav-h) + clamp(40px, 6vh, 90px)); }
@media (min-width: 900px) { body.sxm27:not(.home) .sxm-section > .sxm-wrap, body.sxm27:not(.home) .sxm-page > .sxm-wrap { padding-right: min(18vw, 340px); } }
.sxm-page .sxm-wrap > * + * { margin-top: clamp(18px, 2.4vw, 32px); }
.sxm-page .sxm-label-row { margin-bottom: 0; }
.sxm-page__hero { border-radius: var(--sxm-radius); overflow: hidden; box-shadow: var(--sxm-shadow-card); max-width: 1100px; }
.sxm-page__hero img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.sxm-page__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.sxm-prose--page { max-width: 44em; font-size: var(--sxm-fs-lede); line-height: 1.5; }
.sxm-prose--page h2, .sxm-prose--page h3 { font-weight: 900; text-transform: uppercase; line-height: 1; margin: 1.6em 0 .5em; }
.sxm-prose--page h2 { font-size: var(--sxm-fs-h2); } .sxm-prose--page h3 { font-size: clamp(20px, 2vw, 30px); }
.sxm-prose--page ul, .sxm-prose--page ol { padding-left: 1.2em; margin: .8em 0; list-style: disc; }
.sxm-prose--page img { border-radius: 12px; }
.sxm-prose--page blockquote { margin: 1.4em 0; padding-left: 1em; border-left: 2px solid rgba(255, 249, 168, .5); font-weight: 500; }
.sxm-list li a { display: flex; gap: 20px; align-items: baseline; padding: 14px 0; border-top: 1px solid rgba(255, 249, 168, .35); }
.sxm-list li:last-child a { border-bottom: 1px solid rgba(255, 249, 168, .35); }
.sxm-list strong { font-size: var(--sxm-fs-lede); font-weight: 700; }
.sxm-404 .sxm-h1 { font-size: clamp(48px, 9vw, 150px); }

/* ---------- mailing list modal ----------------------------------------- */
.sxm-modal { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 20px; }
.sxm-modal[hidden] { display: none; }
.sxm-modal__backdrop { position: absolute; inset: 0; background: rgba(0, 32, 80, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.sxm-modal__card {
	position: relative; width: min(100%, 520px); padding: clamp(28px, 4vw, 44px) clamp(22px, 3.4vw, 40px) clamp(22px, 3vw, 32px);
	border-radius: 24px; background: var(--sxm-bar); color: var(--sxm-ink); text-align: center;
	box-shadow: 0 60px 100px -40px rgba(0, 24, 64, .7);
	animation: sxm-modal-in .6s var(--sxm-ease) both;
}
@keyframes sxm-modal-in { from { opacity: 0; transform: translateY(24px) scale(.97); } }
.sxm-modal__close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(0, 69, 140, .08); color: var(--sxm-sea-deep); font: 400 22px / 1 var(--sxm-font); cursor: pointer; transition: background .3s; }
.sxm-modal__close:hover { background: rgba(0, 69, 140, .18); }
.sxm-modal__badge { display: block; width: 120px; margin: 0 auto 14px; }
.sxm-modal__badge .sxm-logo-svg path { fill: var(--sxm-sea-deep); stroke: none; }
.sxm-modal__kicker { display: block; color: var(--sxm-sea); text-shadow: none; }
.sxm-modal__title { margin-top: 8px; font-size: clamp(30px, 4vw, 46px); font-weight: 900; line-height: .95; text-transform: uppercase; color: var(--sxm-sea-deep); }
.sxm-modal__text { margin: 12px auto 20px; max-width: 32em; color: var(--sxm-sea-deep); }
.sxm-modal .sxm-form { max-width: 100%; }
.sxm-modal .sxm-field { background: #fff; box-shadow: inset 0 0 0 1.5px rgba(0, 69, 140, .25); }
.sxm-modal .sxm-field .sxm-btn { background: var(--sxm-sea-deep); color: var(--sxm-cream); }
.sxm-modal .sxm-field .sxm-btn .sxm-btn__arrow { background: var(--sxm-cream); color: var(--sxm-sea-deep); }
.sxm-modal__foot { display: block; margin-top: 18px; font-size: 12px; color: var(--sxm-sea); text-shadow: none; }
body.sxm-modal-open { overflow: hidden; }

/* ---------- artist page ------------------------------------------------ */
.sxm-artist { position: relative; z-index: 2; padding: calc(var(--sxm-nav-top) + var(--sxm-nav-h) + clamp(32px, 5vh, 64px)) 0 clamp(56px, 8vw, 120px); }
.sxm-artist .sxm-label-row { margin-bottom: clamp(20px, 3vw, 40px); }
.sxm-artist__grid { display: grid; grid-template-columns: minmax(260px, 38%) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
/* the conch lives at the right edge on subpages: keep the text column clear of it */
@media (min-width: 1024px) { .sxm-artist .sxm-artist__grid { padding-right: min(13vw, 240px); } }
.sxm-artist__card { position: relative; aspect-ratio: 4 / 5; border-radius: var(--sxm-radius); overflow: hidden; background: var(--sxm-sea-mid); box-shadow: var(--sxm-shadow-card); }
.sxm-artist__card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.sxm-artist__card-empty { display: grid; place-items: center; height: 100%; font-size: 120px; color: rgba(255, 249, 168, .5); }
.sxm-artist__card figcaption { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(0, 32, 80, .35), transparent 30%, transparent 70%, rgba(0, 32, 80, .45)); }
.sxm-artist__text > * + * { margin-top: clamp(16px, 2vw, 26px); }
.sxm-artist__name { font-size: clamp(38px, 6.4vw, 108px); }
.sxm-artist__name sup { font-size: .32em; font-weight: 500; vertical-align: 1em; margin-left: .15em; }
.sxm-socials--pills { gap: 8px; }
.sxm-socials--pills a { display: inline-block; padding: 8px 14px; border: 1.5px solid rgba(255, 249, 168, .6); border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-shadow: none; transition: background .3s, color .3s; }
.sxm-socials--pills a::after { display: none; }
.sxm-socials--pills a:hover { background: var(--sxm-cream); color: var(--sxm-ink); }
.sxm-artist__listen > * + * { margin-top: 10px; }
.sxm-embed { max-width: 720px; border-radius: 14px; overflow: hidden; }
.sxm-embed iframe { display: block; width: 100%; border: 0; }
.sxm-artist__nav { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; margin-top: clamp(40px, 6vw, 90px); padding-top: 22px; border-top: 1px solid rgba(255, 249, 168, .35); }
.sxm-artist__nav a { display: flex; flex-direction: column; gap: 4px; }
.sxm-artist__nav strong { font-size: clamp(18px, 1.6vw, 26px); font-weight: 900; text-transform: uppercase; line-height: 1; }
.sxm-artist__nav-next { text-align: right; align-items: flex-end; }
.sxm-artist__nav-all { padding: 10px 16px; border: 1.5px solid rgba(255, 249, 168, .5); border-radius: 999px; }
@media (max-width: 900px) {
	.sxm-artist__grid { grid-template-columns: 1fr; }
	.sxm-artist__card { max-width: 440px; }
	.sxm-artist__nav { grid-template-columns: 1fr 1fr; } .sxm-artist__nav-all { grid-column: 1 / -1; justify-self: center; order: 3; }
}

/* =========================================================================
   Subpage system
   ====================================================================== */
.sxm-h3 { font-size: clamp(20px, 2vw, 30px); font-weight: 900; line-height: 1; text-transform: uppercase; text-shadow: var(--sxm-shadow-text); }

/* page hero */
.sxm-phero { position: relative; z-index: 2; padding: calc(var(--sxm-nav-top) + var(--sxm-nav-h) + clamp(40px, 7vh, 96px)) 0 clamp(16px, 3vw, 40px); }
.sxm-phero .sxm-label-row { margin-bottom: clamp(18px, 2.4vw, 32px); }
.sxm-phero__title { font-size: clamp(44px, 8vw, 132px); max-width: 12ch; }
.sxm-phero .sxm-lede { margin-top: clamp(16px, 2vw, 28px); }
.sxm-phero__photo { margin-top: clamp(28px, 4vw, 56px); border-radius: var(--sxm-radius); overflow: hidden; box-shadow: var(--sxm-shadow-card); aspect-ratio: 16 / 8; background: var(--sxm-sea-mid); }
.sxm-phero__photo img { width: 100%; height: 115%; object-fit: cover; margin-top: -7.5%; will-change: transform; }
@media (max-width: 767px) { .sxm-phero__photo { aspect-ratio: 4 / 3; } }

/* two-column split: heading left, text right */
.sxm-split__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(24px, 4vw, 80px); align-items: start; }
.sxm-split__grid > .sxm-prose { max-width: 40em; }
.sxm-split__grid .sxm-lede p + p { margin-top: .8em; }
@media (max-width: 900px) { .sxm-split__grid { grid-template-columns: 1fr; } }

/* photo row (edge-to-edge horizontal scroll) */
.sxm-section--row { padding-top: clamp(40px, 6vw, 90px); }
.sxm-row {
	display: flex; gap: clamp(12px, 1.4vw, 22px); margin-top: clamp(24px, 3.5vw, 56px);
	padding-inline: max(var(--sxm-gutter), calc((100vw - var(--sxm-max)) / 2));
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--sxm-gutter); scrollbar-width: none; cursor: grab;
}
.sxm-row::-webkit-scrollbar { display: none; }
.sxm-row:active { cursor: grabbing; }
.sxm-row__item { flex: 0 0 auto; height: clamp(220px, 34vw, 480px); aspect-ratio: var(--ratio, 4/5); scroll-snap-align: start; border-radius: 14px; overflow: hidden; background: var(--sxm-sea-mid); box-shadow: var(--sxm-shadow-card); position: relative; }
.sxm-row__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--sxm-ease); }
.sxm-row__item:hover img { transform: scale(1.04); }
.sxm-row__item figcaption { position: absolute; left: 14px; bottom: 12px; }
.sxm-row::after { content: ""; flex: 0 0 var(--sxm-gutter); }

/* feature block (venue / package) */
.sxm-feature { padding-block: clamp(40px, 6vw, 100px); }
.sxm-feature__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 4vw, 72px); align-items: center; }
.sxm-feature.is-flip .sxm-feature__grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.sxm-feature.is-flip .sxm-feature__photo { order: 2; }
.sxm-feature__photo { position: relative; aspect-ratio: 4 / 3; border-radius: var(--sxm-radius); overflow: hidden; background: var(--sxm-sea-mid); box-shadow: var(--sxm-shadow-card); }
.sxm-feature__photo img { width: 100%; height: 115%; object-fit: cover; margin-top: -7.5%; will-change: transform; }
.sxm-feature__num { position: absolute; left: 16px; top: 14px; font-size: 12px; font-weight: 700; letter-spacing: .16em; padding: 6px 10px; border-radius: 999px; background: rgba(0, 32, 80, .45); backdrop-filter: blur(6px); }
.sxm-feature__text > * + * { margin-top: clamp(12px, 1.6vw, 22px); }
.sxm-feature__text .sxm-h2 { font-size: clamp(32px, 4.4vw, 72px); }
.sxm-feature .sxm-row { margin-top: clamp(28px, 4vw, 56px); }
@media (max-width: 900px) { .sxm-feature__grid, .sxm-feature.is-flip .sxm-feature__grid { grid-template-columns: 1fr; } .sxm-feature.is-flip .sxm-feature__photo { order: 0; } }

/* pass cards (tickets page) */
.sxm-passes { padding-top: clamp(24px, 3vw, 48px); }
.sxm-passes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 26px); align-items: stretch; }
.sxm-passcard { position: relative; display: flex; flex-direction: column; gap: 12px; padding: clamp(20px, 2.4vw, 32px); border-radius: var(--sxm-radius); background: var(--sxm-bar); color: var(--sxm-ink); box-shadow: var(--sxm-shadow-card); }
.sxm-passcard.is-featured { background: var(--sxm-cream-deep); transform: translateY(-8px); }
.sxm-passcard__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.sxm-passcard__flag { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; background: var(--sxm-sea-deep); color: var(--sxm-cream); }
.sxm-passcard__title { font-size: clamp(32px, 3.2vw, 52px); font-weight: 900; line-height: .9; letter-spacing: -.02em; text-transform: uppercase; color: var(--sxm-sea-deep); }
.sxm-passcard__price { font-size: clamp(22px, 2vw, 30px); font-weight: 900; color: var(--sxm-sea); }
.sxm-passcard__desc { color: var(--sxm-sea-deep); font-size: var(--sxm-fs-body); line-height: 1.5; flex: 1; }
.sxm-passcard .sxm-btn { align-self: flex-start; }
.sxm-passcard .sxm-btn.is-disabled { opacity: .55; pointer-events: none; }
.sxm-passcard__sub { font-size: 11.5px; line-height: 1.45; letter-spacing: .02em; color: var(--sxm-sea); text-transform: uppercase; }
@media (max-width: 900px) { .sxm-passes__grid { grid-template-columns: 1fr; } .sxm-passcard.is-featured { transform: none; } }

/* info grid (payment plan, groups, resident) */
.sxm-info__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); }
.sxm-info__item { padding-top: 18px; border-top: 1px solid rgba(255, 249, 168, .45); }
.sxm-info__item > * + * { margin-top: 12px; }
.sxm-info__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.sxm-toggle { display: inline-flex; border: 1.5px solid rgba(255, 249, 168, .6); border-radius: 999px; padding: 2px; }
.sxm-toggle button { border: 0; background: transparent; color: var(--sxm-cream); font: 700 11px / 1 var(--sxm-font); letter-spacing: .12em; padding: 6px 10px; border-radius: 999px; cursor: pointer; }
.sxm-toggle button.is-active { background: var(--sxm-cream); color: var(--sxm-ink); }
@media (max-width: 900px) { .sxm-info__grid { grid-template-columns: 1fr; } }

/* cream cards */
.sxm-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 26px); margin-top: clamp(20px, 3vw, 40px); }
.sxm-card { display: flex; flex-direction: column; gap: 12px; padding: clamp(20px, 2.4vw, 32px); border-radius: var(--sxm-radius); background: rgba(255, 249, 168, .12); border: 1px solid rgba(255, 249, 168, .35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.sxm-card__title { font-size: clamp(26px, 2.6vw, 40px); font-weight: 900; line-height: .95; text-transform: uppercase; }
.sxm-card p { text-shadow: var(--sxm-shadow-text); }
.sxm-card__note { font-size: 11.5px; letter-spacing: .02em; text-transform: uppercase; opacity: .9; }
.sxm-card .sxm-btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 767px) { .sxm-cards { grid-template-columns: 1fr; } }

/* faq page */
.sxm-faqpage__grid { display: grid; grid-template-columns: minmax(200px, .55fr) minmax(0, 1.45fr); gap: clamp(24px, 4vw, 80px); align-items: start; }
.sxm-chips { position: sticky; top: calc(var(--sxm-nav-top) + var(--sxm-nav-h) + 24px); display: flex; flex-direction: column; gap: 8px; }
.sxm-chip { display: inline-block; padding: 10px 16px; border: 1.5px solid rgba(255, 249, 168, .5); border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; width: fit-content; transition: background .3s, color .3s; }
.sxm-chip:hover, .sxm-chip.is-active { background: var(--sxm-cream); color: var(--sxm-ink); }
.sxm-faqpage__group + .sxm-faqpage__group { margin-top: clamp(32px, 4vw, 56px); }
.sxm-faqpage__group .sxm-h3 { margin-bottom: 8px; }
@media (max-width: 900px) { .sxm-faqpage__grid { grid-template-columns: 1fr; } .sxm-chips { position: static; flex-direction: row; flex-wrap: wrap; } }

/* app card */
.sxm-appcard { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(24px, 3vw, 48px); padding: clamp(24px, 3.4vw, 52px); border-radius: var(--sxm-radius); background: var(--sxm-bar); color: var(--sxm-ink); box-shadow: var(--sxm-shadow-card); }
.sxm-appcard__title { margin-top: 8px; font-size: clamp(30px, 3.6vw, 56px); font-weight: 900; line-height: .9; text-transform: uppercase; color: var(--sxm-sea-deep); }
.sxm-appcard__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: clamp(20px, 2.5vw, 36px); }
.sxm-appcard__h { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sxm-sea); margin-bottom: 8px; }
.sxm-appcard__text { color: var(--sxm-sea-deep); font-size: 15px; line-height: 1.5; }
.sxm-appcard__text p + p, .sxm-appcard__text ul { margin-top: .6em; } .sxm-appcard__text ul { padding-left: 1.1em; list-style: disc; }
.sxm-appcard__side { display: flex; flex-direction: column; gap: 10px; justify-content: center; }
@media (max-width: 900px) { .sxm-appcard, .sxm-appcard__cols { grid-template-columns: 1fr; } .sxm-appcard__side { flex-direction: row; flex-wrap: wrap; } }

/* steps */
.sxm-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 48px); margin-top: clamp(24px, 3vw, 44px); counter-reset: step; }
.sxm-step { padding-top: 18px; border-top: 1px solid rgba(255, 249, 168, .45); }
.sxm-step > * + * { margin-top: 12px; }
.sxm-step__num { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .16em; opacity: .8; }
@media (max-width: 900px) { .sxm-steps { grid-template-columns: 1fr; } }

/* video + masonry */
.sxm-video { aspect-ratio: 16 / 9; border-radius: var(--sxm-radius); overflow: hidden; background: #000; box-shadow: var(--sxm-shadow-card); }
.sxm-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.sxm-masonry { columns: 3; column-gap: 14px; margin-top: clamp(20px, 3vw, 40px); }
.sxm-masonry__item { break-inside: avoid; margin: 0 0 14px; border-radius: 12px; overflow: hidden; background: var(--sxm-sea-mid); }
.sxm-masonry__item img { width: 100%; height: auto; display: block; transition: transform .8s var(--sxm-ease); }
.sxm-masonry__item:hover img { transform: scale(1.03); }
@media (max-width: 900px) { .sxm-masonry { columns: 2; } }
@media (max-width: 520px) { .sxm-masonry { columns: 1; } }

/* subpages keep the right edge clear for the conch (desktop) */
@media (min-width: 900px) { body.sxm27:not(.home) .sxm-phero > .sxm-wrap, body.sxm27:not(.home) .sxm-feature > .sxm-wrap { padding-right: min(18vw, 340px); } }

/* Gutenberg leftovers inside prose: no spacers, no empty columns */
.sxm-prose--page .wp-block-spacer { display: none; }
.sxm-prose--page .wp-block-columns { display: block; }
.sxm-prose--page .wp-block-column:empty { display: none; }
.sxm-prose--page .wp-block-column { flex-basis: auto !important; }
.sxm-prose--page .wp-block-columns + .wp-block-columns { margin-top: 1.5em; }
.sxm-prose--page figure.wp-block-image { margin: 1.5em 0; }

/* contact */
.sxm-contact { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr); gap: clamp(24px, 4vw, 64px); margin-top: clamp(24px, 3vw, 44px); }
.sxm-contact__card { padding: clamp(22px, 3vw, 40px); border-radius: var(--sxm-radius); background: var(--sxm-bar); color: var(--sxm-ink); box-shadow: var(--sxm-shadow-card); }
.sxm-contact__mail { display: block; margin: 8px 0 20px; font-size: clamp(20px, 2.2vw, 32px); font-weight: 900; text-transform: uppercase; color: var(--sxm-sea-deep); }
.sxm-contact__form { display: grid; gap: 14px; }
.sxm-contact__form label { display: grid; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sxm-sea); }
.sxm-contact__form input, .sxm-contact__form textarea { width: 100%; padding: 12px 14px; border: 1.5px solid rgba(0, 69, 140, .25); border-radius: 12px; background: #fff; color: var(--sxm-ink); font: 400 15px var(--sxm-font); }
.sxm-contact__form input:focus, .sxm-contact__form textarea:focus { outline: 2px solid var(--sxm-sea-deep); outline-offset: 1px; }
.sxm-contact__form .sxm-btn { justify-self: start; }
.sxm-contact__side { display: flex; flex-direction: column; gap: 12px; }
.sxm-contact__side p a { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 900px) { .sxm-contact { grid-template-columns: 1fr; } }

/* youtube set thumbnails (click to load the player) */
.sxm-sets { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 14px; max-width: 720px; }
.sxm-video--set { position: relative; cursor: pointer; }
.sxm-video--set img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--sxm-ease); }
.sxm-video--set:hover img { transform: scale(1.04); }
.sxm-video__play { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; transform: translate(-50%, -50%); border: 0; border-radius: 50%; background: var(--sxm-cream); cursor: pointer; box-shadow: 0 16px 30px -12px rgba(0, 24, 64, .7); transition: transform .35s var(--sxm-ease); }
.sxm-video__play span { position: absolute; left: 55%; top: 50%; transform: translate(-50%, -50%); border-left: 18px solid var(--sxm-sea-deep); border-top: 11px solid transparent; border-bottom: 11px solid transparent; }
.sxm-video--set:hover .sxm-video__play { transform: translate(-50%, -50%) scale(1.08); }

.sxm-artist__press { margin-top: clamp(40px, 6vw, 90px); }
.sxm-artist__press .sxm-row { margin-top: 0; padding-inline: 0; }

/* ---------- meet-the-artists slider ------------------------------------ */
.sxm-slider { position: relative; }
.sxm-slider__track { position: relative; display: grid; }
.sxm-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .7s var(--sxm-ease), transform .7s var(--sxm-ease), visibility 0s .7s; }
.sxm-slide.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .7s var(--sxm-ease) .1s, transform .7s var(--sxm-ease) .1s, visibility 0s; }
/* stacked deck of clickable artist cards */
.sxm-deck { position: relative; display: grid; width: 80%; margin-left: auto; }
.sxm-deck__card { grid-area: 1 / 1; display: block; aspect-ratio: 3 / 4; color: inherit; text-decoration: none; cursor: pointer; --d: 0; transform-origin: 50% 100%;
	transform: translate(calc(var(--d) * -4.5%), calc(var(--d) * -3%)) rotate(calc(var(--d) * -3deg)) scale(calc(1 - var(--d) * .045));
	filter: brightness(calc(1 - var(--d) * .14)); z-index: calc(20 - var(--d)); opacity: 1; transition: transform .9s var(--sxm-ease), filter .9s var(--sxm-ease), opacity .6s var(--sxm-ease), box-shadow .4s var(--sxm-ease); will-change: transform; }
.sxm-deck__card[style*="--d: 4"], .sxm-deck__card[style*="--d: 5"], .sxm-deck__card[style*="--d: 6"], .sxm-deck__card[style*="--d: 7"] { opacity: 0; pointer-events: none; }
.sxm-deck__card.is-active { --d: 0; transform: rotate(1.5deg); }
.sxm-deck__card.is-leaving { --d: 0; z-index: 21; transform: translate(10%, 8%) rotate(12deg) scale(1.02); opacity: 0; transition: transform .7s var(--sxm-ease), opacity .5s var(--sxm-ease) .12s; pointer-events: none; }
.sxm-deck__card:not(.is-active):not(.is-leaving):hover { filter: brightness(1); transform: translate(calc(var(--d) * -4.5% - 2.5%), calc(var(--d) * -3% - 2%)) rotate(calc(var(--d) * -3deg - 1deg)) scale(calc(1 - var(--d) * .045 + .01)); }
.sxm-deck__caption { position: absolute; inset: 0; padding: clamp(14px, 2vw, 26px); pointer-events: none; }
.sxm-deck__card:not(.is-active) .sxm-deck__caption { opacity: 0; transition: opacity .4s; }
.sxm-deck__card.is-active .sxm-deck__caption { opacity: 1; transition: opacity .5s .3s; }
.sxm-deck__cta { position: absolute; right: clamp(14px, 2vw, 26px); bottom: clamp(14px, 2vw, 26px); display: inline-flex; align-items: center; gap: 8px; padding: 6px 6px 6px 16px; border-radius: 999px; background: var(--sxm-cream); color: var(--sxm-ink); font: 700 12px / 1 var(--sxm-font); letter-spacing: .04em; text-transform: uppercase; opacity: 0; transform: translateY(8px); transition: opacity .35s var(--sxm-ease), transform .35s var(--sxm-ease); }
.sxm-deck__cta .sxm-btn__arrow { width: 26px; height: 26px; font-size: 13px; background: var(--sxm-sea-deep); color: var(--sxm-cream); }
.sxm-deck__card.is-active:hover .sxm-deck__cta, .sxm-deck__card.is-active:focus-visible .sxm-deck__cta { opacity: 1; transform: none; }
.sxm-deck__card.is-active:hover { box-shadow: 0 60px 90px -40px rgba(0, 20, 60, .8); }
.sxm-deck__card.is-active:hover img { transform: scale(1.03); }
.sxm-deck__card img { transition: transform 1s var(--sxm-ease); }
.sxm-deck__card:focus-visible { outline: 3px solid var(--sxm-cream); outline-offset: 4px; }
@media (max-width: 900px) { .sxm-deck { width: 100%; max-width: 320px; margin: 4% auto 0 4%; } .sxm-deck__card { transform: translate3d(calc(var(--d) * -4%), calc(var(--d) * -3%), 0) rotate(calc(var(--d) * -3deg)) scale(calc(1 - var(--d) * .05)); } .sxm-deck__card.is-active { transform: rotate(1.5deg); } }
.sxm-slider__nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: clamp(22px, 3vw, 40px); }
.sxm-slider__btn { width: 42px; height: 42px; border: 1.5px solid rgba(255, 249, 168, .6); border-radius: 50%; background: transparent; color: var(--sxm-cream); font: 700 16px / 1 var(--sxm-font); cursor: pointer; transition: background .3s, color .3s; }
.sxm-slider__btn:hover { background: var(--sxm-cream); color: var(--sxm-ink); }
.sxm-slider__dots { display: flex; gap: 8px; }
.sxm-slider__dot { width: 28px; height: 20px; padding: 0; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; }
.sxm-slider__dot span { display: block; width: 100%; height: 2px; background: rgba(255, 249, 168, .35); border-radius: 2px; transition: background .3s; position: relative; overflow: hidden; }
.sxm-slider__dot.is-active span::after { content: ""; position: absolute; inset: 0; background: var(--sxm-cream); transform-origin: left; animation: sxm-dot var(--sxm-slide-ms, 7000ms) linear forwards; }
.sxm-slider.is-paused .sxm-slider__dot.is-active span::after { animation-play-state: paused; }
@keyframes sxm-dot { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .sxm-slider__dot.is-active span::after { animation: none; transform: none; } }

/* ---------- interactivity polish -------------------------------------- */
.sxm-w { display: inline-block; will-change: transform; }
.sxm-cw { display: inline-block; white-space: nowrap; }
.sxm-c { display: inline-block; will-change: transform, opacity; }
/* photo hover: a small "view" disc + caption sheen */
.sxm-venue::before, .is-zoomable::after { content: "↗"; position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--sxm-cream); color: var(--sxm-ink); font: 700 15px / 1 var(--sxm-font); opacity: 0; transform: translateY(-6px) scale(.9); transition: opacity .35s var(--sxm-ease), transform .35s var(--sxm-ease); z-index: 2; pointer-events: none; }
.is-zoomable::after { content: ""; background: var(--sxm-cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300458c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7'/%3E%3C/svg%3E") center / 16px no-repeat; }
.is-zoomable { cursor: zoom-in; }
.sxm-venue:hover::before, .is-zoomable:hover::after, .is-zoomable:focus-visible::after { opacity: 1; transform: none; }
.is-zoomable:focus-visible { outline: 3px solid var(--sxm-cream); outline-offset: 3px; }
.sxm-row__item img, .sxm-masonry__item img { transition: transform .9s var(--sxm-ease), filter .6s var(--sxm-ease); }
.sxm-row__item:hover img, .sxm-masonry__item:hover img { transform: scale(1.05); filter: saturate(1.08) brightness(1.03); }
.sxm-feature__photo img { transition: filter .6s var(--sxm-ease); }
.sxm-feature__photo:hover img { filter: saturate(1.08); }
.sxm-passcard { transition: transform .45s var(--sxm-ease), box-shadow .45s var(--sxm-ease); }
.sxm-passcard:hover { box-shadow: 0 50px 80px -30px rgba(0, 24, 64, .7); }
.sxm-card { transition: background .4s var(--sxm-ease), transform .4s var(--sxm-ease); }
.sxm-card:hover { background: rgba(255, 249, 168, .18); transform: translateY(-4px); }
.sxm-stat { transition: transform .4s var(--sxm-ease); } .sxm-stat:hover { transform: translateY(-3px); }
.sxm-faq__item summary { transition: padding-left .3s var(--sxm-ease); } .sxm-faq__item summary:hover { padding-left: 6px; }

/* ---------- easter egg: jet shadow on the water ------------------------- */
.sxm-jet { position: absolute; left: 0; top: 0; width: 180px; height: 180px; opacity: 0; pointer-events: none; z-index: 2; will-change: transform, opacity; mix-blend-mode: multiply; filter: blur(6px); }
.sxm-jet svg { display: block; width: 100%; height: 100%; opacity: .26; filter: drop-shadow(0 0 14px rgba(0, 0, 0, .25)); }

/* ---------- tickets page: every pass type is a boarding pass ------------ */
.sxm-passes__grid { align-items: start; }
.sxm-pass--card { grid-template-columns: 1fr; max-width: none; margin: 0; text-decoration: none; transform: rotate(0); }
.sxm-pass--card:nth-child(1) { transform: rotate(-1.6deg); } .sxm-pass--card:nth-child(2) { transform: rotate(.8deg) translateY(-10px); } .sxm-pass--card:nth-child(3) { transform: rotate(1.8deg); }
.sxm-pass--card:hover { transform: rotate(0) translateY(-8px); }
.sxm-pass--card.is-featured { background: var(--sxm-cream-deep); }
.sxm-pass--card.is-soon { opacity: .82; } .sxm-pass--card.is-soon:hover { opacity: 1; }
.sxm-pass--card .sxm-pass__main { gap: 10px; }
.sxm-pass--card .sxm-pass__city { font-size: clamp(22px, 1.9vw, 30px); }
.sxm-pass--card .sxm-pass__title { font-size: clamp(30px, 2.9vw, 44px); }
.sxm-pass__price { font-size: clamp(22px, 2vw, 30px); font-weight: 900; color: var(--sxm-sea); letter-spacing: -.01em; }
.sxm-pass__desc { color: var(--sxm-sea-deep); font-size: var(--sxm-fs-body); line-height: 1.5; }
.sxm-pass--card .sxm-pass__meta { grid-template-columns: repeat(2, auto); gap: 8px 20px; }
.sxm-pass--card .sxm-pass__stub { border-left: 0; border-top: 2px dashed rgba(0, 80, 151, .35); padding: 18px clamp(16px, 2.2vw, 26px) clamp(18px, 2.2vw, 26px); gap: 10px; }
.sxm-pass--card .sxm-pass__stub::before, .sxm-pass--card .sxm-pass__stub::after { top: -10px; bottom: auto; }
.sxm-pass--card .sxm-pass__stub::before { left: -10px; } .sxm-pass--card .sxm-pass__stub::after { left: auto; right: -10px; }
.sxm-pass--card .sxm-pass__barcode { height: 36px; }
.sxm-pass--card .sxm-pass__cta { width: 100%; justify-content: space-between; }
.sxm-pass__cta.is-disabled { opacity: .55; justify-content: center; }
.sxm-pass__sub { font-size: 11px; line-height: 1.45; letter-spacing: .02em; text-align: center; color: var(--sxm-sea); text-transform: uppercase; }
.sxm-passcard__flag--soon { background: var(--sxm-sea); }
@media (max-width: 900px) { .sxm-pass--card, .sxm-pass--card:nth-child(n) { transform: none; max-width: 520px; margin-inline: auto; } }

/* ---------- lightbox ----------------------------------------------------- */
.sxm-lightbox { position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; padding: clamp(16px, 4vw, 48px); opacity: 0; visibility: hidden; transition: opacity .35s var(--sxm-ease), visibility 0s .35s; }
.sxm-lightbox.is-open { opacity: 1; visibility: visible; transition: opacity .35s var(--sxm-ease), visibility 0s; }
.sxm-lightbox__backdrop { position: absolute; inset: 0; background: rgba(0, 32, 80, .78); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.sxm-lightbox__figure { position: relative; margin: 0; max-width: min(1400px, 100%); display: flex; flex-direction: column; align-items: center; gap: 14px; transform: scale(.96) translateY(10px); transition: transform .45s var(--sxm-ease); }
.sxm-lightbox.is-open .sxm-lightbox__figure { transform: none; }
.sxm-lightbox__img { display: block; max-width: 100%; max-height: min(82vh, 82svh); width: auto; height: auto; border-radius: 14px; box-shadow: 0 60px 100px -30px rgba(0, 10, 40, .8); background: var(--sxm-sea-mid); transition: opacity .25s var(--sxm-ease); }
.sxm-lightbox.is-swapping .sxm-lightbox__img { opacity: 0; }
.sxm-lightbox__caption { display: flex; align-items: center; gap: 16px; color: var(--sxm-cream); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; min-height: 16px; }
.sxm-lightbox__caption:empty { display: none; }
.sxm-lightbox__count { opacity: .6; font-variant-numeric: tabular-nums; }
.sxm-lightbox__btn { position: absolute; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--sxm-cream); color: var(--sxm-ink); font: 700 16px / 1 var(--sxm-font); cursor: pointer; display: grid; place-items: center; transition: transform .3s var(--sxm-ease), background .3s; box-shadow: 0 10px 30px -10px rgba(0, 10, 40, .6); }
.sxm-lightbox__btn:hover { transform: scale(1.08); }
.sxm-lightbox__close { top: max(16px, env(safe-area-inset-top)); right: 16px; }
.sxm-lightbox__prev, .sxm-lightbox__next { top: 50%; transform: translateY(-50%); }
.sxm-lightbox__prev { left: 16px; } .sxm-lightbox__next { right: 16px; }
.sxm-lightbox__prev:hover, .sxm-lightbox__next:hover { transform: translateY(-50%) scale(1.08); }
.sxm-lightbox.is-single .sxm-lightbox__prev, .sxm-lightbox.is-single .sxm-lightbox__next, .sxm-lightbox.is-single .sxm-lightbox__count { display: none; }
body.sxm-lightbox-open { overflow: hidden; }
@media (max-width: 600px) { .sxm-lightbox__prev, .sxm-lightbox__next { top: auto; bottom: max(16px, env(safe-area-inset-bottom)); transform: none; } .sxm-lightbox__prev:hover, .sxm-lightbox__next:hover { transform: scale(1.08); } .sxm-lightbox__img { max-height: 70svh; } }

/* ---------- line-up page ------------------------------------------------ */
.sxm-lineup--page { padding-top: 0; }
.sxm-lineup--page .sxm-names { max-width: 84%; }
.sxm-peek { position: fixed; left: 0; top: 0; z-index: 5; width: clamp(160px, 16vw, 240px); aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) rotate(-4deg) scale(.9); box-shadow: 0 40px 70px -30px rgba(0, 10, 40, .7); background: var(--sxm-sea-mid); will-change: transform, opacity; }
.sxm-peek img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sxm-peek.is-on { opacity: 1; }
.sxm-roster { padding-top: 0; }
.sxm-roster__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: clamp(12px, 1.6vw, 22px); }
.sxm-roster__card { position: relative; display: flex; flex-direction: column; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: var(--sxm-sea-mid); color: var(--sxm-cream); text-decoration: none; box-shadow: var(--sxm-shadow-card); isolation: isolate; transition: transform .5s var(--sxm-ease), box-shadow .5s var(--sxm-ease); }
.sxm-roster__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--sxm-ease), filter .6s var(--sxm-ease); }
.sxm-roster__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 24, 64, .82), rgba(0, 24, 64, 0) 60%); z-index: 1; }
.sxm-roster__card.is-typo { background: linear-gradient(160deg, var(--sxm-sea) 0%, var(--sxm-sea-deep) 100%); }
.sxm-roster__mark { position: absolute; right: -6%; top: -8%; font-size: clamp(120px, 14vw, 220px); font-weight: 900; line-height: 1; color: rgba(255, 249, 168, .12); z-index: 0; transition: transform .8s var(--sxm-ease); }
.sxm-roster__body { position: relative; z-index: 2; margin-top: auto; padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 4px; }
.sxm-roster__num { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; opacity: .75; }
.sxm-roster__name { font-size: clamp(20px, 1.7vw, 26px); font-weight: 900; line-height: .95; text-transform: uppercase; letter-spacing: -.01em; }
.sxm-roster__meta { font-size: 12px; opacity: .85; margin-top: 4px; }
.sxm-roster__go { position: absolute; right: 12px; top: 12px; z-index: 2; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--sxm-cream); color: var(--sxm-ink); font: 700 14px / 1 var(--sxm-font); opacity: 0; transform: translateY(-6px) scale(.9); transition: opacity .35s var(--sxm-ease), transform .35s var(--sxm-ease); }
.sxm-roster__card:hover { transform: translateY(-6px); box-shadow: 0 50px 80px -30px rgba(0, 24, 64, .7); }
.sxm-roster__card:hover img { transform: scale(1.05); filter: saturate(1.08); }
.sxm-roster__card:hover .sxm-roster__mark { transform: translate(-6%, 6%) rotate(-6deg); }
.sxm-roster__card:hover .sxm-roster__go, .sxm-roster__card:focus-visible .sxm-roster__go { opacity: 1; transform: none; }
.sxm-roster__foot { display: flex; justify-content: center; margin-top: clamp(28px, 4vw, 56px); }
@media (max-width: 767px) { .sxm-roster__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } .sxm-roster__body { padding: 12px 12px 14px; } .sxm-roster__name { font-size: 17px; } .sxm-roster__meta { display: none; } .sxm-lineup--page .sxm-names { max-width: 100%; } }

/* ---------- cookie notice: one click, out of the way ---------------------- */
.sxm-cookie { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 50; width: min(340px, calc(100vw - 32px)); padding: 16px 16px 14px; border-radius: 16px; background: var(--sxm-bar); color: var(--sxm-ink); box-shadow: 0 30px 60px -20px rgba(0, 10, 40, .6); opacity: 0; transform: translateY(16px); visibility: hidden; transition: opacity .45s var(--sxm-ease), transform .45s var(--sxm-ease), visibility 0s .45s; }
.sxm-cookie.is-on { opacity: 1; transform: none; visibility: visible; transition: opacity .45s var(--sxm-ease), transform .45s var(--sxm-ease), visibility 0s; }
.sxm-cookie__title { display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sxm-sea); margin-bottom: 6px; }
.sxm-cookie__text { font-size: 13px; line-height: 1.45; color: var(--sxm-sea-deep); }
.sxm-cookie__text a { text-decoration: underline; text-underline-offset: 2px; }
.sxm-cookie__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.sxm-cookie .sxm-btn--sea { min-height: 36px; padding: 3px 3px 3px 14px; font-size: 11px; gap: 8px; }
.sxm-cookie .sxm-btn--sea .sxm-btn__arrow { width: 28px; height: 28px; font-size: 12px; }
.sxm-cookie__alt { background: none; border: 0; padding: 4px 0; font: 700 10.5px / 1 var(--sxm-font); letter-spacing: .1em; text-transform: uppercase; color: var(--sxm-sea); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .sxm-cookie { right: 12px; left: 12px; width: auto; bottom: calc(78px + env(safe-area-inset-bottom, 0px)); } }

/* ---------- line-up poster ---------------------------------------------- */
.sxm-poster { padding-top: 0; }
.sxm-poster__grid { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 6vw, 110px); align-items: center; }
.sxm-poster__card { position: relative; margin: 0; max-width: 420px; border-radius: 14px; overflow: hidden; background: var(--sxm-sea-mid); box-shadow: 0 50px 90px -30px rgba(0, 10, 40, .75); transform: rotate(-2deg); transition: transform .6s var(--sxm-ease), box-shadow .6s var(--sxm-ease); }
.sxm-poster__card img { display: block; width: 100%; height: auto; }
.sxm-poster__card:hover { transform: rotate(0) translateY(-6px); box-shadow: 0 60px 100px -30px rgba(0, 10, 40, .8); }
.sxm-poster__text > * + * { margin-top: clamp(16px, 2vw, 28px); }
.sxm-poster__text .sxm-label-row { margin-bottom: 0; }
.sxm-poster__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.sxm-lineup__links { display: inline-flex; flex-wrap: wrap; gap: 12px; align-items: center; }
@media (max-width: 900px) { .sxm-poster__grid { grid-template-columns: 1fr; } .sxm-poster__card { max-width: 320px; margin-inline: auto; } .sxm-poster__text { text-align: center; } .sxm-poster__actions { justify-content: center; } }

/* ---------- pre-launch line ------------------------------------------- */
.sxm-launch { font-weight: 700; }
.sxm-launch__clock span { font-variant-numeric: tabular-nums; }
