/* Lionheart Productions. Built to clients/lionheart-productions/design.md (2026-09-25 revision).
   Every color, face, size and radius is a token from that file. Motion belongs to one of the
   brief's systems: HEARTBEAT, HEARTWAVE, PORTAL. Nothing else moves. */

/* ---------- fonts: self-hosted latin subsets, metric-adjusted fallbacks ---------- */
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/barlow-condensed-600-latin.woff2") format("woff2"); }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/barlow-condensed-700-latin.woff2") format("woff2"); }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/source-sans-3-400-latin.woff2") format("woff2"); }
@font-face { font-family: "Source Sans 3"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/source-sans-3-600-latin.woff2") format("woff2"); }
@font-face { font-family: "Michroma"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/michroma-400-latin.woff2") format("woff2"); }  /* the extended Eurostile-class face for the "presents" line only (owner, 2026-09-27) */
@font-face { font-family: "Barlow Condensed Fallback"; src: local("Arial Narrow"), local("Roboto Condensed"), local("Arial"); size-adjust: 92%; ascent-override: 92%; descent-override: 22%; line-gap-override: 0%; }
@font-face { font-family: "Source Sans 3 Fallback"; src: local("Segoe UI"), local("Helvetica Neue"), local("Arial"); size-adjust: 94%; ascent-override: 98%; descent-override: 28%; line-gap-override: 0%; }

/* ---------- tokens (design.md) ---------- */
:root {
  --paper: #0B0B0C;
  --surface: #141416;
  --ink: #F3EFE6;
  --muted: #B8AE9C;
  --action: #F0A62B;
  --line: #2A2A2E;
  --display: "Barlow Condensed", "Barlow Condensed Fallback", "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
  --body: "Source Sans 3", "Source Sans 3 Fallback", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --wide: "Michroma", "Eurostile", "Bank Gothic", "Orbitron", "Arial", sans-serif;
  --s1: 4px; --s2: 8px; --s3: 16px; --s4: 32px; --s5: 64px; --s6: 96px;
  --r: 2px;
  --nav-h: 64px;
  --beat: 1.85s;                                  /* HEARTBEAT: about 65 bpm at rest */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  color-scheme: dark;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--paper); -webkit-text-size-adjust: 100%; scrollbar-color: var(--line) var(--paper); scroll-padding-top: calc(var(--nav-h) + 16px); }
body { margin: 0; font-family: var(--body); font-size: 17px; line-height: 1.55; color: var(--ink); background: var(--paper); overflow-x: hidden; }
body::after { /* grain: 4.5% monochrome, brand system section 4; clean black reads corporate to a bass crowd */
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 60; opacity: .045; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
::selection { background: var(--action); color: var(--paper); }
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--action); text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--action); outline-offset: 2px; }
p { margin: 0 0 var(--s3); max-width: 68ch; }
ul, ol { margin: 0 0 var(--s3); padding-left: 1.2em; max-width: 68ch; }
strong { font-weight: 600; }
small, .lh-small { font-size: 14px; }
[hidden] { display: none !important; }

h1, h2, h3 { font-family: var(--display); font-weight: 700; line-height: 0.95; margin: 0 0 var(--s3); color: var(--ink); letter-spacing: 0; }
h1 { font-size: clamp(44px, 9vw, 112px); text-transform: uppercase; }
h2 { font-size: clamp(34px, 5.5vw, 64px); text-transform: uppercase; }
h3 { font-size: 26px; font-weight: 600; margin-bottom: var(--s2); }
.lh-kicker { font-family: var(--wide); font-size: 13px; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); line-height: 1.2; margin: 0 0 var(--s2); }  /* the "presents" line: the extended face the owner chose (2026-09-27), sized to the caption line, never an amber eyebrow (2026-09-26) */
.lh-lede { font-size: 20px; max-width: 58ch; color: var(--ink); }
.lh-narrow { max-width: 760px; }
.lh-textlink { font-weight: 600; }
.lh-closer { font-size: 20px; margin-top: var(--s4); }

.lh-skip { position: absolute; left: var(--s3); top: -48px; background: var(--action); color: var(--paper); padding: var(--s2) var(--s3); border-radius: var(--r); z-index: 100; font-weight: 600; }
.lh-skip:focus { top: var(--s3); text-decoration: none; }
.lh-wrap { max-width: 1200px; margin-inline: auto; padding-inline: 16px; }
.lh-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- buttons ---------- */
.lh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 24px;
  font-family: var(--body); font-size: 16px; font-weight: 600; line-height: 1.2; text-transform: uppercase; letter-spacing: 0.04em;
  border-radius: var(--r); border: 1px solid transparent; cursor: pointer; text-decoration: none;
  transition: transform 120ms ease, opacity 120ms ease, border-color 120ms ease;
}
.lh-btn:hover, .lh-btn:focus-visible { text-decoration: none; }
.lh-btn:active { transform: scale(0.98); }
.lh-btn--primary { background: var(--action); color: var(--paper); }
.lh-btn--ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.lh-btn--big { min-height: 56px; padding: 14px 28px; font-size: 17px; }
.lh-btn--wide { width: 100%; }
.lh-btn__sub { font-weight: 400; text-transform: none; letter-spacing: 0; opacity: .85; }
.lh-actions { display: flex; flex-direction: column; gap: 12px; align-items: stretch; margin-top: var(--s3); }

/* ---------- nav ---------- */
.lh-nav { position: sticky; top: 0; z-index: 40; background: rgba(11, 11, 12, .86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.lh-nav__row { max-width: 1200px; margin-inline: auto; padding-inline: 16px; display: flex; align-items: center; justify-content: space-between; min-height: var(--nav-h); gap: var(--s3); }
.lh-nav__logo img { height: 30px; width: auto; }
.lh-nav__links { display: none; }
.lh-nav__links a { color: var(--ink); font-weight: 600; font-size: 15px; text-transform: uppercase; letter-spacing: 0.06em; }
.lh-nav__right { display: flex; align-items: center; gap: var(--s2); }
.lh-nav__cta { min-height: 40px; padding: 8px 14px; font-size: 14px; }
.lh-nav__toggle { display: inline-flex; align-items: center; gap: var(--s2); background: transparent; color: var(--ink); border: 1px solid var(--line); border-radius: var(--r); min-height: 40px; padding: 0 12px; font: 600 14px var(--body); text-transform: uppercase; letter-spacing: 0.06em; cursor: pointer; }
.lh-nav__bars { width: 18px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; position: relative; }
.lh-nav__bars::after { content: ""; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid currentColor; }
.lh-menu { position: fixed; inset: 0; z-index: 50; background: var(--paper); padding: var(--s3); display: flex; flex-direction: column; gap: var(--s3); transform: translateX(100%); transition: transform 240ms var(--ease-drawer); }
.lh-menu[data-open="true"] { transform: none; }
.lh-menu__head { display: flex; justify-content: space-between; align-items: center; min-height: var(--nav-h); }
.lh-menu__links { display: flex; flex-direction: column; gap: var(--s1); margin-top: var(--s2); }
.lh-menu__links a { font-family: var(--display); font-size: clamp(40px, 9vw, 56px); font-weight: 700; line-height: 1; color: var(--ink); padding: var(--s2) 0; text-transform: uppercase; }
.lh-menu .lh-btn { margin-top: auto; }
body[data-menu="open"] { overflow: hidden; }

/* ---------- hero (the bill) ---------- */
.lh-hero { position: relative; min-height: calc(100svh - var(--nav-h)); display: flex; align-items: flex-end; background: var(--surface); border-bottom: 1px solid var(--line); overflow: hidden; }
.lh-hero__media { position: absolute; inset: 0; }
.lh-hero__media img, .lh-hero__media video { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.lh-hero__media picture { display: block; height: 100%; }
.lh-hero__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(11,11,12,.96) 0%, rgba(11,11,12,.72) 42%, rgba(11,11,12,.25) 75%, rgba(11,11,12,.15) 100%); }
.lh-hero__bill { position: relative; padding-block: var(--s5) var(--s4); width: 100%; }
.lh-bill__k { color: var(--ink); font-size: clamp(13px, 1.4vw, 17px); letter-spacing: 0.18em; margin-bottom: var(--s2); }
.lh-bill__name { font-size: clamp(52px, 13vw, 132px); line-height: 0.88; margin-bottom: var(--s2); overflow-wrap: anywhere; }
.lh-bill__tour { font-family: var(--display); font-size: 24px; font-weight: 600; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s1); }
.lh-bill__support { font-family: var(--wide); font-size: clamp(13px, 1.3vw, 16px); letter-spacing: 0.06em; line-height: 1.5; color: var(--muted); margin-bottom: var(--s2); }  /* the support line in the same extended face as the presents line (owner, 2026-09-27) */
.lh-bill__support--local span::after { content: " \00b7 "; color: var(--line); }
.lh-bill__support--local span:last-child::after { content: ""; }
.lh-bill__meta { font-size: 17px; margin: var(--s2) 0 0; }
.lh-bill__date { font-family: var(--display); font-weight: 700; font-size: 26px; color: var(--action); text-transform: uppercase; font-variant-numeric: tabular-nums; }
.lh-badge { display: inline-block; background: var(--action); color: var(--paper); font-weight: 600; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; padding: 4px 10px; border-radius: var(--r); margin: var(--s2) 0 0; }
.lh-hero__poster { display: none; }
/* the home hero: the lion badge, still, centered, never stretched (owner's ruling 2026-09-25: the logo, not the animation) */
.lh-hero--logo .lh-hero__media { display: flex; justify-content: center; align-items: flex-start; padding: var(--s3) var(--s3) 0; }
.lh-hero--logo .lh-hero__media picture { height: 42%; width: auto; }             /* the whole badge, lion AND wordmark, fits the screen (owner, 2026-09-27) */
.lh-hero--logo .lh-hero__media img { height: 100%; width: auto; max-width: 92vw; object-fit: contain; }
.lh-hero--logo .lh-hero__scrim { background: linear-gradient(to top, rgba(11,11,12,.97) 0%, rgba(11,11,12,.85) 40%, rgba(11,11,12,.15) 58%, rgba(11,11,12,0) 100%); }

/* ---------- sections ---------- */
.lh-section { padding-block: var(--s5); }
.lh-section + .lh-section { border-top: 1px solid var(--line); }
.lh-section--first { padding-top: var(--s4); }
.lh-section__head { margin-bottom: var(--s4); }
.lh-section__head h2 { margin-bottom: 0; }
.lh-split { display: grid; gap: var(--s4); }
.lh-section--pride { background: var(--surface); border-top: 1px solid var(--line); }
.lh-section--facts { padding-block: var(--s4); }

/* ---------- show cards (artwork dominant, no rounded card) ---------- */
.lh-cards { list-style: none; padding: 0; margin: 0; max-width: none; display: grid; gap: var(--s5); }
.lh-card { border-top: 1px solid var(--line); padding-top: var(--s3); display: grid; gap: var(--s3); }
.lh-card__art { display: block; overflow: hidden; border-radius: var(--r); background: var(--surface); }
.lh-card__art img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; transition: transform 320ms var(--ease-out); }
.lh-card__date { font-family: var(--display); font-weight: 700; color: var(--action); text-transform: uppercase; line-height: 1; margin: 0 0 var(--s2); font-variant-numeric: tabular-nums; }
.lh-card__mon { font-size: 26px; }
.lh-card__day { font-size: 56px; }
.lh-card__dow { font-family: var(--body); font-weight: 400; font-size: 14px; color: var(--muted); text-transform: none; margin-left: var(--s2); }
.lh-card__name { font-size: clamp(32px, 6vw, 44px); line-height: .95; text-transform: uppercase; margin: 0 0 var(--s2); font-weight: 700; }
.lh-card__name a { color: var(--ink); }
.lh-card__support { font-family: var(--wide); font-size: 13px; letter-spacing: 0.06em; line-height: 1.5; color: var(--muted); margin: 0 0 var(--s2); }  /* same face as the bill's support line (owner, 2026-09-27) */
.lh-card__meta { color: var(--muted); margin: 0 0 var(--s1); max-width: none; }
.lh-card .lh-btn { margin-top: var(--s2); align-self: start; justify-self: start; }

/* NEXT UP strip */
.lh-strip { display: flex; max-width: 100%; gap: var(--s2); overflow-x: auto; margin-top: var(--s5); padding-bottom: var(--s2); scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.lh-strip__item { flex: 0 0 auto; scroll-snap-align: start; border: 1px solid var(--line); border-radius: var(--r); padding: 12px 16px; min-width: 200px; color: var(--ink); display: grid; gap: 2px; }
.lh-strip__item:hover { border-color: var(--ink); text-decoration: none; }
.lh-strip__date { font-family: var(--display); font-weight: 700; font-size: 22px; color: var(--action); text-transform: uppercase; }
.lh-strip__name { font-weight: 600; text-transform: uppercase; letter-spacing: .04em; font-size: 15px; }
.lh-strip__room { font-size: 14px; color: var(--muted); }
.lh-strip__item--all { align-content: center; }

/* ---------- cinematic full-bleed section ---------- */
.lh-cine { position: relative; min-height: 80svh; display: flex; align-items: flex-end; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lh-cine__media { position: absolute; inset: 0; }
.lh-cine__media img { width: 100%; height: 100%; object-fit: cover; }
.lh-cine__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(11,11,12,.95) 0%, rgba(11,11,12,.55) 50%, rgba(11,11,12,.2) 100%); }
.lh-cine__body { position: relative; width: 100%; padding-block: var(--s5) var(--s4); }
.lh-cine__body h2 { font-size: clamp(44px, 9vw, 104px); line-height: .9; }

/* ---------- Party With Purpose: HEARTWAVE ---------- */
.lh-purpose { position: relative; overflow: hidden; background: var(--surface); }
.lh-purpose::before { /* HEARTWAVE: one ring, outward, once, when the section comes into view */
  content: ""; position: absolute; left: 50%; top: 50%; width: 60vmax; height: 60vmax; margin: -30vmax 0 0 -30vmax; border-radius: 50%;
  border: 1px solid var(--action); opacity: 0; transform: scale(0.2); pointer-events: none;
}
.lh-purpose.is-inview::before { animation: lh-heartwave 2.4s var(--ease-out) 1 forwards; }
@keyframes lh-heartwave { 0% { opacity: .55; transform: scale(0.2); } 100% { opacity: 0; transform: scale(1.6); } }
.lh-purpose__body { position: relative; }

/* ---------- video figure, past list, culture, rooms, benefits ---------- */
.lh-video { margin: 0 0 var(--s4); }
.lh-video video { width: 100%; background: #000; border-radius: var(--r); aspect-ratio: 16 / 9; }
.lh-video figcaption { font-size: 14px; color: var(--muted); margin-top: var(--s2); }
.lh-trailer { max-width: 420px; }
.lh-past { list-style: none; padding: 0; margin: 0; max-width: none; display: grid; gap: var(--s3); }
.lh-past__item { display: grid; grid-template-columns: 96px 1fr; gap: var(--s3); align-items: center; border-top: 1px solid var(--line); padding-top: var(--s3); }
.lh-past__art img { width: 96px; height: 96px; object-fit: cover; object-position: center top; border-radius: var(--r); }
.lh-past__date { font-size: 14px; color: var(--muted); margin: 0 0 var(--s1); }
.lh-past__name { font-size: 28px; text-transform: uppercase; margin: 0 0 var(--s1); font-weight: 700; }
.lh-past__name a { color: var(--ink); }
.lh-culture { list-style: none; padding: 0; margin: 0; max-width: none; display: grid; gap: 0; }
.lh-culture a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s1) var(--s3); padding: var(--s3) 0; border-top: 1px solid var(--line); color: var(--ink); }
.lh-culture li:last-child a { border-bottom: 1px solid var(--line); }
.lh-culture__k { font-family: var(--display); font-size: 24px; font-weight: 600; text-transform: uppercase; }
.lh-culture__v { color: var(--action); font-weight: 600; }
.lh-rooms { list-style: none; padding: 0; margin: 0; max-width: none; }
.lh-rooms li { display: grid; gap: 2px; padding: var(--s3) 0; border-top: 1px solid var(--line); }
.lh-rooms li:last-child { border-bottom: 1px solid var(--line); }
.lh-rooms strong { font-family: var(--display); font-size: 28px; font-weight: 600; text-transform: uppercase; }
.lh-rooms span { color: var(--muted); }
.lh-benefits { list-style: none; padding: 0; }
.lh-benefits li { padding: var(--s2) 0; border-top: 1px solid var(--line); }
.lh-about__img img { border-radius: var(--r); }

/* ---------- show page pieces ---------- */
.lh-facts { display: grid; gap: var(--s3); margin: 0; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.lh-facts div { border-top: 1px solid var(--line); padding-top: var(--s2); }
.lh-facts dt { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.lh-facts dd { margin: 2px 0 0; font-family: var(--display); font-size: 24px; font-weight: 600; }
.lh-lineup { list-style: none; padding: 0; margin: 0; max-width: none; }
.lh-artist { border-top: 1px solid var(--line); padding: var(--s3) 0; }
.lh-artist h3 { font-size: clamp(30px, 6vw, 48px); text-transform: uppercase; font-weight: 700; margin-bottom: var(--s1); }
.lh-artist:first-child h3 { font-size: clamp(40px, 8vw, 72px); }
.lh-artist__links { display: flex; gap: var(--s3); margin: 0; }
.lh-artist__links:empty { display: none; }
.lh-tiers { list-style: none; padding: 0; display: grid; gap: var(--s3); margin: 0 0 var(--s4); max-width: none; }
.lh-tier { border-top: 1px solid var(--line); padding-top: var(--s2); }
.lh-tier__row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s3); }
.lh-tier__name { font-size: 28px; margin: 0; }
.lh-tier__price { font-family: var(--display); font-size: 36px; font-weight: 700; color: var(--action); margin: 0; }
.lh-tier__state { color: var(--muted); margin: var(--s1) 0 var(--s2); }
.lh-tier.is-soldout .lh-tier__price, .lh-tier.is-soldout .lh-tier__name { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.lh-tier__btn { min-height: 40px; padding: 8px 16px; font-size: 14px; }
.lh-availability { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0 0 var(--s3); max-width: none; }
.lh-availability__item { border: 1px solid var(--line); border-radius: var(--r); padding: 4px 10px; font-size: 14px; font-weight: 600; color: var(--ink); }
.lh-bill__availability { margin-top: var(--s2); }
.lh-promo__code { font: 600 16px var(--body); color: var(--action); background: transparent; border: 1px dashed var(--action); border-radius: var(--r); padding: 2px 8px; cursor: pointer; letter-spacing: .06em; }
.lh-ticket-btn[aria-disabled="true"] { background: transparent; color: var(--muted); border-color: var(--line); cursor: not-allowed; }
.lh-tickets__fallback { font-size: 14px; color: var(--muted); }
.lh-faq details { border-top: 1px solid var(--line); padding: var(--s2) 0; }
.lh-faq details:last-child { border-bottom: 1px solid var(--line); }
.lh-faq summary { font-family: var(--display); font-size: 22px; font-weight: 600; cursor: pointer; padding: var(--s2) 0; list-style: none; display: flex; justify-content: space-between; gap: var(--s3); }
.lh-faq summary::-webkit-details-marker { display: none; }
.lh-faq summary::after { content: "+"; color: var(--action); font-weight: 700; }
.lh-faq details[open] summary::after { content: "\2212"; }
.lh-faq p { margin: 0 0 var(--s2); }
.lh-final { padding-block: var(--s6); background: var(--surface); border-top: 1px solid var(--line); text-align: left; }
.lh-final__lines { font-family: var(--display); font-weight: 700; font-size: clamp(44px, 10vw, 120px); line-height: .9; text-transform: uppercase; margin: 0 0 var(--s4); max-width: none; }
.lh-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: rgba(20,20,22,.94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid var(--line); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: var(--s3); transform: translateY(100%); transition: transform 240ms var(--ease-drawer); }
.lh-sticky.is-on { transform: none; }
.lh-sticky__text { display: grid; line-height: 1.2; min-width: 0; }
.lh-sticky__title { font-family: var(--display); font-weight: 700; font-size: 20px; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lh-sticky__meta { font-size: 14px; color: var(--muted); }
.lh-sticky .lh-btn { flex: 0 0 auto; min-height: 44px; padding: 10px 18px; }
body.has-sticky { padding-bottom: 76px; }

/* ---------- forms ---------- */
.lh-form { max-width: 560px; }
.lh-form__grid { display: grid; gap: var(--s3); }
.lh-field { display: grid; gap: 6px; margin-bottom: var(--s3); }
.lh-field label { font-size: 15px; font-weight: 600; }
.lh-field label small { font-weight: 400; color: var(--muted); }
input[type="text"], input[type="email"], input[type="tel"], select, textarea { width: 100%; min-height: 48px; font-family: var(--body); font-size: 17px; line-height: 1.3; padding: 12px 14px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); }
select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
textarea { min-height: 140px; resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--action); outline-offset: 2px; border-color: var(--action); }
[aria-invalid="true"] { border-color: var(--action); }
.lh-error { color: var(--action); font-size: 14px; }
.lh-error:empty { display: none; }
.lh-genres { border: 0; padding: 0; margin: 0 0 var(--s3); }
.lh-genres legend { font-family: var(--display); font-size: 24px; font-weight: 600; text-transform: uppercase; margin-bottom: var(--s2); }
.lh-genres label { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: var(--r); padding: 8px 12px; margin: 0 6px 6px 0; cursor: pointer; font-size: 15px; }
.lh-genres label:has(input:checked) { border-color: var(--action); color: var(--action); }
.lh-genres input { accent-color: var(--action); width: 16px; height: 16px; margin: 0; }
.lh-consent { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; font-size: 14px; color: var(--muted); margin-bottom: var(--s3); }
.lh-consent input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--action); }
.lh-consent label { font-weight: 400; }
.lh-form__note { font-size: 14px; color: var(--muted); margin-top: var(--s2); }
.lh-form__confirm { border: 1px solid var(--action); border-radius: var(--r); padding: var(--s3); font-weight: 600; }

/* ---------- footer ---------- */
.lh-footer { background: var(--surface); border-top: 1px solid var(--line); padding-block: var(--s5); font-size: 14px; color: var(--muted); }
.lh-footer__top { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s3); }
.lh-footer__top img { height: 48px; width: auto; }
.lh-footer__tag { font-family: var(--display); font-size: 24px; font-weight: 700; text-transform: uppercase; color: var(--ink); margin: 0; }
.lh-footer__links { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s3); margin-bottom: var(--s3); }
.lh-footer__links a { color: var(--ink); }
.lh-footer__legal { font-size: 12px; margin: 0; }

/* ---------- breakpoints ---------- */
@media (min-width: 640px) {
  .lh-cards { grid-template-columns: repeat(2, 1fr); gap: var(--s4); }
  .lh-form__grid { grid-template-columns: 1fr 1fr; }
  .lh-actions { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .lh-btn--wide { width: auto; }
  .lh-past { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
  .lh-wrap, .lh-nav__row { padding-inline: 32px; }
  .lh-section { padding-block: var(--s6); }
  .lh-hero__bill { padding-block: var(--s6) var(--s5); }
  .lh-card { grid-template-columns: 1fr; }
}
@media (min-width: 1024px) {
  .lh-nav__logo img { height: 36px; }
  .lh-nav__links { display: flex; gap: 28px; align-items: center; }
  .lh-nav__toggle { display: none; }
  .lh-nav__cta { min-height: 44px; padding: 10px 18px; font-size: 15px; }
  .lh-cards { grid-template-columns: repeat(3, 1fr); }
  .lh-split { grid-template-columns: 6fr 6fr; align-items: start; gap: var(--s5); }
  .lh-hero__grid { position: relative; display: grid; grid-template-columns: 1fr 380px; gap: var(--s5); align-items: end; width: 100%; padding-block: var(--s6) var(--s5); }
  .lh-hero__grid .lh-hero__bill { padding: 0; }
  .lh-hero--logo .lh-hero__media { align-items: center; padding: var(--s4) 0 var(--s4) 42%; }
  .lh-hero--logo .lh-hero__media picture { height: 100%; width: auto; }
  .lh-hero--logo .lh-hero__media img { max-width: 46vw; }
  .lh-hero--logo .lh-hero__scrim { background: linear-gradient(to right, rgba(11,11,12,.92) 0%, rgba(11,11,12,.8) 40%, rgba(11,11,12,.2) 62%, rgba(11,11,12,0) 100%); }
  .lh-hero__poster { display: block; }
  .lh-hero__poster img { width: 380px; border-radius: var(--r); box-shadow: 0 30px 60px rgba(0,0,0,.6); }
  .lh-sticky { display: none; }
  body.has-sticky { padding-bottom: 0; }
  .lh-facts { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
  .lh-tiers { grid-template-columns: repeat(3, 1fr); }
  .lh-culture { grid-template-columns: 1fr 1fr; column-gap: var(--s5); }
}

/* ---------- motion gates ---------- */
@media (hover: hover) and (pointer: fine) {
  .lh-btn--primary:hover { opacity: 0.92; }
  .lh-btn--ghost:hover { border-color: var(--ink); }
  .lh-nav__links a:hover { color: var(--action); text-decoration: none; }
  .lh-card__art:hover img { transform: scale(1.025); }         /* hover artwork: slight depth */
  .lh-beat:hover, .lh-beat:focus-visible { animation: lh-heartbeat var(--beat) ease-in-out infinite; }  /* hover GET TICKETS: HEARTBEAT */
}
@keyframes lh-heartbeat { 0%, 100% { transform: scale(1); } 14% { transform: scale(1.03); } 28% { transform: scale(1); } 42% { transform: scale(1.02); } 56% { transform: scale(1); } }
/* PORTAL: the show artwork settles from a slight push-in on load. */
.lh-hero--show .lh-portal img { transform: scale(1.06); animation: lh-portal 1.4s var(--ease-out) forwards; }
@keyframes lh-portal { to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .lh-btn { transition: opacity 120ms ease; }
  .lh-btn:active { transform: none; }
  .lh-menu { transition: opacity 200ms ease; transform: none; opacity: 0; pointer-events: none; }
  .lh-menu[data-open="true"] { opacity: 1; pointer-events: auto; }
  .lh-sticky { transition: none; }
  .lh-card__art img { transition: none; }
  .lh-beat:hover, .lh-beat:focus-visible { animation: none; }
  .lh-purpose.is-inview::before { animation: none; opacity: 0; }
  .lh-hero--show .lh-portal img { animation: none; transform: none; }
}
