:root {
  --ink: #0b0a08;
  --ink-soft: #171210;
  --paper: #f2ead6;
  --paper-deep: #ded2b8;
  --signal-yellow: #f5f30d;
  --signal-red: #f23b1d;
  --red-deep: #b82311;
  --amber: var(--signal-yellow);
  --amber-soft: #fff86b;
  --violet: var(--signal-red);
  --blue: var(--signal-yellow);
  --rust: var(--signal-red);
  --line: rgba(242, 234, 214, 0.22);
  --dark-line: rgba(11, 10, 8, 0.2);
  --mono: "DM Mono", monospace;
  --body: "Manrope", sans-serif;
  --display: "Archivo Black", sans-serif;
  --serif: "DM Serif Display", Georgia, serif;
  --shell: min(1280px, calc(100% - 56px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.55; overflow-x: hidden; text-rendering: optimizeLegibility; }
body:has(.modal.is-open) { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: 16px; z-index: 100; padding: 10px 14px; background: var(--amber); color: var(--ink); transform: translateY(-160%); transition: transform 180ms ease; }
.skip-link:focus { transform: translateY(0); }
.page-shell { width: var(--shell); margin: 0 auto; }
.eyebrow { margin: 0; color: currentColor; font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.13em; line-height: 1.3; text-transform: uppercase; }
.site-header { position: fixed; top: 0; left: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 72px; padding: 12px 28px; border-bottom: 1px solid transparent; background: rgba(11, 10, 8, .78); color: var(--paper); backdrop-filter: blur(12px); transition: min-height 180ms ease, background 180ms ease, border-color 180ms ease; }
.site-header.is-scrolled { min-height: 62px; border-color: rgba(245, 243, 13, .35); background: rgba(11, 10, 8, .96); }
.wordmark { display: block; width: 108px; }
.wordmark img { display: block; width: 100%; height: auto; }
.site-nav { display: flex; gap: 25px; margin-left: auto; margin-right: 28px; font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.06em; text-transform: uppercase; }
.site-nav a, .header-cta { transition: color 160ms ease, opacity 160ms ease; }
.site-nav a:hover, .header-cta:hover { color: var(--amber); }
.header-cta { display: inline-flex; gap: 10px; align-items: center; min-height: 42px; padding: 10px 15px; border: 1px solid var(--signal-yellow); background: var(--signal-yellow); color: var(--ink); font-family: var(--mono); font-size: 0.67rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
.header-cta:hover { border-color: var(--signal-red); background: var(--signal-red); color: var(--ink); }
.menu-toggle { display: none; border: 0; background: none; color: inherit; }
.hero { position: relative; overflow: hidden; background: var(--ink); }
.hero__poster { position: relative; height: clamp(430px, 63svh, 720px); margin-top: 72px; overflow: hidden; background: var(--signal-red); isolation: isolate; }
.hero__poster::before { position: absolute; inset: 0; z-index: 2; background-image: repeating-linear-gradient(0deg, rgba(11, 10, 8, .12) 0 1px, transparent 1px 4px); content: ""; mix-blend-mode: multiply; opacity: .34; pointer-events: none; }
.hero__poster::after { position: absolute; inset: auto 0 0; z-index: 2; height: 16%; background: linear-gradient(transparent, rgba(11, 10, 8, .23)); content: ""; pointer-events: none; }
.hero__poster img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; animation: poster-arrival 1300ms cubic-bezier(.18,.72,.22,1) both, poster-breathe 16s 1400ms ease-in-out infinite alternate; }
.hero__print-shift { position: absolute; right: 5vw; bottom: 5vh; z-index: 3; width: clamp(65px, 8vw, 125px); aspect-ratio: 1; border: clamp(5px, .55vw, 9px) solid var(--signal-yellow); border-radius: 50%; mix-blend-mode: multiply; animation: print-shift 6s ease-in-out infinite alternate; }
@keyframes poster-arrival { from { opacity: .3; transform: scale(1.08); } to { opacity: 1; transform: scale(1); } }
@keyframes poster-breathe { to { transform: scale(1.025) translate3d(-.4%, -.35%, 0); } }
@keyframes print-shift { to { transform: translate3d(12px, -9px, 0) rotate(16deg); } }

.hero__conversion { position: relative; z-index: 4; border-top: 8px solid var(--signal-yellow); background: var(--ink); color: var(--paper); }
.hero__conversion-inner { display: grid; grid-template-columns: 1.15fr .62fr 1.35fr .88fr; min-height: 278px; padding: 28px 0 34px; }
.hero__conversion-inner > * { min-width: 0; padding: 0 24px; border-left: 1px solid var(--line); }
.hero__conversion-inner > *:first-child { padding-left: 0; border-left: 0; }
.hero__conversion-inner > *:last-child { padding-right: 0; }
.hero__eyebrow { display: flex; gap: 9px; align-items: center; margin-bottom: 19px; color: var(--signal-yellow); }
.pulse-dot, .status-light { display: inline-block; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--signal-red); box-shadow: 0 0 0 0 rgba(242, 59, 29, .58); animation: pulse 2.3s infinite; }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(242, 59, 29, .55); } 50% { box-shadow: 0 0 0 9px rgba(242, 59, 29, 0); } }
.hero__intro h1 { max-width: 355px; margin: 0; font-family: var(--display); font-size: clamp(2.35rem, 3.45vw, 4.2rem); font-weight: 400; letter-spacing: -.075em; line-height: .88; text-transform: uppercase; }
.hero__intro h1 em { display: block; color: var(--signal-red); font-family: var(--serif); font-size: 1.08em; font-style: italic; font-weight: 400; letter-spacing: -.045em; text-transform: none; }
.hero__intro > p:last-child { max-width: 330px; margin: 17px 0 0; color: rgba(242, 234, 214, .7); font-size: .77rem; line-height: 1.55; }
.hero__date { display: flex; flex-direction: column; justify-content: space-between; margin: 0; color: var(--paper); }
.hero__date span { display: block; color: var(--signal-yellow); font-family: var(--display); font-size: clamp(2.55rem, 4.2vw, 5rem); letter-spacing: -.09em; line-height: .84; }
.hero__date strong { display: block; margin-top: 9px; color: var(--signal-red); font-family: var(--mono); font-size: .72rem; font-weight: 500; letter-spacing: .08em; }
.hero__date small { display: block; margin-top: auto; color: rgba(242, 234, 214, .54); font-family: var(--mono); font-size: .56rem; letter-spacing: .07em; line-height: 1.4; text-transform: uppercase; }
.hero__countdown { align-self: stretch; margin: 0; padding: 0; width: auto; border: 0; background: transparent; box-shadow: none; }
.countdown-label { margin: 0 0 16px; color: var(--signal-yellow); font-family: var(--mono); font-size: .6rem; letter-spacing: .11em; text-transform: uppercase; }
.countdown-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid rgba(242, 234, 214, .25); }
.countdown-grid span { display: grid; align-content: center; min-height: 106px; padding: 13px 10px 9px; border: 0; border-left: 1px solid rgba(242, 234, 214, .25); background: transparent; }
.countdown-grid span:first-child { border-left: 0; }
.countdown-grid strong { display: block; margin-bottom: 10px; color: var(--signal-yellow); font-family: var(--display); font-size: clamp(1.75rem, 2.45vw, 3rem); font-weight: 400; letter-spacing: -.08em; line-height: .82; transform-origin: 50% 80%; }
.countdown-grid strong.is-ticking { animation: digit-tick 280ms cubic-bezier(.2,.8,.2,1); }
@keyframes digit-tick { 45% { color: var(--signal-red); transform: translateY(-5px) skewX(-5deg); } }
.countdown-grid i { display: block; color: rgba(242, 234, 214, .65); font-family: var(--mono); font-size: .53rem; font-style: normal; letter-spacing: .1em; text-transform: uppercase; }
.countdown-status { margin: 12px 0 0; color: rgba(242, 234, 214, .48); font-family: var(--mono); font-size: .54rem; letter-spacing: .07em; line-height: 1.45; text-transform: uppercase; }
.hero__buy { display: flex; flex-direction: column; align-items: stretch; }
.hero__buy > p { margin: 0 0 18px; color: rgba(242, 234, 214, .76); font-family: var(--serif); font-size: 1.12rem; line-height: 1.17; }
.button--ticket { display: flex; justify-content: space-between; width: 100%; min-height: 62px; padding: 15px 17px; border-color: var(--signal-yellow); background: var(--signal-yellow); color: var(--ink); box-shadow: 7px 7px 0 var(--signal-red); font-size: .7rem; }
.button--ticket b { font-size: 1.15rem; font-weight: 400; }
.button--ticket:hover { background: var(--signal-red); box-shadow: 3px 3px 0 var(--signal-yellow); transform: translate(4px, 4px); }
.hero__secondary-link { align-self: flex-start; margin-top: 22px; padding-bottom: 3px; border-bottom: 1px solid rgba(242, 234, 214, .45); color: rgba(242, 234, 214, .72); font-family: var(--mono); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.hero__secondary-link:hover { border-color: var(--signal-yellow); color: var(--signal-yellow); }
.text-link { display: inline-flex; gap: 13px; align-items: center; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; transition: color 160ms ease, gap 160ms ease; }
.text-link:hover { gap: 19px; color: var(--amber); }
.sponsor-strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--ink); background: var(--ink); color: var(--paper); }
.sponsor-strip__inner { display: grid; grid-template-columns: minmax(160px, .58fr) 1.42fr; gap: clamp(32px, 5vw, 72px); align-items: center; min-height: 124px; padding: 20px 0; }
.sponsor-strip__intro { display: flex; flex-direction: column; gap: 8px; }
.sponsor-strip__eyebrow { margin: 0; color: var(--signal-yellow); font-family: var(--mono); font-size: .7rem; letter-spacing: .13em; line-height: 1; text-transform: uppercase; }
.sponsor-strip__support { margin: 0; color: rgba(242, 234, 214, .5); font-family: var(--mono); font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.sponsor-strip__logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-height: 66px; border-left: 1px solid var(--line); }
.sponsor-logo { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 0 clamp(14px, 2vw, 28px); border-left: 1px solid var(--line); color: var(--paper); isolation: isolate; }
.sponsor-logo:first-child { border-left: 0; }
.sponsor-logo img { display: block; width: auto; height: clamp(42px, 4.5vw, 58px); max-width: 100%; object-fit: contain; filter: grayscale(1) invert(1); mix-blend-mode: screen; }
.ticker { overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--signal-yellow); color: var(--ink); }
.ticker__track { display: flex; gap: 24px; width: max-content; min-width: 100%; padding: 12px 0; animation: ticker 32s linear infinite; font-family: var(--mono); font-size: .64rem; letter-spacing: .11em; text-transform: uppercase; }
.ticker__track b { color: var(--violet); font-size: .92rem; font-weight: 400; line-height: 1; }
@keyframes ticker { to { transform: translateX(-50%); } }
.section { position: relative; padding: 126px 0; }
.section--light { background: var(--paper); color: var(--ink); }
.section--paper { background: var(--paper-deep); color: var(--ink); }
.section-heading { max-width: 760px; }
.section-heading .eyebrow, .story-intro .eyebrow, .visit-copy .eyebrow { margin-bottom: 22px; color: var(--rust); }
h2 { margin: 0; font-family: var(--display); font-size: clamp(3.4rem, 8vw, 7.6rem); font-weight: 400; letter-spacing: -.075em; line-height: .86; text-transform: uppercase; }
h2 span { color: var(--violet); }
.section-heading__note { max-width: 370px; margin: 28px 0 0 auto; font-size: .92rem; }

.selection-cluster { margin-top: 92px; padding-top: 28px; border-top: 2px solid var(--ink); }
.selection-heading { display: grid; grid-template-columns: 1fr minmax(240px, 380px); gap: 50px; align-items: end; margin-bottom: 28px; }
.selection-cluster h3 { margin: 8px 0 0; font-family: var(--display); font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 400; letter-spacing: -.075em; line-height: .88; text-transform: uppercase; }
.selection-eyebrow { margin-bottom: 18px; color: var(--signal-red); font-family: var(--mono); font-size: .64rem; letter-spacing: .09em; text-transform: uppercase; }
.selection-heading > p { margin: 0; font-size: .84rem; line-height: 1.55; }
.selection-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.selection-card { position: relative; display: flex; aspect-ratio: 1; min-height: 0; flex-direction: column; justify-content: flex-end; overflow: hidden; border: 2px solid var(--ink); background: var(--ink); color: var(--paper); isolation: isolate; }
.selection-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: saturate(.95) contrast(1.08); transition: transform 650ms cubic-bezier(.16,.76,.24,1), filter 320ms ease; }
.selection-card::after { position: absolute; inset: 30% 0 0; z-index: -1; background: linear-gradient(transparent, rgba(11,10,8,.96)); content: ""; }
.selection-card:hover img { filter: saturate(1.15) contrast(1.1); transform: scale(1.055) rotate(-.5deg); }
.selection-card__index { position: absolute; top: 17px; left: 17px; z-index: 2; padding: 6px 8px; background: var(--ink); color: var(--signal-yellow); font-family: var(--mono); font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.selection-card__title { position: relative; z-index: 2; padding: 0 18px; font-family: var(--display); font-size: clamp(1.75rem, 2.7vw, 3rem); letter-spacing: -.075em; line-height: .86; text-transform: uppercase; }
.selection-card__action { position: relative; z-index: 2; display: flex; justify-content: space-between; margin-top: 20px; padding: 13px 20px 16px; border-top: 1px solid rgba(242,234,214,.48); color: var(--signal-yellow); font-family: var(--mono); font-size: .59rem; letter-spacing: .07em; text-transform: uppercase; }
.selection-card__hover { position: absolute; inset: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; padding: 28px; background: var(--signal-yellow); color: var(--ink); font-family: var(--display); font-size: clamp(1.8rem, 3vw, 3.5rem); letter-spacing: -.07em; line-height: .88; text-transform: uppercase; opacity: 1; transform: translateY(102%); transition: transform 360ms cubic-bezier(.18,.82,.2,1); }
.selection-card__hover i { font-family: var(--mono); font-size: 1.2rem; font-style: normal; }
.selection-card--call:hover .selection-card__hover,
.selection-card--call:focus-visible .selection-card__hover { transform: translateY(0); }

.lineup-status { display: grid; grid-template-columns: .78fr 1.22fr; min-height: 450px; margin: 80px 0 28px; border: 2px solid var(--ink); background: var(--paper-deep); box-shadow: 12px 12px 0 var(--signal-red); }
.status-copy { display: flex; flex-direction: column; align-items: flex-start; padding: 38px; }
.status-copy .status-light { margin-bottom: 36px; background: var(--rust); }
.status-copy .eyebrow { margin-bottom: 22px; color: var(--rust); }
.status-copy h3 { margin: 0 0 20px; font-family: var(--display); font-size: clamp(2.25rem, 4vw, 4.4rem); font-weight: 400; letter-spacing: -.075em; line-height: .86; text-transform: uppercase; }
.status-copy h3 i { color: var(--signal-red); font-family: var(--serif); font-style: italic; font-weight: 400; text-transform: none; }
.status-copy > p:not(.eyebrow) { max-width: 230px; margin: 0 0 26px; font-size: .88rem; }
.button { display: inline-flex; gap: 14px; align-items: center; justify-content: center; min-height: 46px; padding: 12px 18px; border: 1px solid transparent; border-radius: 0; cursor: pointer; font-family: var(--mono); font-size: .67rem; letter-spacing: .08em; line-height: 1; text-transform: uppercase; transition: color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.button:hover { transform: translateY(-2px); }
.button--dark { background: var(--ink); color: var(--paper); }
.button--dark:hover { background: var(--signal-red); }
.button--amber { background: var(--amber); color: var(--ink); }
.button--amber:hover { background: var(--paper); }
.button--line { border-color: currentColor; color: currentColor; }
.button--line:hover { border-color: var(--amber); color: var(--amber); }
.status-visual { position: relative; display: grid; place-items: center; overflow: hidden; background: var(--signal-red); isolation: isolate; }
.status-visual::before { position: absolute; inset: 0; z-index: 1; background: linear-gradient(130deg, rgba(11,10,8,.12), rgba(11,10,8,.54)); content: ""; }
.status-visual img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); }
.signal-orbit { position: absolute; z-index: 2; border: 2px solid rgba(245,243,13,.72); border-radius: 50%; transform: rotate(-18deg); animation: orbit-drift 11s ease-in-out infinite alternate; }
.signal-orbit--one { width: 33%; aspect-ratio: 1.36; }
.signal-orbit--two { width: 60%; aspect-ratio: 1.36; transform: rotate(43deg); animation-delay: -4s; }
.signal-orbit--three { width: 90%; aspect-ratio: 1.36; transform: rotate(-61deg); animation-delay: -7s; }
@keyframes orbit-drift { to { border-color: rgba(242,234,214,.25); transform: rotate(22deg) scale(1.08); } }
.signal-word { position: relative; z-index: 3; padding: 15px 21px 10px; background: var(--ink); color: var(--signal-yellow); font-family: var(--display); font-size: clamp(3.6rem, 8vw, 8.5rem); font-weight: 400; letter-spacing: -.095em; line-height: .76; text-align: center; text-transform: uppercase; transform: rotate(-6deg); }
.stage-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.stage-card { position: relative; min-height: 350px; padding: 23px; overflow: hidden; border: 2px solid var(--ink); }
.stage-card--amber { background: var(--amber); color: var(--ink); }
.stage-card--violet { background: var(--signal-red); color: var(--ink); }
.stage-card--ink { background: var(--ink); color: var(--paper); }
.stage-card__top { display: flex; justify-content: space-between; gap: 20px; font-family: var(--mono); font-size: .57rem; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; }
.stage-card h3 { margin: 57px 0 22px; font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); font-weight: 400; letter-spacing: -.085em; line-height: .83; text-transform: uppercase; }
.stage-card h3 span { color: var(--signal-yellow); font-family: var(--serif); font-style: italic; font-weight: 400; text-transform: none; }
.stage-card--amber h3 span { color: var(--signal-red); }
.stage-card--violet h3 span { color: var(--paper); }
.stage-card p { max-width: 240px; margin: 0; font-size: .82rem; }
.stage-card__mark { position: absolute; right: 20px; bottom: 14px; color: rgba(242,234,214,.34); font-family: var(--display); font-size: 4rem; line-height: 1; transition: transform 260ms ease; }
.stage-card:hover .stage-card__mark { transform: rotate(18deg) scale(1.08); }

.artists-lane { margin: 80px 0 28px; }
.artists-lane__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.artists-lane__eyebrow { margin-bottom: 18px; color: var(--signal-red); }
.artists-lane__head h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem, 3.5vw, 3.5rem); font-weight: 400; letter-spacing: -.075em; line-height: .88; text-transform: uppercase; }
.artists-lane__head h3 i { color: var(--signal-red); font-family: var(--serif); font-style: italic; font-weight: 400; text-transform: none; }
.artists-lane__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.artist-card { position: relative; display: flex; flex-direction: column; overflow: hidden; aspect-ratio: 3/4; border: 2px solid var(--ink); background: var(--ink); color: var(--paper); isolation: isolate; box-shadow: 10px 10px 0 var(--signal-red); transition: transform 260ms cubic-bezier(.18,.82,.2,1), box-shadow 260ms ease; }
.artist-card:hover { transform: translate(-4px, -4px); box-shadow: 14px 14px 0 var(--signal-red); }
.artist-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 650ms cubic-bezier(.16,.76,.24,1), filter 320ms ease; }
.artist-card::after { display: none; }
.artist-card:hover img { transform: scale(1.05); filter: saturate(1.12); }
.artist-card__index, .artist-card__name { display: none; }
@media (max-width: 1080px) {
  .artist-card { box-shadow: 7px 7px 0 var(--signal-red); }
  .artist-card:hover { box-shadow: 10px 10px 0 var(--signal-red); }
}
@media (max-width: 820px) {
  .artists-lane { margin: 55px 0 28px; }
  .artists-lane__head { flex-direction: column; align-items: flex-start; gap: 20px; }
  .artists-lane__grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 16px; }
  .artist-card { flex: 0 0 75%; scroll-snap-align: start; }
}

.aftermovie-section { overflow: hidden; background: var(--signal-yellow); color: var(--ink); }
.aftermovie-section::before { position: absolute; top: -24%; left: -8%; width: 34vw; aspect-ratio: 1; border: 7vw solid var(--signal-red); border-radius: 45% 55% 67% 33% / 34% 42% 58% 66%; content: ""; opacity: .92; transform: rotate(-18deg); }
.aftermovie-grid { position: relative; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(50px, 8vw, 120px); align-items: center; }
.aftermovie-copy { position: relative; z-index: 1; }
.aftermovie-copy .eyebrow { margin-bottom: 24px; color: var(--ink); }
.aftermovie-copy h2 { font-size: clamp(3.2rem, 6.5vw, 6.8rem); }
.aftermovie-copy h2 span { color: var(--ink); font-family: var(--serif); font-style: italic; font-weight: 400; text-transform: none; }
.aftermovie-copy > p:not(.eyebrow):not(.aftermovie-credit) { max-width: 390px; margin: 30px 0 18px; font-size: .93rem; }
.aftermovie-credit { margin: 0; font-family: var(--mono); font-size: .56rem; letter-spacing: .05em; text-transform: uppercase; }
.video-shell { position: relative; aspect-ratio: 16 / 9; border: 3px solid var(--ink); background: var(--ink); box-shadow: 14px 14px 0 var(--signal-red); }
.video-shell iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-poster { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; background: var(--ink); color: var(--paper); cursor: pointer; text-align: left; }
.video-poster::after { position: absolute; inset: 0; background-image: repeating-linear-gradient(0deg, transparent 0 4px, rgba(245,243,13,.08) 4px 5px); content: ""; pointer-events: none; animation: scanline 9s linear infinite; }
@keyframes scanline { to { background-position-y: 50px; } }
.video-poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 66%; transition: transform 700ms cubic-bezier(.18,.78,.22,1), filter 300ms ease; }
.video-poster:hover img { filter: saturate(1.16); transform: scale(1.045); }
.video-poster__wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,10,8,.5), transparent 55%), linear-gradient(0deg, rgba(11,10,8,.8), transparent 55%); }
.video-poster__play { position: absolute; top: 50%; left: 50%; z-index: 2; display: grid; width: clamp(76px, 9vw, 124px); aspect-ratio: 1; place-items: center; border: 2px solid var(--ink); border-radius: 50%; background: var(--signal-yellow); color: var(--ink); box-shadow: 7px 7px 0 var(--signal-red); transform: translate(-50%, -50%); transition: transform 240ms ease, box-shadow 240ms ease; }
.video-poster__play i { margin-left: 6px; font-size: clamp(1.2rem, 2vw, 2rem); font-style: normal; }
.video-poster:hover .video-poster__play { box-shadow: 3px 3px 0 var(--signal-yellow); transform: translate(calc(-50% + 4px), calc(-50% + 4px)) rotate(6deg); }
.video-poster__label, .video-poster__corner { position: absolute; bottom: 18px; z-index: 2; font-family: var(--mono); font-size: .59rem; letter-spacing: .07em; text-transform: uppercase; }
.video-poster__label { left: 20px; color: var(--signal-yellow); }
.video-poster__corner { right: 20px; color: var(--paper); }
.story-section { background: var(--ink-soft); color: var(--paper); overflow: hidden; }
.story-section::after { position: absolute; top: -10%; right: -13%; width: 50vw; height: 50vw; border: 1px solid rgba(117,84,255,.55); border-radius: 50%; box-shadow: 0 0 0 80px rgba(117,84,255,.03), 0 0 0 160px rgba(117,84,255,.03); content: ""; pointer-events: none; }
.story-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 100px; row-gap: 92px; }
.story-intro h2 span { color: var(--amber); }
.story-copy { max-width: 490px; padding-top: 72px; }
.story-copy p { margin: 0 0 22px; color: rgba(245,240,229,.76); font-size: .93rem; }
.story-copy .story-lead { color: var(--paper); font-size: 1.24rem; line-height: 1.45; }
.text-link--light:hover { color: var(--amber); }
.story-stat { position: relative; padding-top: 19px; border-top: 1px solid var(--line); }
.story-stat strong { display: block; margin-bottom: 11px; color: var(--amber); font-family: var(--display); font-size: clamp(3rem, 6vw, 6rem); letter-spacing: -.1em; line-height: .8; }
.story-stat span { color: rgba(245,240,229,.6); font-family: var(--mono); font-size: .64rem; letter-spacing: .06em; line-height: 1.45; text-transform: uppercase; }
.story-stat--one { grid-column: 1; }
.story-stat--two { grid-column: 2; }
.story-stat--three { grid-column: 1; }
.archive-section { overflow: hidden; }
.section-heading--split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; }
.section-heading--split .section-heading__note { margin: 0; }
.section-heading--split h2 span { color: var(--rust); }
.archive-list { margin-top: 83px; border-top: 1px solid var(--dark-line); }
.archive-row { display: grid; grid-template-columns: 110px 1fr 150px; gap: 34px; align-items: start; padding: 26px 0; border-bottom: 1px solid var(--dark-line); }
.archive-row--featured { padding-top: 30px; padding-bottom: 30px; background: linear-gradient(90deg, rgba(255,184,0,.16), transparent); }
.archive-year { color: var(--violet); font-family: var(--mono); font-size: .75rem; letter-spacing: .08em; }
.archive-row--featured .archive-year { color: var(--rust); }
.archive-info h3 { margin: 0 0 8px; font-family: var(--display); font-size: clamp(1.25rem, 2vw, 2rem); letter-spacing: -.06em; line-height: 1; text-transform: uppercase; }
.archive-info p { max-width: 700px; margin: 0; color: rgba(16,16,22,.68); font-size: .82rem; }
.archive-meta { font-family: var(--mono); font-size: .63rem; letter-spacing: .07em; line-height: 1.55; text-align: right; text-transform: uppercase; }
.archive-footnote { display: flex; gap: 14px; align-items: center; margin-top: 25px; color: rgba(16,16,22,.62); font-family: var(--mono); font-size: .62rem; }
.archive-footnote span { color: var(--rust); font-size: 1.1rem; }
.archive-footnote code { padding: 2px 5px; background: rgba(16,16,22,.07); }
.visit-section { background: var(--paper); color: var(--ink); }
.visit-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; align-items: center; }
.visit-copy h2 span { color: var(--rust); }
.visit-details { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 54px 0 34px; padding-top: 20px; border-top: 1px solid var(--dark-line); font-size: .83rem; }
.visit-details p { margin: 0; }
.visit-details strong { font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.visit-card { min-height: 430px; background: var(--ink); color: var(--paper); }
.visit-card__map { position: relative; min-height: 385px; overflow: hidden; background: #1c2022; background-image: linear-gradient(rgba(130,215,235,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(130,215,235,.15) 1px, transparent 1px), repeating-linear-gradient(32deg, transparent 0 74px, rgba(245,240,229,.08) 75px 76px); background-size: 54px 54px, 54px 54px, auto; }
.visit-card__map::before, .visit-card__map::after { position: absolute; width: 160%; height: 1px; background: rgba(255,184,0,.5); content: ""; transform: rotate(-25deg); }
.visit-card__map::before { top: 50%; left: -20%; }
.visit-card__map::after { top: 63%; left: -14%; transform: rotate(20deg); }
.map-pin { position: absolute; top: 44%; left: 52%; z-index: 1; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--amber); border-radius: 50%; color: var(--amber); font-size: 1.15rem; animation: map-pulse 2.8s infinite; }
@keyframes map-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,184,0,.4); } 50% { box-shadow: 0 0 0 18px rgba(255,184,0,0); } }
.map-label { position: absolute; color: rgba(245,240,229,.64); font-family: var(--mono); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.map-label--one { top: 53%; left: 55%; color: var(--amber); }
.map-label--two { top: 26%; left: 16%; }
.map-label--three { right: 13%; bottom: 18%; color: var(--blue); }
.visit-card__footer { display: flex; justify-content: space-between; padding: 16px 19px; border-top: 1px solid var(--line); color: rgba(245,240,229,.6); font-family: var(--mono); font-size: .6rem; letter-spacing: .06em; }
.section--amber { background: var(--amber); color: var(--ink); }
.newsletter { padding: 95px 0; }
.newsletter-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 120px; align-items: end; }
.newsletter .eyebrow { margin-bottom: 22px; color: var(--rust); }
.newsletter h2 span { color: var(--violet); }
.newsletter-form { max-width: 570px; }
.newsletter-form > label { display: block; max-width: 390px; margin-bottom: 20px; font-size: .91rem; }
.form-row { display: flex; }
.form-row input, .modal-form input { width: 100%; min-width: 0; border: 1px solid var(--ink); border-right: 0; border-radius: 0; background: transparent; color: var(--ink); padding: 13px 14px; outline: none; }
.form-row input::placeholder, .modal-form input::placeholder { color: rgba(16,16,22,.56); }
.form-row input:focus, .modal-form input:focus { box-shadow: inset 0 0 0 2px var(--ink); }
.form-row .button { flex: 0 0 auto; }
.form-message { min-height: 1.3em; margin: 13px 0 0; color: var(--rust); font-family: var(--mono); font-size: .64rem; letter-spacing: .04em; }
.site-footer { padding: 58px 0 24px; background: var(--ink); color: var(--paper); }
.footer-grid { display: grid; grid-template-columns: 1.4fr .6fr .6fr; gap: 50px; padding-bottom: 65px; }
.footer-logo { width: 120px; margin-bottom: 19px; }
.footer-grid p { margin: 0; color: rgba(245,240,229,.6); font-size: .8rem; }
.footer-links { display: flex; flex-direction: column; gap: 7px; font-family: var(--mono); font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.footer-links a { width: max-content; color: rgba(245,240,229,.7); transition: color 160ms ease; }
.footer-links a:hover { color: var(--amber); }
.footer-base { display: flex; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid var(--line); color: rgba(245,240,229,.42); font-family: var(--mono); font-size: .58rem; letter-spacing: .05em; text-transform: uppercase; }
.modal { position: fixed; inset: 0; z-index: 40; display: none; place-items: center; padding: 20px; }
.modal.is-open { display: grid; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(16,16,22,.82); backdrop-filter: blur(8px); }
.modal__panel { position: relative; width: min(560px, 100%); padding: 46px; background: var(--paper); color: var(--ink); box-shadow: 16px 16px 0 var(--amber); }
.modal__close { position: absolute; top: 14px; right: 16px; border: 0; background: none; color: var(--ink); cursor: pointer; font-size: 1.7rem; line-height: 1; }
.modal__panel .eyebrow { margin-bottom: 22px; color: var(--rust); }
.modal__panel h2 { font-size: clamp(3rem, 7vw, 5.5rem); }
.modal__panel h2 span { color: var(--violet); }
.modal__panel > p:not(.eyebrow):not(.form-message) { margin: 30px 0; color: rgba(16,16,22,.72); font-size: .9rem; }
.modal-form { display: flex; }
.modal-form input { border-color: var(--ink); }
.source-link { display: inline-block; margin-top: 20px; color: var(--rust); font-family: var(--mono); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 650ms ease, transform 650ms ease; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.mobile-ticket { display: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } [data-reveal] { opacity: 1; transform: none; } }
@media (max-width: 820px) {
  :root { --shell: min(100% - 32px, 620px); }
  .site-header { padding: 18px 16px; mix-blend-mode: normal; }
  .wordmark { width: 84px; }
  .site-nav { position: absolute; top: 64px; right: 16px; display: none; flex-direction: column; gap: 17px; width: 180px; margin: 0; padding: 20px; background: var(--paper); color: var(--ink); box-shadow: 7px 7px 0 var(--amber); }
  .site-nav.is-open { display: flex; }
  .header-cta { display: none; }
  .menu-toggle { display: grid; gap: 5px; padding: 8px 0 8px 8px; cursor: pointer; }
  .menu-toggle > span:not(.sr-only) { display: block; width: 26px; height: 2px; background: currentColor; }
  .hero__content { padding-top: 96px; }
  .hero h1 { font-size: clamp(4.8rem, 19vw, 9rem); }
  .hero__bottom { grid-template-columns: 1fr 1.2fr; gap: 20px; margin-top: 64px; }
  .hero__countdown { width: 100%; }
  .countdown-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__side-label { display: none; }
  .section { padding: 92px 0; }
  .lineup-status, .stage-grid, .story-grid, .section-heading--split, .visit-grid, .newsletter-grid { grid-template-columns: 1fr; }
  .lineup-status { margin-top: 55px; }
  .status-visual { min-height: 300px; }
  .selection-grid { grid-template-columns: 1fr; }
  .stage-grid { gap: 10px; }
  .stage-card { min-height: 260px; }
  .stage-card h3 { margin-top: 42px; }
  .story-copy { padding-top: 0; }
  .story-stat--one, .story-stat--two, .story-stat--three { grid-column: auto; }
  .story-stat--two { margin-top: -55px; margin-left: 35%; }
  .section-heading__note { margin: 26px 0 0; }
  .archive-list { margin-top: 55px; }
  .archive-row { grid-template-columns: 62px 1fr; gap: 18px; }
  .archive-meta { grid-column: 2; text-align: left; }
  .visit-grid, .newsletter-grid { gap: 55px; }
  .visit-card { min-height: auto; }
  .visit-card__map { min-height: 320px; }
  .newsletter { padding: 78px 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 34px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-base { flex-direction: column; gap: 7px; }
}
@media (max-width: 460px) {
  .hero h1 { font-size: clamp(3.7rem, 15vw, 6.8rem); }
  .hero__bottom { grid-template-columns: 1fr; gap: 24px; }
  .hero__thesis { max-width: 270px; }
  .hero__countdown { width: 100%; }
  .countdown-grid span { min-height: 66px; }
  .status-copy { padding: 25px; }
  .modal__panel { padding: 35px 24px 28px; box-shadow: 8px 8px 0 var(--amber); }
  .modal-form, .form-row { flex-direction: column; }
  .form-row input, .modal-form input { border-right: 1px solid var(--ink); border-bottom: 0; }
  .modal-form input { border-bottom: 0; }
  .archive-year { font-size: .66rem; }
}

@media (hover: none) {
  .selection-card--call .selection-card__hover { display: none; }
}

@media (max-width: 1080px) {
  .hero__conversion-inner { grid-template-columns: 1.1fr .65fr 1.25fr; }
  .hero__buy { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr minmax(230px, 310px) auto; gap: 24px; align-items: center; margin-top: 26px; padding: 24px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .hero__buy > p, .hero__secondary-link { margin: 0; }
  .stage-card { min-height: 320px; }
  .selection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  body { padding-bottom: 62px; }
  .site-header { min-height: 64px; padding: 12px 16px; background: rgba(11,10,8,.94); }
  .site-header.is-scrolled { min-height: 58px; }
  .site-nav { top: 64px; width: min(280px, calc(100vw - 32px)); padding: 24px; border: 2px solid var(--ink); background: var(--signal-yellow); box-shadow: 8px 8px 0 var(--signal-red); }
  .site-nav a { padding: 7px 0; border-bottom: 1px solid rgba(11,10,8,.2); }
  .hero__poster { height: clamp(315px, 46svh, 480px); margin-top: 64px; }
  .hero__print-shift { right: 4vw; bottom: 4vh; }
  .hero__conversion-inner { grid-template-columns: 1fr 1fr; padding: 28px 0 32px; }
  .hero__conversion-inner > * { padding: 0 18px; }
  .hero__intro { grid-column: 1 / -1; padding: 0 0 24px; border-left: 0; border-bottom: 1px solid var(--line); }
  .hero__intro h1 { max-width: 440px; }
  .hero__date { padding-top: 24px; padding-left: 0; border-left: 0; }
  .hero__countdown { padding-top: 24px; padding-right: 0; }
  .hero__buy { grid-column: 1 / -1; grid-template-columns: 1fr minmax(220px, 1fr); padding-top: 24px; }
  .hero__secondary-link { grid-column: 1 / -1; }
  .sponsor-strip__inner { grid-template-columns: 1fr; gap: 18px; padding: 24px 0; }
  .sponsor-strip__logos { border-top: 1px solid var(--line); border-left: 0; padding-top: 18px; }
  .countdown-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .countdown-grid span { min-height: 90px; }
  .selection-heading { grid-template-columns: 1fr; gap: 20px; }
  .selection-grid { grid-template-columns: 1fr; gap: 14px; }
  .selection-card { width: min(100%, 600px); margin-inline: auto; }
  .aftermovie-grid { grid-template-columns: 1fr; gap: 48px; }
  .aftermovie-copy { max-width: 560px; }
  .aftermovie-section::before { width: 58vw; border-width: 12vw; }
  .video-shell { box-shadow: 9px 9px 0 var(--signal-red); }
  .mobile-ticket { position: fixed; right: 0; bottom: 0; left: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; min-height: 62px; padding: 10px 16px; border-top: 2px solid var(--ink); background: var(--signal-yellow); color: var(--ink); font-family: var(--mono); text-transform: uppercase; }
  .mobile-ticket span { font-size: .53rem; letter-spacing: .05em; }
  .mobile-ticket strong { font-size: .67rem; letter-spacing: .06em; }
}

@media (max-width: 560px) {
  :root { --shell: min(100% - 28px, 480px); }
  .hero__poster { height: 41svh; min-height: 290px; }
  .hero__poster img { object-position: center; }
  .hero__conversion { border-top-width: 6px; }
  .hero__conversion-inner { grid-template-columns: 1fr; }
  .hero__conversion-inner > * { padding-right: 0; padding-left: 0; border-left: 0; }
  .hero__intro h1 { font-size: clamp(2.7rem, 13vw, 4.2rem); }
  .hero__intro > p:last-child { max-width: 100%; }
  .hero__date { min-height: 150px; padding: 24px 0; border-bottom: 1px solid var(--line); }
  .hero__date span { font-size: clamp(4rem, 18vw, 5.5rem); }
  .hero__countdown { padding: 24px 0; border-bottom: 1px solid var(--line); }
  .countdown-grid span { min-height: 82px; padding-right: 6px; padding-left: 6px; }
  .countdown-grid strong { font-size: clamp(1.65rem, 9vw, 2.5rem); }
  .hero__buy { display: flex; margin-top: 0; padding-top: 24px; border-top: 0; }
  .hero__buy > p { font-size: 1.25rem; }
  .button--ticket { min-height: 66px; }
  .sponsor-strip__logos { grid-template-columns: 1fr; gap: 0; border-top: 0; padding-top: 0; }
  .sponsor-logo { justify-content: flex-start; min-height: 60px; padding: 14px 0; border-top: 1px solid var(--line); }
  .sponsor-logo:first-child { border-top: 0; }
  .sponsor-logo--city { align-items: flex-start; text-align: left; }
  .section { padding: 84px 0; }
  .lineup-status { margin-right: 7px; box-shadow: 7px 7px 0 var(--signal-red); }
  .selection-cluster { margin-top: 70px; }
  .selection-card__title { font-size: clamp(2.4rem, 12vw, 4rem); }
  .video-poster__label { left: 13px; bottom: 12px; }
  .video-poster__corner { right: 13px; bottom: 12px; }
  .video-poster__play { width: 72px; }
  .aftermovie-section::before { top: -8%; left: -20%; width: 95vw; }
  .story-stat--two { margin-top: 0; margin-left: 0; }
}

@media print {
  .site-header, .ticker, .mobile-ticket, .newsletter, .modal { display: none !important; }
  body { padding: 0; background: #fff; color: #000; }
  .hero__poster { margin-top: 0; }
  .section { break-inside: avoid; }
}
