/* ============================================================
   CINEMATIC PAGE SYSTEM — Home Shows 2026
   ------------------------------------------------------------
   Full-bleed media, library-first photography, Ken Burns,
   chapter panels, horizontal reels, sticky show bar + CTAs.
   Pair with styles.css tokens. See skill: cinematic-page.
   Prefix: .cx-*
   ============================================================ */

/* ── Featured next-show date chip (quiet — no live dots) ── */
.cx-date{
  display:inline-flex;align-items:center;flex-wrap:wrap;gap:.2rem .55rem;
  font-family:var(--font-display);font-weight:600;font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;line-height:1.35;
}
.cx-date--on-dark{color:var(--gold-soft);}
.cx-date--on-dark .cx-date__sep{opacity:.4;color:rgba(255,255,255,.55);}
.cx-date--on-light{color:var(--gold-dark);}
.cx-date--on-light .cx-date__sep{opacity:.4;color:var(--ink);}
.cx-date__sep{margin:0 .05rem;font-weight:500;}
.cx-date b{font-weight:700;letter-spacing:.06em;}

/* Site-wide fixed mobile CTA bar (#hs-scta) fights our own CTAs — hide on cinematic pages */
body.cx-page #hs-scta{display:none !important;}

/* ── Sticky show bar — follows site header theme tokens ── */
.cx-showbar{
  position:sticky;top:0;z-index:80;
  background:var(--header-bg);
  border-bottom:1px solid var(--header-border);
  color:var(--header-text);
}
.cx-showbar__inner{
  max-width:var(--maxw);margin:0 auto;padding:.65rem var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-wrap:nowrap;
}
.cx-showbar__copy{min-width:0;flex:1 1 auto;}
.cx-showbar__label{
  display:block;font-family:var(--font-display);font-weight:600;
  font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:.15rem;
}
.cx-showbar__when{
  font-family:var(--font-display);font-weight:600;font-size:clamp(.8rem,1.4vw,.95rem);
  letter-spacing:.01em;color:var(--header-text);line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cx-showbar__when span{color:var(--header-muted);font-weight:500;}
.cx-showbar__actions{display:flex;flex-wrap:nowrap;gap:.5rem;align-items:center;flex:none;}
.cx-showbar .btn{padding:.72em 1.1em;font-size:.7rem;min-height:44px;display:inline-flex;align-items:center;}
/* Outline secondary adapts to light or dark header chrome */
.cx-showbar .btn-outline{
  border-color:var(--header-toggle-border);color:var(--header-text);background:transparent;
}
.cx-showbar .btn-outline:hover{
  background:var(--header-text);border-color:var(--header-text);color:var(--header-bg);
}

/* ── Section action rows ── */
.cx-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.35rem;}
.cx-actions--center{justify-content:center;}
.cx-actions--end{justify-content:flex-end;}
.cx-actions .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;}

/* Mid-page ticket band */
.cx-band{
  background:var(--cream);border-block:1px solid var(--line);
  padding:clamp(28px,4vw,40px) 0;
}
.cx-band__inner{
  max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:flex;align-items:center;justify-content:space-between;gap:1.25rem 2rem;flex-wrap:wrap;
}
.cx-band__copy{min-width:0;flex:1 1 240px;}
.cx-band__copy h3{
  font-family:var(--font-display);font-weight:700;font-size:clamp(1.15rem,2vw,1.45rem);
  margin:0 0 .35rem;letter-spacing:-.015em;line-height:1.15;color:var(--ink);
}
.cx-band__copy p{margin:0;color:var(--ink-soft);font-size:.95rem;line-height:1.5;}

/* ═══════════════════════════════════════════
   CINEMATIC HERO — locked to device viewport
   Always fits: 100dvh/svh − header − optional chrome.
   Content scales with available height; never forces page scroll.
   ═══════════════════════════════════════════ */
/* Fallback height before JS measures; JS sets --cx-hero-h in px on :root */
:root{
  --cx-hero-h: calc(100svh - var(--hs-header-h, 108px) - var(--cx-chrome-offset, 0px));
}
@supports (height:100dvh){
  :root{
    --cx-hero-h: calc(100dvh - var(--hs-header-h, 108px) - var(--cx-chrome-offset, 0px));
  }
}
.cx-hero{
  position:relative;
  box-sizing:border-box;
  height:var(--cx-hero-h);
  max-height:var(--cx-hero-h);
  min-height:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
  background:#0a0908;
}
/* Full-bleed media always (desktop + phone) */
.cx-hero__media{position:absolute;inset:0;z-index:0;}
.cx-hero__video,.cx-hero__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cx-hero__slide{background-size:cover;background-position:center;opacity:0;transition:opacity 1.1s ease;}
.cx-hero__slide.is-on{opacity:1;}
/* Bottom-weighted scrim: photo stays visible up top, type sits in the fade */
.cx-hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(8,7,6,.25) 0%,
    rgba(8,7,6,.12) 28%,
    rgba(8,7,6,.45) 58%,
    rgba(8,7,6,.82) 82%,
    rgba(8,7,6,.94) 100%);}

.cx-hero__inner{
  position:relative;z-index:3;
  width:100%;max-width:1480px;margin:0 auto;
  flex:0 1 auto;
  min-height:0;max-height:100%;
  display:flex;flex-direction:column;justify-content:flex-end;
  box-sizing:border-box;
  padding:
    clamp(12px, 3.5svh, 40px)
    var(--pad)
    clamp(16px, 3.2svh, 36px);
  overflow:hidden;
}
.cx-hero__plate{display:contents;}

.cx-hero .crumbs{
  font-size:clamp(.62rem,.9svh + .2vw,.72rem);
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);
  font-family:var(--font-display);font-weight:600;
  margin-bottom:clamp(.3rem,1svh,.75rem);opacity:.85;
}
.cx-hero .crumbs a{color:inherit;}
.cx-hero .crumbs a:hover{color:#fff;}
.cx-hero .crumbs span{opacity:.45;margin:0 .45rem;}
.cx-hero__eyebrow{
  display:block;
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(.62rem,.85svh + .15vw,.7rem);
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);
  margin-bottom:clamp(.25rem,.8svh,.55rem);
}
.cx-hero__when{
  margin:0 0 clamp(.45rem,1.1svh,.75rem);
  color:var(--gold-soft);
}
.cx-hero__when .cx-date__sep{color:rgba(255,255,255,.55);}
.cx-hero h1{
  margin:0;max-width:15ch;
  font-size:clamp(1.85rem, 2svh + 3vw, 4.8rem);
  line-height:1.02;letter-spacing:-.025em;font-weight:700;text-wrap:balance;
  text-shadow:0 2px 24px rgba(0,0,0,.45);
  color:#fff;
}
.cx-hero h1 em{font-style:normal;color:var(--gold);}
.cx-hero__lead{
  margin:clamp(.5rem,1.4svh,1.1rem) 0 0;max-width:36em;
  color:rgba(255,255,255,.9);
  font-size:clamp(.9rem,.65svh + .4vw,1.12rem);
  line-height:1.55;
  text-shadow:0 1px 14px rgba(0,0,0,.5);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;
}
.cx-hero__row{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:clamp(.6rem,1.4svh,1.25rem) 1.5rem;
  margin-top:clamp(.75rem,2svh,1.75rem);
}
.cx-hero__actions{display:flex;flex-wrap:wrap;gap:.65rem;}
.cx-hero__actions .btn{
  padding:clamp(.7em,1.2svh,.95em) clamp(1.05em,2vw,1.35em);
  font-size:clamp(.7rem,.9svh + .15vw,.8rem);
  min-height:48px;display:inline-flex;align-items:center;justify-content:center;
}
.cx-hero__stats{display:flex;flex-wrap:wrap;gap:clamp(10px,1.4svh + .8vw,28px);}
.cx-hero__stat b{
  display:block;font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.05rem,1.3svh + .7vw,1.55rem);
  color:var(--gold);line-height:1;letter-spacing:-.02em;
}
.cx-hero__stat span{
  display:block;margin-top:.28rem;font-family:var(--font-display);font-weight:600;
  font-size:clamp(.55rem,.65svh + .12vw,.6rem);
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75);
}

/* Phone intro band — story under the photo, respects light/dark */
.cx-hero-intro{display:none;}

@media (max-height:700px) and (min-width:761px){
  .cx-hero__lead{-webkit-line-clamp:3;}
}
@media (max-height:560px) and (min-width:761px){
  .cx-hero .crumbs{display:none;}
  .cx-hero__lead{-webkit-line-clamp:2;line-height:1.4;}
  .cx-hero__stats{display:none;}
  .cx-hero h1{font-size:clamp(1.55rem, 3svh + 2vw, 2.5rem);}
}
@media (max-height:420px) and (min-width:761px){
  .cx-hero__eyebrow{display:none;}
  .cx-hero__lead{display:none;}
  .cx-hero h1{font-size:clamp(1.35rem, 4.5svh + 1.5vw, 2.1rem);max-width:20ch;}
}

/* Static meta strip — theme surfaces */
.cx-ticker{background:var(--cream);border-block:1px solid var(--line);padding:.7rem var(--pad);}
.cx-ticker__track{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem .7rem;
  max-width:var(--maxw);margin:0 auto;
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(.65rem,1.8vw,.76rem);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);text-align:center;line-height:1.4;
}
.cx-ticker__track i{color:var(--gold-dark);font-style:normal;opacity:.9;font-weight:500;}
.cx-ticker__track .cx-ticker__extra{display:contents;}

/* ═══════════════════════════════════════════
   FULL-BLEED CHAPTERS
   Readability strategy (not “darken everything”):
   1) Lighter full-frame veils so photos stay rich
   2) Local frosted text plate behind copy only
   3) On small screens: split stack (photo band + solid type panel)
   ═══════════════════════════════════════════ */
.cx-chapters{background:var(--black);}
/* Skip layout work for offscreen chapters (helps mobile INP / paint) */
.cx-chapter{
  position:relative;min-height:min(88svh,820px);display:grid;align-items:center;color:#fff;overflow:hidden;
  content-visibility:auto;contain-intrinsic-size:800px;
}
.cx-chapter__bg{position:absolute;inset:0;background-size:cover;background-position:center;}
/* Soft directional wash — plate carries contrast */
.cx-chapter__veil{position:absolute;inset:0;background:linear-gradient(105deg,rgba(8,7,6,.55) 0%,rgba(8,7,6,.25) 48%,rgba(8,7,6,.06) 100%);}
.cx-chapter:nth-child(even) .cx-chapter__veil{background:linear-gradient(-105deg,rgba(8,7,6,.55) 0%,rgba(8,7,6,.25) 48%,rgba(8,7,6,.06) 100%);}
.cx-chapter__inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:clamp(56px,8vw,100px) var(--pad);}
.cx-chapter:nth-child(even) .cx-chapter__inner{margin-left:auto;text-align:right;}
.cx-chapter:nth-child(even) .cx-chapter__copy{margin-left:auto;}
.cx-chapter:nth-child(even) .cx-actions{justify-content:flex-end;}
/* Simple solid plate — no glass blur (cleaner, less “AI”) */
.cx-chapter__copy{
  max-width:32rem;
  padding:clamp(1.15rem,2.2vw,1.65rem) clamp(1.1rem,2vw,1.55rem);
  background:rgba(12,10,8,.82);
  border:1px solid rgba(255,255,255,.08);
}
.cx-chapter__n{display:inline-block;font-family:var(--font-display);font-weight:600;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:.85rem;}
.cx-chapter h2{margin:0;font-size:clamp(1.85rem,4vw,3.1rem);line-height:1.08;letter-spacing:-.02em;text-wrap:balance;color:#fff;}
.cx-chapter p{margin:1rem 0 0;color:#e9e3d6;font-size:clamp(.98rem,1.2vw,1.1rem);line-height:1.6;}
.cx-chapter__tag{display:inline-block;margin-top:1rem;font-family:var(--font-display);font-weight:600;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);border-bottom:1px solid rgba(232,184,78,.4);padding-bottom:.3rem;}
.cx-chapter .cx-actions{margin-top:1.4rem;}

/* ═══════════════════════════════════════════
   THREE REASONS / icon strip
   ═══════════════════════════════════════════ */
.cx-reasons{background:var(--charcoal);border-block:1px solid rgba(255,255,255,.06);padding:clamp(48px,6vw,80px) 0;}
.cx-reasons__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);}
.cx-reasons__item{position:relative;padding:clamp(8px,1vw,12px) 0;}
.cx-reasons__item + .cx-reasons__item{border-left:1px solid rgba(255,255,255,.1);padding-left:clamp(20px,3vw,40px);}
.cx-reasons .icon-tile{background:rgba(232,184,78,.12);color:var(--gold);margin-bottom:1.1rem;}
.cx-reasons h3{color:#fff;font-size:1.25rem;margin:0 0 .55rem;}
.cx-reasons p{margin:0;color:#cfc9bd;font-size:.97rem;line-height:1.55;}
.cx-reasons__foot{margin-top:clamp(28px,4vw,40px);padding-top:clamp(22px,3vw,32px);border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;}
.cx-reasons__foot .cx-date{color:var(--gold-soft);}
.cx-reasons__foot .cx-date .cx-date__sep{color:rgba(255,255,255,.45);}

/* ═══════════════════════════════════════════
   PERFECT DAY + horizontal reel
   ═══════════════════════════════════════════ */
.cx-day{background:var(--page);padding-block:clamp(56px,8vw,110px);overflow:hidden;}
.cx-day__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,56px);align-items:end;margin-bottom:clamp(28px,4vw,48px);}
.cx-day__head h2{margin-top:.5rem;}
.cx-day__head p{color:var(--ink-soft);margin:0;}
.cx-day__list{list-style:none;padding:0;margin:1.15rem 0 0;display:grid;gap:.7rem;}
.cx-day__list li{display:flex;align-items:flex-start;gap:.65rem;color:var(--ink-soft);font-size:.97rem;line-height:1.4;}
.cx-day__list svg{flex:none;color:var(--gold-dark);margin-top:.15rem;}

.cx-reel{position:relative;margin-inline:calc(50% - 50vw);width:100vw;}
.cx-reel__track{display:flex;gap:14px;padding:0 var(--pad) 8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gold) transparent;-webkit-overflow-scrolling:touch;}
.cx-reel__track::-webkit-scrollbar{height:6px;}
.cx-reel__track::-webkit-scrollbar-thumb{background:var(--gold);}
.cx-reel__card{position:relative;flex:0 0 min(78vw,420px);aspect-ratio:3/4;scroll-snap-align:start;overflow:hidden;background:#14110c;isolation:isolate;}
.cx-reel__card:first-child{margin-left:max(0px,calc((100vw - min(1240px,100vw - 2 * var(--pad))) / 2));}
.cx-reel__card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s ease;}
@media (hover:hover) and (pointer:fine){
  .cx-reel__card:hover img{transform:scale(1.04);}
}
/* Taller caption veil + local plate so body text stays crisp on busy photos */
.cx-reel__card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 22%,rgba(6,5,4,.55) 55%,rgba(6,5,4,.94) 100%);z-index:1;}
.cx-reel__cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,2.4vw,28px);z-index:2;color:#fff;}
.cx-reel__cap .tag{display:inline-block;font-family:var(--font-display);font-weight:600;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);background:rgba(12,10,8,.55);border:1px solid rgba(232,184,78,.45);padding:.32em .7em;margin-bottom:.65rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.cx-reel__cap h3{font-family:var(--font-display);font-weight:700;font-size:clamp(1.25rem,2vw,1.55rem);margin:0;line-height:1.12;color:#fff;
  text-shadow:0 1px 0 rgba(0,0,0,.35),0 4px 18px rgba(0,0,0,.55);}
.cx-reel__cap p{margin:.45rem 0 0;font-size:.92rem;line-height:1.45;color:#f2ece2;
  text-shadow:0 1px 8px rgba(0,0,0,.55);}
.cx-reel__hint{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--maxw);margin:1.1rem auto 0;padding:0 var(--pad);font-family:var(--font-display);font-weight:600;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.cx-reel__nav{display:flex;gap:.5rem;}
.cx-reel__nav button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:.2s;}
.cx-reel__nav button:hover{border-color:var(--gold-dark);color:var(--gold-dark);}
.cx-reel__nav button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* ═══════════════════════════════════════════
   MEDIA FEED
   Mobile: vertical full-viewport snap (TikTok-like)
   Tablet/Desktop: horizontal carousel (swipe L/R)
   ═══════════════════════════════════════════ */
.cx-feed{
  background:#0a0908;
  color:#fff;
  overflow:hidden;
}
.cx-feed__head{
  padding:clamp(28px,5vw,48px) var(--pad) clamp(12px,2vw,20px);
  max-width:var(--maxw);margin:0 auto;text-align:center;
  position:relative;
}
.cx-feed__head .eyebrow{color:var(--gold-soft);}
.cx-feed__head h2{margin:.4rem 0 0;color:#fff;}
.cx-feed__sub{margin:.65rem auto 0;max-width:36em;color:rgba(255,255,255,.72);font-size:.98rem;}
.cx-feed__nav{
  display:none;
  gap:.55rem;justify-content:center;margin-top:1.1rem;
}
.cx-feed__nav-btn{
  width:46px;height:46px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);
  color:#fff;cursor:pointer;transition:.2s;
}
.cx-feed__nav-btn:hover{border-color:var(--gold);color:var(--gold);}
.cx-feed__nav-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.cx-feed__scroller{width:100%;}
.cx-feed__list{display:flex;flex-direction:column;}
.cx-feed__card{
  position:relative;
  width:100%;
  min-height:100svh;
  height:100svh;
  overflow:hidden;
  background:#0a0908;
  isolation:isolate;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  content-visibility:auto;
  contain-intrinsic-size:100svh;
  flex:none;
}
@supports (height:100dvh){
  .cx-feed__card{min-height:100dvh;height:100dvh;}
}
.cx-feed__media{position:absolute;inset:0;z-index:0;}
.cx-feed__media img,
.cx-feed__media video{
  width:100%;height:100%;object-fit:cover;object-position:center;display:block;background:#111;
}
.cx-feed__veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,transparent 28%,transparent 48%,rgba(0,0,0,.55) 72%,rgba(0,0,0,.88) 100%);
}
.cx-feed__meta{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(16px,3vw,28px) var(--pad) clamp(22px,4vw,36px);
  max-width:560px;
}
.cx-feed__tag{
  display:inline-block;
  font-family:var(--font-display);font-weight:600;
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);
  border:1px solid rgba(232,184,78,.45);
  background:rgba(0,0,0,.35);
  padding:.32em .7em;margin-bottom:.65rem;
}
.cx-feed__meta h3{
  margin:0;
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.25rem,3.5vw,1.65rem);
  line-height:1.15;color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}
.cx-feed__meta p{
  margin:.4rem 0 0;
  font-size:.95rem;line-height:1.45;
  color:rgba(255,255,255,.88);
  max-width:32em;
}
.cx-feed__actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem;}
.cx-feed__actions .btn{min-height:44px;}
.cx-feed__mute{
  position:absolute;top:clamp(12px,2vw,20px);right:var(--pad);z-index:3;
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(0,0,0,.45);color:#fff;
  display:grid;place-items:center;cursor:pointer;padding:0;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  transition:border-color .2s,background .2s;
}
.cx-feed__mute:hover{border-color:var(--gold);background:rgba(0,0,0,.6);}
.cx-feed__mute:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.cx-feed__mute svg{display:block;}
.cx-feed__mute .icon-unmute{display:none;}
.cx-feed__mute.is-unmuted .icon-mute{display:none;}
.cx-feed__mute.is-unmuted .icon-unmute{display:block;}
.cx-feed__hint{
  text-align:center;padding:1rem var(--pad) 1.4rem;
  font-family:var(--font-display);font-weight:600;
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.cx-feed__hint--desk{display:none;}

/* Tablet + desktop: horizontal carousel */
@media (min-width:761px){
  /* No “keep scrolling” headline/copy on desktop — carousel speaks for itself */
  .cx-feed__head{
    display:flex;justify-content:flex-end;align-items:center;
    padding:clamp(20px,3vw,32px) var(--pad) 1rem;
    max-width:none;
  }
  .cx-feed__head .eyebrow,
  .cx-feed__head h2,
  .cx-feed__sub{display:none;}
  .cx-feed__nav{display:flex;margin:0;}
  .cx-feed__scroller{
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:var(--pad);
    scrollbar-width:thin;
    scrollbar-color:var(--gold) transparent;
  }
  .cx-feed__scroller::-webkit-scrollbar{height:6px;}
  .cx-feed__scroller::-webkit-scrollbar-thumb{background:var(--gold);}
  .cx-feed__list{
    display:flex;
    flex-direction:row;
    gap:14px;
    width:max-content;
    padding:0 var(--pad) clamp(36px,5vw,56px);
  }
  .cx-feed__card{
    flex:0 0 min(340px, 38vw);
    width:min(340px, 38vw);
    height:min(72vh, 620px);
    min-height:0;
    aspect-ratio:9/16;
    max-height:min(72vh, 620px);
    content-visibility:visible;
    contain-intrinsic-size:auto;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .cx-feed__meta{padding:1.15rem 1.15rem 1.25rem;max-width:none;}
  .cx-feed__meta h3{font-size:1.2rem;}
  .cx-feed__meta p{font-size:.9rem;}
  .cx-feed__hint--mobile{display:none;}
  .cx-feed__hint--desk{display:block;padding-top:0;}
}
@media (min-width:1100px){
  .cx-feed__card{
    flex-basis:min(380px, 28vw);
    width:min(380px, 28vw);
  }
}

/* Pro lane helpers */
.cx-pro .pro-grid{margin-top:.25rem;}
.cx-pro__date{margin-top:.85rem;justify-content:center;}

/* Categories */
.cx-cats{padding-block:clamp(56px,8vw,104px);}
.cx-cats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.cx-cat{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#14110c;color:#fff;text-decoration:none;isolation:isolate;}
.cx-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s ease,filter .5s ease;filter:brightness(.78);}
.cx-cat:hover img{filter:brightness(.95);}
@media (hover:hover) and (pointer:fine){
  .cx-cat:hover img{transform:scale(1.04);}
}
.cx-cat::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 25%,rgba(6,5,4,.92));z-index:1;transition:background .4s;}
.cx-cat:hover::after{background:linear-gradient(transparent 10%,rgba(6,5,4,.88));}
.cx-cat__body{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,2.2vw,26px);z-index:2;}
.cx-cat__body h3{font-family:var(--font-display);font-weight:700;font-size:clamp(1.15rem,1.8vw,1.4rem);margin:0 0 .4rem;line-height:1.15;color:#fff;}
.cx-cat__body p{margin:0;color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.4;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s ease,opacity .35s ease,margin .35s;}
.cx-cat:hover .cx-cat__body p,.cx-cat:focus-visible .cx-cat__body p{max-height:5em;opacity:1;margin-top:.35rem;}
.cx-cat__body .line{display:block;width:28px;height:2px;background:var(--gold);margin-bottom:.75rem;transition:width .35s;}
.cx-cat:hover .cx-cat__body .line{width:48px;}
.cx-cats__foot{margin-top:clamp(28px,4vw,40px);text-align:center;}

/* Final CTA */
.cx-cta{position:relative;overflow:hidden;text-align:center;padding-block:clamp(72px,10vw,120px);background:var(--black);color:#fff;}
.cx-cta__bg{position:absolute;inset:0;background:center/cover no-repeat;opacity:.28;}
.cx-cta__veil{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(14,13,11,.35) 0%,rgba(14,13,11,.92) 70%);}
.cx-cta .container{position:relative;z-index:2;max-width:720px;}
.cx-cta h2{margin:0;}
.cx-cta p{margin:1.15rem auto 0;color:#cfc9bd;max-width:36em;}
.cx-cta .cx-date{justify-content:center;margin-top:1rem;}
.cx-cta .cx-actions{margin-top:1.85rem;}

/* Soft fade-in only (no bounce / staged delays) */
.cx-reveal{opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease;}
.cx-reveal.is-in{opacity:1;transform:none;}
.cx-reveal-d1,.cx-reveal-d2,.cx-reveal-d3{transition-delay:0s;}

/* ── Responsive ── */
@media(max-width:1024px){
  .cx-day__head{grid-template-columns:1fr;}
  .cx-cats__grid{grid-template-columns:repeat(2,1fr);}
  .cx-chapter{min-height:min(72svh,640px);}
  .cx-hero h1{max-width:none;}
}
@media(max-width:760px){
  .cx-reasons__grid{grid-template-columns:1fr;gap:1.6rem;}
  .cx-reasons__item + .cx-reasons__item{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.1);padding-top:1.6rem;}

  /*
    Phone hero = full-bleed photo again (what worked emotionally)
    ATF stays lean: date + headline + Buy Tickets on a bottom gradient.
    Long copy / stats / secondary live in .cx-hero-intro (theme-aware).
  */
  .cx-hero{
    display:flex;
    justify-content:flex-end;
    background:#0a0908;
  }
  .cx-hero__media{
    position:absolute;
    inset:0;
    height:auto;
  }
  .cx-hero__scrim{
    background:linear-gradient(180deg,
      rgba(8,7,6,.15) 0%,
      rgba(8,7,6,.08) 35%,
      rgba(8,7,6,.5) 62%,
      rgba(8,7,6,.88) 100%);
  }
  .cx-hero__inner{
    position:relative;
    width:100%;
    max-width:none;
    margin:0;
    padding:0 var(--pad) max(16px, env(safe-area-inset-bottom, 0px));
    padding-bottom:clamp(18px, 3.5svh, 28px);
    background:transparent;
    border:0;
    overflow:visible;
  }
  .cx-hero__plate{
    display:block;
    background:transparent;
    border:0;
    box-shadow:none;
    color:#fff;
    padding:0;
  }
  .cx-hero .crumbs,
  .cx-hero__eyebrow,
  .cx-hero__lead,
  .cx-hero__stats,
  .cx-hero__secondary{display:none !important;}
  .cx-hero__when{
    margin:0 0 .55rem;
    font-size:.68rem;
    color:var(--gold-soft);
  }
  .cx-hero h1{
    max-width:12ch;
    color:#fff;
    font-size:clamp(1.85rem, 5.8vw + 1.2svh, 2.55rem);
    line-height:1.05;
    text-shadow:0 2px 28px rgba(0,0,0,.55);
  }
  .cx-hero h1 em{color:var(--gold);}
  .cx-hero__row{margin-top:1.1rem;gap:0;}
  .cx-hero__actions{width:100%;}
  .cx-hero__actions .btn-gold{
    width:100%;
    min-height:50px;
    justify-content:center;
    font-size:.78rem;
    position:relative;
    z-index:5;
  }
  /* Soft page snap for feed cards (TikTok-like), proximity so other sections stay natural */
  body.cx-page{
    scroll-snap-type:y proximity;
  }
  body.cx-page .cx-hero,
  body.cx-page .cx-feed__card{
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  /* Account for sticky header when snapping feed cards */
  body.cx-page .cx-feed__card{
    height:calc(100svh - var(--hs-header-h, 0px));
    min-height:calc(100svh - var(--hs-header-h, 0px));
  }
  @supports (height:100dvh){
    body.cx-page .cx-feed__card{
      height:calc(100dvh - var(--hs-header-h, 0px));
      min-height:calc(100dvh - var(--hs-header-h, 0px));
    }
  }

  /* Theme-aware story band — first thing under the photo */
  .cx-hero-intro{
    display:block;
    background:var(--page);
    color:var(--ink);
    border-bottom:1px solid var(--line);
    padding:clamp(1.35rem,4.5vw,1.85rem) 0;
  }
  .cx-hero-intro__inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 var(--pad);
  }
  .cx-hero-intro__lead{
    margin:0;
    font-size:1.02rem;
    line-height:1.6;
    color:var(--ink-soft);
  }
  .cx-hero-intro__stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:.75rem .5rem;
    margin:1.25rem 0 0;
    padding-top:1.15rem;
    border-top:1px solid var(--line);
  }
  .cx-hero-intro__stats b{
    display:block;
    font-family:var(--font-display);
    font-weight:700;
    font-size:1.15rem;
    color:var(--gold-dark);
    line-height:1;
  }
  .cx-hero-intro__stats span{
    display:block;
    margin-top:.3rem;
    font-family:var(--font-display);
    font-weight:600;
    font-size:.58rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .cx-hero-intro .cx-actions{margin-top:1.2rem;}
  .cx-hero-intro .cx-actions .btn{width:100%;min-height:48px;}

  /* Sticky bar: primary only on small phones */
  .cx-showbar__inner{flex-wrap:nowrap;gap:.65rem;}
  .cx-showbar__when span{display:none;} /* date + city only */
  .cx-showbar__actions .btn-outline{display:none;}
  .cx-showbar__actions .btn-gold{min-width:7.5rem;}

  /* Ticker: one quiet line on phones */
  .cx-ticker{padding:.65rem var(--pad);}
  .cx-ticker__track{justify-content:flex-start;gap:.4rem .55rem;font-size:.62rem;letter-spacing:.08em;}
  .cx-ticker__extra{display:none !important;}

  .cx-reel__card{flex-basis:min(78vw,300px);aspect-ratio:3/4;}
  .cx-reel__card:first-child{margin-left:0;}
  .cx-reel__hint{padding-inline:var(--pad);}

  /*
    Chapters on mobile: split stack
    Photo band on top (full color, almost no wash)
    Solid type panel below — guaranteed AA contrast
  */
  .cx-chapter{
    min-height:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .cx-chapter__bg{
    position:relative;
    inset:auto;
    width:100%;
    height:clamp(210px,52vw,300px);
    flex:none;
  }
  .cx-chapter__veil{
    position:absolute;
    inset:auto;
    top:0;left:0;right:0;
    height:clamp(210px,52vw,300px);
    background:linear-gradient(180deg,transparent 45%,rgba(8,7,6,.45) 100%) !important;
  }
  .cx-chapter__inner{
    position:relative;
    margin:0;
    max-width:none;
    padding:0;
    background:var(--page);
    color:var(--ink);
    border-top:1px solid var(--line);
    text-align:left !important;
  }
  .cx-chapter:nth-child(even) .cx-chapter__inner{margin-left:0;text-align:left;}
  .cx-chapter__copy,
  .cx-chapter:nth-child(even) .cx-chapter__copy{
    max-width:none;
    margin:0;
    padding:clamp(1.35rem,5vw,1.75rem) var(--pad) clamp(1.6rem,5vw,2rem);
    background:transparent;
    border:0;
  }
  .cx-chapter:nth-child(even) .cx-actions{justify-content:flex-start;}
  .cx-chapter__n{color:var(--gold-dark);}
  .cx-chapter h2{text-shadow:none;color:var(--ink);}
  .cx-chapter p{color:var(--ink-soft);}
  .cx-chapter__tag{color:var(--gold-dark);border-bottom-color:rgba(168,124,26,.4);}
  html[data-theme="dark"] .cx-chapter__tag{border-bottom-color:rgba(232,184,78,.4);}
  .cx-chapter .cx-actions .btn{width:100%;justify-content:center;}
  /* Chapter secondary outline on theme surface (not white-on-dark) */
  .cx-chapter .btn-outline{
    border-color:rgba(20,18,14,.35);color:var(--ink);background:transparent;
  }
  .cx-chapter .btn-outline:hover{background:var(--ink);border-color:var(--ink);color:var(--page);}
  html[data-theme="dark"] .cx-chapter .btn-outline{
    border-color:rgba(255,255,255,.35);color:var(--ink);
  }
  html[data-theme="dark"] .cx-chapter .btn-outline:hover{
    background:var(--ink);border-color:var(--ink);color:var(--page);
  }

  .cx-band__inner{flex-direction:column;align-items:stretch;text-align:left;gap:1rem;}
  .cx-band__inner .cx-actions{justify-content:stretch;width:100%;}
  .cx-band__inner .cx-actions .btn{flex:1;justify-content:center;width:100%;}
  .cx-band__inner .cx-actions .btn-outline-dark{display:none;} /* one clear action on phone */
  .cx-reasons__foot{flex-direction:column;align-items:stretch;text-align:left;gap:1rem;}
  .cx-reasons__foot .cx-actions{justify-content:stretch;}
  .cx-reasons__foot .cx-actions .btn{flex:1;justify-content:center;width:100%;}
  .cx-reasons__foot .cx-actions .btn-outline{display:none;}
  .cx-cta .cx-actions{flex-direction:column;width:100%;}
  .cx-cta .cx-actions .btn{width:100%;justify-content:center;}
  .cx-cats__foot .cx-actions{flex-direction:column;}
  .cx-cats__foot .cx-actions .btn{width:100%;justify-content:center;}
  .cx-cats__foot .cx-actions .btn-outline-dark{display:none;}
  .cx-day .cx-actions{flex-direction:column;}
  .cx-day .cx-actions .btn{width:100%;justify-content:center;}
  .cx-strip__cta .btn-outline{display:none;}
  .cx-pro .cx-actions{flex-direction:column;width:100%;}
  .cx-pro .cx-actions .btn{width:100%;}
  .cx-pro .cx-actions .btn-outline{display:none;}
}
@media(max-width:540px){
  .cx-cats__grid{grid-template-columns:1fr;gap:8px;}
  .cx-cat{aspect-ratio:16/10;}
  .cx-cat__body p{max-height:5em;opacity:1;margin-top:.3rem;font-size:.88rem;}
  .cx-hero h1{font-size:clamp(1.75rem, 7vw, 2.25rem);max-width:11ch;}
  .cx-date{font-size:.62rem;letter-spacing:.06em;}
  .cx-hero-intro__stats{grid-template-columns:repeat(2,1fr);gap:1rem .75rem;}
  .cx-chapter__bg,.cx-chapter__veil{height:clamp(180px,46vw,240px);}
  .cx-chapter h2{font-size:clamp(1.55rem,6.5vw,1.95rem);}
  .cx-reasons{padding:clamp(36px,8vw,52px) 0;}
  .cx-day{padding-block:clamp(40px,8vw,64px);}
}
@media (max-width:960px) and (orientation:landscape) and (max-height:500px){
  .cx-hero h1{font-size:1.45rem;max-width:20ch;}
  .cx-hero__when{margin-bottom:.35rem;}
  .cx-hero__row{margin-top:.65rem;}
  .cx-hero__actions .btn-gold{min-height:42px;}
}
/* Desktop: intro band is redundant (lead already in hero) */
@media (min-width:761px){
  .cx-hero-intro{display:none !important;}
}
@media(prefers-reduced-motion:reduce){
  .cx-hero__slide,.cx-reveal,.cx-chapter__bg,.cx-cat img,.cx-reel__card img{transition:none !important;animation:none !important;}
  .cx-reveal{opacity:1;transform:none;}
  .cx-chapter__bg{transform:none;}
}

/* Account for site header when sticky bar sits below it on some layouts */
body.cx-page .cx-showbar{top:0;}
