/* ============================================================
   THROTTLECROSS — spectator landing page (/albany/)
   Paid-traffic page. One job: get the ticket click.
   Standalone: tokens.css + fonts.css + this. No global.css,
   so nothing sitewide can shift the page under a live test.
   Static composition is the default; landing.js only adds
   motion when prefers-reduced-motion allows it.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.motion-reduced { scroll-behavior: auto; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--bone);
  font-family: var(--font-text);
  font-size: var(--text-base);
  line-height: 1.55;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p, h1, h2, h3, ul, ol, dl, dd, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }

.sr-only {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.skip-link {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--bone); color: var(--ink); padding: .6rem 1rem;
  font-weight: 700; border-radius: var(--radius-chip);
}
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid var(--holeshot-blue-bright); outline-offset: 3px; }

.wrap { width: min(100% - 2 * var(--gutter), var(--page-max)); margin-inline: auto; }

/* film grain over everything */
body::after {
  content: ""; position: fixed; inset: -50%; z-index: 90; pointer-events: none;
  opacity: .07;
  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");
}
.motion-ok body::after { animation: grain .7s steps(1, end) infinite; }
@keyframes grain {
  0% { transform: translate(0, 0); } 25% { transform: translate(-3%, 2%); }
  50% { transform: translate(2%, -3%); } 75% { transform: translate(-2%, -1%); }
}

/* ---- shared type ------------------------------------------ */
.kick {
  font-family: var(--font-data); font-size: var(--text-micro);
  letter-spacing: .2em; text-transform: uppercase; color: var(--bone-mute);
  display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: center;
  margin-bottom: var(--space-4);
}
.kick b { color: var(--throttle-red-bright); font-weight: 700; }
.sec-title {
  font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
  font-size: var(--text-display); line-height: .9; letter-spacing: -.01em;
  max-width: 16ch;
}
[data-split] .w { display: inline-block; }

/* ---- the button ------------------------------------------- */
.lp-btn {
  --bg: var(--throttle-red-deep);
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: .7em;
  background: var(--bg); color: var(--bone);
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  letter-spacing: .04em; text-decoration: none; line-height: 1;
  border-radius: var(--radius-chip);
  padding: .8em 1.2em; font-size: 1rem;
  box-shadow: 0 0 0 1px oklch(70% .2 27 / .4) inset, 0 14px 40px -12px oklch(55% .205 27 / .7);
  transition: transform var(--dur-fast) var(--ease-out-expo), box-shadow var(--dur-base);
  white-space: nowrap;
}
.lp-btn::before { /* speed sheen */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, transparent 30%, oklch(100% 0 0 / .28) 48%, transparent 66%);
  transform: translateX(-120%);
}
.motion-ok .lp-btn::before { animation: sheen 3.6s var(--ease-launch) infinite; }
@keyframes sheen { 0%, 62% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
.lp-btn:hover { --bg: var(--throttle-red); box-shadow: 0 0 0 1px oklch(80% .2 27 / .6) inset, 0 18px 50px -10px oklch(60% .22 27 / .9); }
.lp-btn:active { --bg: var(--throttle-red-press); }
.lp-btn--sm { font-size: .9rem; padding: .62em 1em; }
.lp-btn--xl { font-size: clamp(1.25rem, 1rem + 1.1vw, 1.75rem); padding: .85em 1.5em; }
.lp-btn--block { width: 100%; }
.lp-btn__arrow { transition: transform var(--dur-base) var(--ease-out-expo); }
.lp-btn:hover .lp-btn__arrow { transform: translateX(.3em); }

/* ---- header ------------------------------------------------ */
.lp-head {
  position: fixed; inset: 0 0 auto; z-index: 50;
  display: flex; align-items: center; gap: var(--space-4);
  padding: calc(.7rem + env(safe-area-inset-top, 0px)) var(--gutter) .7rem;
  transition: background var(--dur-base), backdrop-filter var(--dur-base);
}
.lp-head.is-solid { background: var(--ink-veil); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.lp-head__brand img { width: clamp(130px, 14vw, 190px); }
.lp-head__meta {
  margin-left: auto; font-family: var(--font-data); font-size: var(--text-micro);
  letter-spacing: .18em; color: var(--bone-dim);
}
@media (max-width: 640px) { .lp-head__meta { display: none; } .lp-head .lp-btn { margin-left: auto; } }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative; min-height: 100svh; overflow: hidden;
  display: grid; align-items: end;
  padding: calc(6rem + env(safe-area-inset-top, 0px)) var(--gutter) clamp(2rem, 5vh, 4rem);
  background: radial-gradient(ellipse 80% 60% at 50% 30%, oklch(22% .02 40) 0%, var(--ink) 70%);
}
.hero__stage { position: absolute; inset: 0; pointer-events: none; }
.hero__bg { position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 50% 118%, var(--dirt-mid) 0%, var(--dirt-deep) 34%, transparent 62%),
    radial-gradient(100% 76% at 50% -14%, oklch(30% 0.03 310 / .9), transparent 66%),
    radial-gradient(40% 30% at 18% 8%, oklch(34% 0.05 30 / .35), transparent 70%),
    radial-gradient(36% 28% at 84% 10%, oklch(33% 0.05 250 / .28), transparent 70%),
    var(--ink); }
.hero__lights { position: absolute; inset: 0 0 auto; height: 44vh; }
.hero__lights img { width: 100%; height: 100%; object-fit: cover; object-position: center top;
  -webkit-mask-image: linear-gradient(to bottom, #000 40%, transparent);
          mask-image: linear-gradient(to bottom, #000 40%, transparent); }
.hero__beams span {
  position: absolute; top: -10%; width: 22vw; height: 120%;
  background: linear-gradient(to bottom, oklch(95% .03 80 / .16), transparent 70%);
  filter: blur(18px); transform-origin: top center; mix-blend-mode: screen;
}
.hero__beams span:nth-child(1) { left: 12%; transform: rotate(16deg); }
.hero__beams span:nth-child(2) { left: 42%; transform: rotate(-4deg); opacity: .7; }
.hero__beams span:nth-child(3) { left: 70%; transform: rotate(-18deg); }
.motion-ok .hero__beams span { animation: sweep 7s ease-in-out infinite alternate; }
.motion-ok .hero__beams span:nth-child(2) { animation-duration: 9s; animation-delay: -3s; }
.motion-ok .hero__beams span:nth-child(3) { animation-duration: 8s; animation-delay: -5s; }
@keyframes sweep { to { rotate: 12deg; } }
.hero__fx { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__floor { position: absolute; inset: auto 0 0; height: 34%; }
.hero__floor img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
  -webkit-mask-image: linear-gradient(to top, #000 60%, transparent);
          mask-image: linear-gradient(to top, #000 60%, transparent); }
.hero__r22 {
  position: absolute; right: 20%; bottom: 3%; width: clamp(220px, 27vw, 440px);
  filter: drop-shadow(0 30px 40px oklch(0% 0 0 / .7)) brightness(.92);
}
.hero__r17 {
  position: absolute; right: 2%; top: 14%; width: clamp(180px, 26vw, 430px);
  filter: drop-shadow(0 40px 50px oklch(0% 0 0 / .65));
}
.hero__vignette { position: absolute; inset: 0;
  background:
    linear-gradient(to top, var(--ink) 2%, oklch(13.5% .005 300 / .55) 34%, transparent 62%),
    radial-gradient(ellipse at center, transparent 45%, oklch(8% 0 0 / .75) 100%); }

.hero__copy { position: relative; z-index: 2; width: min(100%, var(--page-max)); margin-inline: auto; }
.hero__eyebrow {
  font-family: var(--font-data); font-size: var(--text-small); letter-spacing: .2em;
  color: var(--bone-dim); display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
}
.tag { background: var(--throttle-red-deep); color: var(--bone); padding: .25em .6em; font-weight: 700; border-radius: var(--radius-chip); }
.sep { color: var(--throttle-red-bright); }
.hero__title { margin-top: var(--space-4); font-family: var(--font-display); text-transform: uppercase; line-height: .8; }
.hero__brand {
  display: block; font-weight: 800; font-style: italic;
  font-size: clamp(1.5rem, 1rem + 2.6vw, 3.4rem); letter-spacing: .01em;
  color: var(--throttle-red-bright);
  transform: skewX(var(--slant)); transform-origin: left;
}
.hero__city {
  display: block; font-weight: 900;
  /* sized to the longest word so COLORADO SPRINGS fits as well as RENO */
  font-size: min(clamp(5.6rem, .5rem + 21vw, 19rem), calc(158vw / var(--len, 6)), calc(36svh / var(--lines, 1)));
  letter-spacing: -.035em; text-wrap: balance;
  margin-left: -.04em;
  color: var(--bone);
  text-shadow: 0 14px 50px oklch(0% 0 0 / .7);
}
.hero__city .word { display: inline-block; white-space: nowrap; }
.hero__city .ch { display: inline-block; will-change: transform; }
.hero__gate {
  height: 6px; width: min(100%, 60rem); margin-top: var(--space-3);
  background: var(--throttle-red); box-shadow: 0 0 24px oklch(55% .205 27 / .9);
  transform-origin: left;
}
.hero__when {
  margin-top: var(--space-4);
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(1.2rem, 1rem + 1.2vw, 2rem); letter-spacing: .02em;
  display: flex; flex-wrap: wrap; gap: .2rem .6rem;
}
.hero__lede { margin-top: var(--space-3); max-width: 46ch; font-size: var(--text-lead); color: var(--bone-dim); line-height: 1.45; }
.hero__cta { margin-top: var(--space-5); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-5); }
.hero__price { font-family: var(--font-data); font-size: var(--text-small); letter-spacing: .06em; color: var(--bone-dim); line-height: 1.3; }
.hero__price strong { color: var(--bone); font-family: var(--font-display); font-size: 1.6rem; font-weight: 800; letter-spacing: 0; }
.hero__price small { font-size: var(--text-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--bone-mute); }
.hero__facts {
  margin-top: var(--space-6); display: flex; flex-wrap: wrap;
  border-top: 1px solid var(--ink-line);
}
.hero__facts li { padding: var(--space-3) var(--space-5) 0 0; margin-right: var(--space-5); display: grid; gap: .15rem; }
.hero__facts li + li { border-left: 1px solid var(--ink-line); padding-left: var(--space-5); }
.hero__facts .k { font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .2em; color: var(--bone-mute); }
.hero__facts .v { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.3rem, 1rem + 1vw, 1.9rem); font-variant-numeric: tabular-nums; }
.hero__cd .v { color: var(--throttle-red-bright); }
.motion-reduced .hero__cd-s { display: none; }
@media (max-width: 640px) {
  .hero__r22 { opacity: .35; right: -20%; bottom: 34%; }
  .hero__r17 { top: 9%; right: -8%; opacity: .9; }
  .hero__facts li { margin-right: var(--space-4); padding-right: var(--space-4); }
  .hero__facts li + li { padding-left: var(--space-4); }
  .hero__facts .hero__cd { flex-basis: 100%; border-left: 0; padding-left: 0; }
}

/* ============================================================
   TICKER
   ============================================================ */
.ticker {
  position: relative; z-index: 3; overflow: hidden;
  background: var(--throttle-red-deep); color: var(--bone);
  transform: rotate(-1.6deg) scale(1.04); margin-block: -.4rem;
  box-shadow: 0 20px 50px -20px oklch(55% .205 27 / .7);
}
.ticker__track {
  display: flex; width: max-content; align-items: center; gap: 1.6rem;
  padding: .8rem 0; font-family: var(--font-display); font-weight: 900;
  font-size: clamp(1.3rem, 1rem + 1.6vw, 2.4rem); letter-spacing: .02em; font-style: italic;
}
.ticker__track i { font-style: normal; color: var(--ink); opacity: .55; }
.motion-ok .ticker__track { animation: tick 28s linear infinite; }
@keyframes tick { to { transform: translateX(-50%); } }

/* ============================================================
   STORY — pinned three-beat (desktop, motion) / stacked
   ============================================================ */
.story { position: relative; padding-block: var(--space-section) 0; }
.story__pin { position: relative; display: grid; gap: var(--space-6); }
.story__media { position: relative; overflow: hidden; aspect-ratio: 999 / 502; }
.story__photo { width: 100%; height: 100%; object-fit: cover; }
.story__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--ink), transparent 50%), linear-gradient(90deg, oklch(13.5% .005 300 / .5), transparent 50%); }
.story__cap { position: absolute; left: var(--gutter); bottom: var(--space-4); font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .2em; color: var(--bone-dim); }
.story__beats { display: grid; gap: var(--space-7); padding-inline: var(--gutter); padding-bottom: var(--space-section); }
.beat__no { font-family: var(--font-data); font-size: var(--text-small); letter-spacing: .2em; color: var(--throttle-red-bright); margin-bottom: var(--space-3); }
.beat__line {
  font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
  font-size: clamp(2.6rem, 1rem + 6.4vw, 7.5rem); line-height: .86; letter-spacing: -.015em; max-width: 13ch;
}
.beat__line em { font-style: italic; color: var(--throttle-red); display: inline-block; transform: skewX(var(--slant)); }
.beat__body { margin-top: var(--space-4); font-size: var(--text-lead); color: var(--bone-dim); max-width: 40ch; }
.story__rail { display: none; }

/* pinned layout — JS adds .is-pinned when motion + wide */
.story.is-pinned { padding-top: 0; }
.story.is-pinned .story__pin { height: 100svh; display: block; overflow: hidden; }
.story.is-pinned .story__media { position: absolute; inset: 0; aspect-ratio: auto; }
.story.is-pinned .story__shade { background:
  linear-gradient(90deg, var(--ink) 18%, oklch(13.5% .005 300 / .7) 48%, oklch(13.5% .005 300 / .2) 100%),
  linear-gradient(to top, var(--ink), transparent 30%); }
.story.is-pinned .story__cap { left: auto; right: var(--gutter); }
.story.is-pinned .story__beats { position: absolute; inset: 0; padding: 0; display: block; }
.story.is-pinned .beat {
  position: absolute; left: var(--gutter); top: 50%; translate: 0 -50%; width: min(60rem, 70vw);
}
.story.is-pinned .story__rail {
  display: block; position: absolute; left: var(--gutter); right: var(--gutter); bottom: 2.4rem; height: 3px; background: var(--ink-line);
}
.story__rail span { display: block; height: 100%; width: 100%; background: var(--throttle-red); transform-origin: left; transform: scaleX(0); }

/* ============================================================
   RECEIPTS
   ============================================================ */
.receipts { padding-block: var(--space-section); background: linear-gradient(to bottom, var(--ink), var(--dirt-deep)); }
.quotes { margin-top: var(--space-7); display: grid; gap: var(--space-5); grid-template-columns: repeat(3, 1fr); align-items: end; }
.quote {
  position: relative; padding: var(--space-6) var(--space-5) var(--space-5);
  background: var(--ink-raise); border-top: 4px solid var(--throttle-red);
  border-radius: 0 0 var(--radius-card) var(--radius-card);
}
.quote::before {
  content: "“"; position: absolute; top: -.35em; right: .15em; font-family: var(--font-display); font-weight: 900;
  font-size: 9rem; line-height: 1; color: var(--throttle-red); opacity: .22;
}
.quote blockquote p {
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase;
  font-size: clamp(1.5rem, 1rem + 1.4vw, 2.3rem); line-height: 1;
}
.quote--big { padding-block: var(--space-7) var(--space-6); }
.quote--big blockquote p { font-size: clamp(2rem, 1rem + 2.4vw, 3.4rem); }
.quote__src { margin-top: var(--space-4); font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--bone-mute); }
@media (max-width: 860px) { .quotes { grid-template-columns: 1fr; } }

/* ============================================================
   THE NIGHT — track line
   ============================================================ */
.night { padding-block: var(--space-section); position: relative; overflow: hidden; }
.night::before { /* checker flag ghost */
  content: ""; position: absolute; right: -6rem; top: 3rem; width: 26rem; height: 26rem; opacity: .05;
  background: conic-gradient(var(--bone) 25%, transparent 0 50%, var(--bone) 0 75%, transparent 0) 0 0 / 4rem 4rem;
  transform: rotate(-12deg);
}
.track { position: relative; margin-top: var(--space-7); display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); padding-top: var(--space-6); }
.track__line { position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--ink-line); }
.track__line span { display: block; height: 100%; background: linear-gradient(90deg, var(--throttle-red-dim), var(--throttle-red)); box-shadow: 0 0 18px oklch(55% .205 27 / .8); transform-origin: left; }
.track--3 { grid-template-columns: repeat(3, 1fr); }
.track--5 { grid-template-columns: repeat(5, 1fr); }
.stop { position: relative; min-width: 0; }
.stop::before {
  content: ""; position: absolute; top: calc(-1 * var(--space-6) - 7px); left: 0; width: 18px; height: 18px;
  background: var(--ink); border: 4px solid var(--throttle-red); transform: rotate(45deg);
}
.stop__time {
  font-family: var(--font-display); font-weight: 900; font-size: clamp(3rem, 1.6rem + 3.6vw, 5.5rem); line-height: .9;
  font-variant-numeric: tabular-nums; letter-spacing: -.02em;
}
.stop__time small { font-size: .32em; margin-left: .2em; letter-spacing: .1em; color: var(--throttle-red-bright); vertical-align: top; }
.stop__what { margin-top: var(--space-3); font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-size: 1.35rem; }
.stop__body { margin-top: var(--space-2); color: var(--bone-dim); max-width: 30ch; }
@media (max-width: 860px) {
  .track { grid-template-columns: 1fr; padding-top: 0; padding-left: var(--space-6); gap: var(--space-6); }
  .track__line { left: 0; right: auto; top: 0; bottom: 0; width: 4px; height: auto; }
  .track__line span { width: 100%; height: 100%; transform-origin: top; }
  .stop::before { top: .9rem; left: calc(-1 * var(--space-6) - 7px); }
}

/* ============================================================
   NUMBERS
   ============================================================ */
.numbers { background: var(--bone); color: var(--ink); padding-block: var(--space-7); clip-path: polygon(0 4vw, 100% 0, 100% calc(100% - 4vw), 0 100%); padding-block: calc(var(--space-7) + 4vw); }
.numbers__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.num { border-left: 4px solid var(--ink); padding-left: var(--space-4); }
.num--red { border-color: var(--throttle-red-deep); }
.num__big { font-family: var(--font-display); font-weight: 900; font-size: clamp(3.6rem, 2rem + 5vw, 7.5rem); line-height: .85; letter-spacing: -.03em; }
.num__big small { font-size: .3em; margin-left: .15em; letter-spacing: .08em; }
.num__big--words { font-size: clamp(2.2rem, 1.2rem + 3vw, 4.4rem); line-height: .9; }
.num--red .num__big { color: var(--throttle-red-deep); }
.num__lbl { margin-top: var(--space-2); font-family: var(--font-data); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: var(--text-small); color: oklch(30% .01 300); max-width: 22ch; }
@media (max-width: 860px) { .numbers__grid { grid-template-columns: 1fr 1fr; row-gap: var(--space-6); } }

/* ============================================================
   KIDS
   ============================================================ */
.kids { padding-block: var(--space-section); }
.kids__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--space-7); align-items: center; }
.kids__art { position: relative; }
.kids__art img { width: 100%; filter: drop-shadow(0 40px 50px oklch(0% 0 0 / .7)); }
.kids__art::before { content: ""; position: absolute; inset: 10% 0 0; background: radial-gradient(ellipse at 50% 70%, oklch(55% .205 27 / .35), transparent 65%); filter: blur(20px); z-index: -1; }
.kids__stamp {
  position: absolute; right: 2%; bottom: -6%;
  font-family: var(--font-stamp); font-size: clamp(1.1rem, .8rem + 1vw, 1.6rem); line-height: 1.05; color: var(--throttle-red-bright);
  border: 3px solid currentColor; padding: .5em .7em; transform: rotate(-8deg); background: oklch(13.5% .005 300 / .8);
}
.kids__list { margin-top: var(--space-6); display: grid; gap: var(--space-4); }
.kids__list li { padding-left: 1.6rem; position: relative; color: var(--bone-dim); max-width: 46ch; }
.kids__list li::before { content: ""; position: absolute; left: 0; top: .55em; width: .7rem; height: .7rem; background: var(--throttle-red); transform: skewX(var(--slant)); }
.kids__list b { color: var(--bone); font-weight: 600; }
@media (max-width: 860px) { .kids__grid { grid-template-columns: 1fr; } }

/* ============================================================
   THE TICKET
   ============================================================ */
.buy { padding-block: var(--space-section); background: radial-gradient(ellipse 70% 60% at 50% 50%, oklch(30% .09 27 / .5), transparent 70%); }
.ticket {
  display: grid; grid-template-columns: 1.6fr 1fr; position: relative;
  filter: drop-shadow(0 40px 60px oklch(0% 0 0 / .7));
}
.ticket__main, .ticket__stub { background: var(--bone); color: var(--ink); padding: clamp(1.5rem, 1rem + 3vw, 3.5rem); }
.ticket__main { border-radius: var(--radius-card) 0 0 var(--radius-card);
  -webkit-mask: radial-gradient(circle 16px at 100% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 16px at 100% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle 16px at 100% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 16px at 100% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat; }
.ticket__stub {
  border-radius: 0 var(--radius-card) var(--radius-card) 0; border-left: 3px dashed oklch(70% .01 85);
  display: flex; flex-direction: column; justify-content: center; text-align: center;
  -webkit-mask: radial-gradient(circle 16px at 0 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 16px at 0 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle 16px at 0 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 16px at 0 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
}
.ticket .kick { color: oklch(40% .01 300); }
.ticket .kick b { color: var(--throttle-red-deep); }
.ticket__title { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; font-size: clamp(2rem, 1rem + 3vw, 4rem); line-height: .88; }
.ticket__title span { display: block; color: var(--throttle-red-deep); font-size: min(1.6em, calc(60vw / var(--len, 6))); letter-spacing: -.03em; }
.ticket__rows { margin-top: var(--space-5); display: grid; gap: var(--space-2); }
.ticket__rows div { display: grid; grid-template-columns: 7rem 1fr; gap: var(--space-3); border-top: 1px solid oklch(80% .01 85); padding-top: var(--space-2); }
.ticket__rows dt { font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .2em; color: oklch(40% .01 300); padding-top: .25em; }
.ticket__rows dd { font-weight: 600; }
.ticket__from { font-family: var(--font-data); letter-spacing: .2em; font-size: var(--text-small); color: oklch(40% .01 300); }
.ticket__price { font-family: var(--font-display); font-weight: 900; font-size: clamp(4.5rem, 3rem + 4vw, 7rem); line-height: .9; letter-spacing: -.03em; }
.ticket__price sup { font-size: .4em; vertical-align: .9em; }
.ticket__fees { font-size: var(--text-small); color: oklch(40% .01 300); margin-bottom: var(--space-5); }
.ticket__fine { margin-top: var(--space-3); font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .14em; text-transform: uppercase; color: oklch(40% .01 300); }
@media (max-width: 860px) {
  .ticket { grid-template-columns: 1fr; }
  .ticket__main { border-radius: var(--radius-card) var(--radius-card) 0 0; -webkit-mask: none; mask: none; }
  .ticket__stub { border-radius: 0 0 var(--radius-card) var(--radius-card); border-left: 0; border-top: 3px dashed oklch(70% .01 85); -webkit-mask: none; mask: none; }
  .ticket__rows div { grid-template-columns: 5.5rem 1fr; }
}

/* ============================================================
   FAQ
   ============================================================ */
.faq { padding-block: var(--space-section); border-top: 1px solid var(--ink-line); }
.faq__wrap { display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--space-7); }
.faq details { border-bottom: 1px solid var(--ink-line); }
.faq summary {
  cursor: pointer; list-style: none; padding: var(--space-4) 2.5rem var(--space-4) 0; position: relative;
  font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: .3rem; top: 50%; translate: 0 -50%; color: var(--throttle-red-bright); font-size: 1.8rem; transition: rotate var(--dur-base); }
.faq details[open] summary::after { rotate: 45deg; }
.faq details p { padding-bottom: var(--space-5); color: var(--bone-dim); max-width: 60ch; }
.faq details a { color: var(--holeshot-blue-bright); }
@media (max-width: 860px) { .faq__wrap { grid-template-columns: 1fr; gap: var(--space-5); } }

/* ============================================================
   LAST CALL
   ============================================================ */
.last { position: relative; overflow: hidden; padding-block: var(--space-section); text-align: center; background: linear-gradient(to bottom, var(--ink), var(--dirt-deep)); }
.last__ghost {
  position: absolute; left: 50%; top: 50%; translate: -50% -50%; white-space: nowrap;
  font-family: var(--font-display); font-weight: 900; font-size: 34vw; line-height: 1; letter-spacing: -.04em;
  color: transparent; -webkit-text-stroke: 2px oklch(55% .205 27 / .22);
}
.last__inner { position: relative; display: grid; justify-items: center; gap: var(--space-6); }
.last__title { font-family: var(--font-display); font-weight: 900; text-transform: uppercase; font-size: var(--text-display); line-height: .9; }
.last__em { display: block; color: var(--throttle-red); font-style: italic; }
.last__meta { font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .2em; color: var(--bone-mute); }

/* ---- footer ---- */
.lp-foot { padding-block: var(--space-7) calc(var(--space-7) + 4rem); border-top: 1px solid var(--ink-line); }
.lp-foot__inner { display: grid; gap: var(--space-3); justify-items: center; text-align: center; font-size: var(--text-small); color: var(--bone-mute); }
.lp-foot img { width: 160px; }
.lp-foot a { color: var(--bone-dim); }

/* ============================================================
   DOCK — sticky ticket bar
   ============================================================ */
.dock {
  position: fixed; left: 50%; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); z-index: 60;
  translate: -50% 160%; opacity: 0;
  display: flex; align-items: center; gap: var(--space-4);
  padding: .55rem .55rem .55rem 1.1rem; border-radius: 999px;
  background: var(--ink-veil-solid); border: 1px solid var(--ink-line);
  box-shadow: 0 20px 50px -10px oklch(0% 0 0 / .8);
  transition: translate var(--dur-slow) var(--ease-out-expo), opacity var(--dur-base);
  width: max-content; max-width: calc(100% - 2rem);
}
@supports (backdrop-filter: blur(1px)) { .dock { background: var(--ink-veil); backdrop-filter: blur(12px); } }
.dock.is-on { translate: -50% 0; opacity: 1; }
.dock .lp-btn { border-radius: 999px; }
.dock__meta { font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .14em; color: var(--bone-dim); white-space: nowrap; }
.dock__meta b { color: var(--bone); font-family: var(--font-display); font-size: 1rem; letter-spacing: .04em; margin-right: .4rem; }
@media (max-width: 480px) { .dock__meta span { display: none; } }
.motion-reduced .dock { transition: none; }

/* ============================================================
   DOOR-SALES STUB + the alert form (main.js sends it to Klaviyo)
   ============================================================ */
.ticket__price--words { font-size: clamp(3rem, 2rem + 3vw, 4.8rem); text-transform: uppercase; line-height: .88; margin-block: .2rem .6rem; }
.ticket__stub--door { text-align: left; }
.ticket__stub--door .ticket__fees { margin-bottom: var(--space-4); }
.capture { display: flex; flex-wrap: wrap; gap: .6rem; }
.capture input[type="email"] {
  flex: 1 1 12rem; min-width: 0; font: inherit;
  background: oklch(99% .004 85); color: var(--ink);
  border: 2px solid oklch(78% .01 85); border-radius: var(--radius-chip); padding: .8rem .9rem;
}
.capture input[type="email"]::placeholder { color: oklch(52% .01 85); }
.capture input[type="email"]:focus { border-color: var(--holeshot-blue); }
.capture .lp-btn { flex: 0 0 auto; border: 0; cursor: pointer; }
.form-success {
  display: none; margin-top: .8rem; padding: .7rem 1rem;
  border: 2px solid var(--throttle-red-deep); border-radius: 3px; font-weight: 600; outline: none;
}
.form-success.is-shown { display: block; }
.motion-ok .form-success.is-shown { animation: stamp 380ms var(--ease-out-expo) both; }
@keyframes stamp { from { opacity: 0; scale: 1.06; } to { opacity: 1; scale: 1; } }
.form-success__cal { display: block; margin-top: .5rem; font-family: var(--font-data); font-size: var(--text-micro); letter-spacing: .1em; text-transform: uppercase; font-weight: 400; }
.form-success__cal a { color: var(--holeshot-blue); margin-left: .5rem; }
.form-error { margin-top: .8rem; color: var(--throttle-red-deep); font-weight: 600; }
form[data-form-stub].is-done { display: none; }
form[data-form-stub].is-done ~ .ticket__fine { display: none; }
