/* ============================================================
   Commonwealth Lyric Theater — Home Page
   ------------------------------------------------------------
   Page-specific Webflow combo-class layer. In the Webflow-ready HTML export,
   this follows the unified design system inside one annotated style block.
   ============================================================ */

/* Page-specific tokens (shared system supplies palette, typography,
   spacing, elevation, motion, and texture tokens). */
:root {
  --pin-multiplier: 5;
  --z-base: 1;
  --z-card: 2;
  --z-nav:  90;
  --z-modal: 9999;
  --glow-cool: 0 0 24px rgb(var(--clt-smoke-blue-rgb) / 0.30);
  --ease-in: cubic-bezier(0.4, 0, 0.2, 1);
  --line-brass-strong: rgb(var(--clt-brass-rgb) / 0.62);
}

/* Page-specific body background and root stacking */
body {
  background:
    radial-gradient(ellipse 60% 38% at 14% 8%, rgb(var(--clt-brass-rgb) / 0.06) 0%, transparent 50%),
    radial-gradient(ellipse 50% 36% at 84% 10%, rgb(var(--clt-plum-rgb) / 0.45) 0%, transparent 52%),
    radial-gradient(ellipse 50% 36% at 48% 38%, rgb(var(--clt-linen-rgb) / 0.04) 0%, transparent 50%),
    radial-gradient(ellipse 38vw 28vw at 70% 78%, rgb(var(--clt-slate-rgb) / 0.18), transparent 55%),
    linear-gradient(180deg, var(--clt-pitch) 0%, var(--clt-night) 35%, var(--clt-charcoal) 65%, var(--clt-void) 100%);
}

.clt-page {
  position: relative;
  z-index: 1;
  isolation: isolate;
}

/* Webflow export note: fixed nav prevents the navbar shell from creating
   a visible pre-hero row while preserving the existing navbar structure. */
.clt-navbar-shell {
  position: fixed;
  left: 0;
  right: 0;
  z-index: var(--z-nav);
  pointer-events: none;
}

.clt-navbar {
  pointer-events: auto;
}
/* ============================================================
   3. SKIP LINK (a11y)
   ============================================================ */
.clt-home-skip-link {
  position: fixed;
  left: 16px;
  top: 14px;
  z-index: var(--z-modal);
  transform: translateY(-160%);
  padding: 0.7rem 1rem;
  border-radius: var(--r-button);
  background: var(--clt-linen-300);
  color: #15110d;
  font-weight: 600;
  box-shadow: var(--shadow-raise);
  transition: transform var(--dur-fast) var(--ease);
}
.clt-home-skip-link:focus {
  transform: translateY(0);
  outline: 2px solid var(--clt-brass-200);
  outline-offset: 3px;
}

/* ============================================================
   4. AMBIENT BACKDROP
   Each bloom is isolated to its own zone.
   Brass bloom and ink bloom NEVER overlap geometrically — they
   live on opposite ends of the viewport. Plum sits between them.
   ============================================================ */
body > .clt-home-ambient {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
}
.clt-home-ambient.bloom {
  position: absolute;
  border-radius: 50%;
  filter: blur(140px);
}
.clt-home-ambient.bloom.brass {
  /* warm zone: top-left only */
  top: -16%;
  left: -14%;
  width: 44vw;
  height: 44vw;
  max-width: 760px;
  max-height: 760px;
  background: radial-gradient(circle, rgb(var(--clt-brass-rgb) / 0.22) 0%, rgb(var(--clt-brass-rgb) / 0.10) 36%, transparent 68%);
  opacity: 0.42;
  animation: bloom-drift-a 28s ease-in-out infinite alternate;
}
.clt-home-ambient.bloom.plum {
  /* center buffer */
  top: 22%;
  left: 32%;
  width: 50vw;
  height: 50vw;
  max-width: 720px;
  max-height: 720px;
  background: radial-gradient(circle, rgb(var(--clt-plum-rgb) / 0.34) 0%, rgb(var(--clt-plum-rgb) / 0.18) 40%, transparent 70%);
  animation: bloom-drift-b 33s ease-in-out infinite alternate;
}
.clt-home-ambient.bloom.ink {
  /* cool zone: bottom-right only — far from brass */
  bottom: -14%;
  right: -10%;
  width: 50vw;
  height: 50vw;
  max-width: 700px;
  max-height: 700px;
  background: radial-gradient(circle, rgb(var(--clt-ink-rgb) / 0.42) 0%, rgb(var(--clt-ink-rgb) / 0.16) 42%, transparent 70%);
  opacity: 0.5;
  animation: bloom-drift-c 38s ease-in-out infinite alternate;
}
.clt-home-ambient.grain {
  position: absolute;
  inset: 0;
  background-image: var(--tex-noise);
  background-size: 260px 260px;
  opacity: 0.5;
  mix-blend-mode: overlay;
}
.clt-home-ambient.vignette {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, transparent 48%, rgb(0 0 0 / 0.62) 100%),
    linear-gradient(180deg, transparent 0%, rgb(0 0 0 / 0.36) 100%);
}
@keyframes bloom-drift-a {
  0%   { transform: translate3d(0, 0, 0); opacity: 0.5; }
  100% { transform: translate3d(48px, 32px, 0); opacity: 0.7; }
}
@keyframes bloom-drift-b {
  0%   { transform: translate3d(0, 0, 0); opacity: 0.55; }
  100% { transform: translate3d(-30px, 20px, 0); opacity: 0.7; }
}
@keyframes bloom-drift-c {
  0%   { transform: translate3d(0, 0, 0); opacity: 0.4; }
  100% { transform: translate3d(-20px, -28px, 0); opacity: 0.55; }
}

@media (prefers-reduced-motion: reduce) {
  .clt-home-ambient.bloom { animation: none; }
}

/* Eyebrow two-bar variant — suppress ::before since we use explicit clt-eyebrow__bar spans */
.clt-eyebrow::before { display: none; }
.clt-eyebrow__bar {
  width: 38px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--clt-brass-300) 30%, var(--clt-brass-300) 70%, transparent);
  box-shadow: 0 0 14px rgb(var(--clt-brass-rgb) / 0.42);
}

/* Page-specific heading emphasis glow */
h1 em, h2 em {
  font-style: italic;
  font-weight: 500;
  color: var(--accent);
  text-shadow: var(--glow-brass);
}

/* ============================================================
   11. HERO — pinned frame-sequence scrollytelling
   ============================================================ */

/* Wrapper provides 3× viewport of clt-home-scroll distance; clt-home-hero sticks inside it */
.clt-home-hero-pin-wrapper {
  position: relative;
  height: calc(var(--pin-multiplier) * 100vh);
}

section.clt-home-hero {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 100vh;
  overflow: hidden;
  padding: 0;
}

/* Canvas fills the full clt-home-hero viewport */
.clt-home-hero.canvas-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.clt-home-hero.canvas {
  width: 100%;
  height: 100%;
  display: block;
}

/* Title reveal overlay — hidden until GSAP shows it */
.clt-home-hero.reveal {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s-3);
  text-align: center;
  pointer-events: none;
}
.clt-home-hero.reveal-line {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(3rem, 8vw, 7.2rem);
  font-weight: 500;
  color: var(--text-bright);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  opacity: 0;
  transform: translateY(40px);
  will-change: transform, opacity;
}
.clt-home-hero.reveal-line.presents {
  font-family: var(--font-body);
  font-weight: 600;
  font-style: normal;
  font-size: clamp(1.1rem, 1.8vw, 1.6rem);
  letter-spacing: 0.06em;
  color: var(--accent);
}
.clt-home-hero.reveal-eyebrow {
  opacity: 0;
  transform: translateY(20px);
  will-change: transform, opacity;
}
.clt-home-hero.reveal-cta {
  opacity: 0;
  transform: translateY(20px);
  will-change: transform, opacity;
  pointer-events: none;
}
.clt-home-hero.reveal-cta .clt-button__text {
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.06em;
  transition: text-shadow 0.3s var(--ease);
}
.clt-home-hero.reveal-cta:hover .clt-button__text {
  text-shadow: var(--glow-letter);
}
.clt-home-hero.reveal-cta:active .clt-button__text {
  text-shadow: 0 0 4px rgb(var(--clt-brass-rgb) / 0.15);
}
/* ============================================================
   12. MARQUEE / ACCLAIM
   ============================================================ */
section.clt-home-marquee {
  position: relative;
  margin: clamp(18px, 3vw, 32px) clamp(14px, 3vw, 30px);
  border-radius: var(--r-card);
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.12);
  background:
    var(--tex-noise),
    var(--tex-noise),
    var(--tex-weave),
    radial-gradient(ellipse 40% 80% at 6% 50%, rgb(var(--clt-brass-rgb) / 0.10), transparent 55%),
    radial-gradient(ellipse 40% 80% at 94% 50%, rgb(var(--clt-plum-rgb) / 0.34), transparent 55%),
    linear-gradient(180deg, rgb(28 26 24 / 0.92), rgb(12 11 10 / 0.96));
  background-size: 260px 260px, 4px 4px, auto, auto, auto, auto;
  background-blend-mode: overlay, overlay, normal, normal, normal, normal;
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.07),
    inset 0 -1px 0 rgb(0 0 0 / 0.62),
    0 22px 56px rgb(0 0 0 / 0.42);
  overflow: hidden;
}
section.clt-home-marquee:not(.inner):not(.heading):not(.viewport):not(.track):not(.set)::after {
  /* faint warm hairline along the top */
  content: "";
  position: absolute;
  top: 1px;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.42), transparent);
  pointer-events: none;
}
.clt-home-marquee.inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 4vw, 56px);
  padding: clamp(18px, 2.4vw, 28px) clamp(20px, 3vw, 44px);
}
.clt-home-marquee.heading {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.6rem, 2.4vw, 2.4rem);
  color: var(--clt-brass-200);
  letter-spacing: 0.01em;
  margin: 0;
  text-shadow: 0 0 22px rgb(var(--clt-brass-rgb) / 0.24);
}

.clt-home-marquee.viewport {
  position: relative;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.clt-home-marquee.track {
  display: flex;
  width: max-content;
  animation: marquee-roll 48s linear infinite;
}
.clt-home-marquee.set {
  display: inline-flex;
  align-items: center;
  gap: clamp(20px, 3vw, 56px);
  padding-right: clamp(20px, 3vw, 56px);
  white-space: nowrap;
}
@keyframes marquee-roll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .clt-home-marquee.track { animation: none; }
}
.clt-home-marquee:hover .clt-home-marquee.track { animation-play-state: paused; }

.clt-home-quote-block {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}
.clt-home-quote-block.line {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.05rem, 1.4vw, 1.45rem);
  color: var(--clt-linen-200);
  font-weight: 500;
}
.clt-home-quote-block.source {
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}
.clt-home-quote-block.star {
  font-size: 1.1rem;
  color: var(--clt-brass-200);
  text-shadow: 0 0 18px rgb(var(--clt-brass-rgb) / 0.46);
  letter-spacing: 0;
  line-height: 1;
}

/* ============================================================
   12b. AMBIENT DUST PARTICLES
   ============================================================ */
#star-container.clt-home-dust {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
  mix-blend-mode: screen;
  opacity: 0.46;
}
.clt-home-dust.layer { position: absolute; inset: 0; }
.clt-home-dust.particle {
  position: absolute;
  border-radius: 50%;
  will-change: transform, opacity;
  animation: dust-twinkle var(--twinkle-dur, 3s) infinite ease-in-out;
  animation-delay: var(--twinkle-delay, 0s);
  transition: transform 0.15s linear;
}
.clt-home-dust.particle.warm {
  background: rgb(var(--clt-linen-rgb) / 0.86);
  box-shadow: 0 0 9px rgb(var(--clt-linen-rgb) / 0.58), 0 0 24px rgb(var(--clt-linen-rgb) / 0.20);
}
.clt-home-dust.particle.brass {
  background: rgb(var(--clt-candle-rgb) / 0.82);
  box-shadow: 0 0 11px rgb(var(--clt-candle-rgb) / 0.52), 0 0 30px rgb(var(--clt-brass-rgb) / 0.25);
}
.clt-home-dust.particle.cool {
  background: rgb(var(--clt-smoke-blue-rgb) / 0.78);
  box-shadow: 0 0 11px rgb(var(--clt-smoke-blue-rgb) / 0.48), 0 0 30px rgb(var(--clt-smoke-blue-rgb) / 0.22);
}
@keyframes dust-twinkle {
  0%, 100% { opacity: var(--twinkle-lo, 0.2); }
  50% { opacity: var(--twinkle-hi, 0.85); }
}
@media (prefers-reduced-motion: reduce) {
  .clt-home-dust.particle { animation: none; }
}

/* ============================================================
   13. RESPONSIVE
   ============================================================ */
@media (max-width: 1180px) {
  .clt-home-marquee.inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

@media (max-width: 760px) {
  :root {
    --type-h1: clamp(2.6rem, 12vw, 4.2rem);
  }
  .clt-home-hero.reveal-cta.clt-button.large {
    width: min(85vw, 320px);
    min-height: 50px;
    padding: 0 20px;
    font-size: 0.9rem;
    flex: none;
  }

  .clt-home-marquee.heading { font-size: 1.4rem; }
  .clt-home-quote-block.line { font-size: 1rem; }
  .clt-home-quote-block.source { font-size: 0.6rem; }
}

@media (max-width: 430px) {
  .clt-home-hero.reveal-cta.clt-button.large {
    width: min(90vw, 280px);
    min-height: 46px;
    font-size: 0.85rem;
  }
}

/* ============================================================
   13. CURTAIN STAGE
   ============================================================ */

/* Container — covers clt-home-hero inset, sits above clt-home-hero--reveal (z 2)
   because curtain is open before reveal fires at 84.1%. */
.clt-home-curtain-stage {
  position: absolute;
  inset: 0;
  z-index: 8;
  pointer-events: none;
  overflow: hidden;
}

/* ---- Drape panels ---- */
.clt-home-curtain-left,
.clt-home-curtain-right {
  position: absolute;
  top: 0; bottom: 0;
  overflow: hidden;
  will-change: transform;
}
.clt-home-curtain-left  { left: 0;  width: calc(50% + 1px); }
.clt-home-curtain-right { right: 0; width: calc(50% + 1px); }

/* Base clt-home-fabric — void-plum gradient, darkest #130d18 */
.clt-home-curtain-left::before,
.clt-home-curtain-right::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg,
    #1c1224 0%,
    #1a1022 12%,
    #170e20 35%,
    #150c1e 55%,
    #130d18 80%,
    #130d18 100%
  );
}

/* Velvet pile texture */
.clt-home-curtain.velvet-tex {
  position: absolute; inset: 0; z-index: 2;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%22300%22%3E%3Cfilter%20id%3D%22v%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.65%200.32%22%20numOctaves%3D%225%22%20seed%3D%228%22%2F%3E%3CfeColorMatrix%20values%3D%220%200%200%200%200.18%200%200%200%200%200.08%200%200%200%200%200.24%200%200%200%200.14%200%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23v)%22%2F%3E%3C%2Fsvg%3E");
  background-size: 300px 300px;
  mix-blend-mode: screen;
  opacity: 0.55;
  pointer-events: none;
}

/* Directional nap sheen */
.clt-home-curtain.velvet-sheen {
  position: absolute; inset: 0; z-index: 3;
  background: linear-gradient(152deg,
    rgb(60 35 80 / 0.0)  0%,
    rgb(60 35 80 / 0.04) 25%,
    rgb(50 28 65 / 0.03) 50%,
    rgb(40 22 55 / 0.04) 75%,
    rgb(60 35 80 / 0.0)  100%
  );
  pointer-events: none;
}

/* ---- Fold strips ---- */
.clt-home-curtain.fold {
  position: absolute; top: 0; bottom: 0; z-index: 4;
  pointer-events: none;
}
.clt-home-curtain.fold.deep {
  width: 40px;
  background: linear-gradient(90deg,
    rgb(8  4  14 / 0.65)   0%,
    rgb(14 7  22 / 0.40)   20%,
    rgb(38 20 52 / 0.22)   40%,
    rgb(48 26 64 / 0.28)   50%,
    rgb(38 20 52 / 0.22)   60%,
    rgb(14 7  22 / 0.40)   80%,
    rgb(8  4  14 / 0.65)   100%
  );
}
.clt-home-curtain.fold.shallow {
  width: 24px;
  background: linear-gradient(90deg,
    rgb(8  4  14 / 0.50)   0%,
    rgb(30 16 42 / 0.18)   35%,
    rgb(38 22 52 / 0.22)   50%,
    rgb(30 16 42 / 0.18)   65%,
    rgb(8  4  14 / 0.50)   100%
  );
}

/* ---- Fold sway keyframes — 5 variants ---- */
@keyframes curtain-fold-a {
  0%   { transform: translateX(0)      scaleX(1.00); opacity: 0.92; }
  100% { transform: translateX(1.5px)  scaleX(1.03); opacity: 1.00; }
}
@keyframes curtain-fold-b {
  0%   { transform: translateX(0)      scaleX(1.00); opacity: 1.00; }
  100% { transform: translateX(-1.2px) scaleX(0.97); opacity: 0.90; }
}
@keyframes curtain-fold-c {
  0%   { transform: translateX(0.8px)  scaleX(1.02); opacity: 0.94; }
  100% { transform: translateX(-1.5px) scaleX(0.98); opacity: 1.00; }
}
@keyframes curtain-fold-d {
  0%   { transform: translateX(-0.5px) scaleX(0.99); opacity: 1.00; }
  100% { transform: translateX(1.2px)  scaleX(1.02); opacity: 0.92; }
}
@keyframes curtain-fold-e {
  0%   { transform: translateX(0.3px)  scaleX(1.01); opacity: 0.96; }
  100% { transform: translateX(-1px)   scaleX(0.98); opacity: 1.00; }
}

/* ---- Panel top / hem ---- */
.clt-home-curtain.panel-top {
  position: absolute; top: 0; left: 0; right: 0; height: 20px;
  z-index: 6; pointer-events: none;
  background: linear-gradient(180deg, rgb(10 6 14 / 0.5), transparent);
}
.clt-home-curtain.hem {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40px;
  z-index: 6; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgb(14 9 18 / 0.50) 60%, rgb(13 9 16 / 0.75));
}
.clt-home-curtain.hem::after {
  content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg,
    transparent,
    rgb(142 100 51 / 0.35) 30%, rgb(155 115 55 / 0.45) 50%, rgb(142 100 51 / 0.35) 70%,
    transparent
  );
  box-shadow: 0 0 6px rgb(142 100 51 / 0.20);
}

/* ---- Curtain inner-edge seam glow (travels with panels) ---- */
.clt-home-curtain-left::after,
.clt-home-curtain-right::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  width: 1.5px;
  z-index: 10;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgb(200 160 80 / 0.85)  0%,
    rgb(180 140 65 / 0.55)  5%,
    rgb(160 120 50 / 0.30) 18%,
    rgb(140 100 40 / 0.16) 40%,
    rgb(100  75 30 / 0.06) 65%,
    transparent 88%
  );
  box-shadow:
    0 0 3px  rgb(200 155 75 / 0.50),
    0 0 10px rgb(170 130 55 / 0.30),
    0 0 22px rgb(140 100 40 / 0.15);
  animation: curtain-seam-pulse 4.5s ease-in-out infinite alternate;
}
.clt-home-curtain-left::after  { right: -0.5px; }
.clt-home-curtain-right::after { left: -0.5px; }
@keyframes curtain-seam-pulse {
  0%   { opacity: 0.70; }
  100% { opacity: 1.00; }
}

/* ---- Scroll prompt ---- */
.clt-home-curtain-prompt[data-gsap="home-curtain-prompt"] {
  position: absolute;
  bottom: 28px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  z-index: 9;
  opacity: 0;
  animation: curtain-prompt-in 1.4s 0.8s ease-out forwards;
  white-space: nowrap;
}
@keyframes curtain-prompt-in {
  from { opacity: 0; transform: translateX(-50%) translateY(8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.clt-home-curtain-prompt.text {
  font-family: var(--font-body);
  font-size: 0.64rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgb(216 205 184 / 0.58);
  text-shadow: 0 0 18px rgb(142 100 51 / 0.35), 0 0 36px rgb(0 0 0 / 0.9);
}
.clt-home-curtain-prompt.line {
  display: block;
  width: 2px;
  height: 52px;
  border-radius: 1px;
  transform-origin: top center;
  position: relative;
  overflow: visible;
  background: linear-gradient(180deg,
    rgb(200 160 80 / 0.25) 0%,
    rgb(220 180 90 / 0.80) 35%,
    rgb(245 227 192 / 0.95) 50%,
    rgb(220 180 90 / 0.80) 65%,
    rgb(200 160 80 / 0.25) 100%
  );
  box-shadow:
    0 0 6px  rgb(245 227 192 / 0.50),
    0 0 18px rgb(200 160 80 / 0.35),
    0 0 36px rgb(142 100 51 / 0.18);
  animation: curtain-prompt-line 3s ease-in-out infinite;
}
.clt-home-curtain-prompt.line::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle,
    rgb(255 244 218 / 0.95),
    rgb(245 227 192 / 0.65) 35%,
    transparent 70%
  );
  box-shadow:
    0 0 6px  rgb(255 244 218 / 0.80),
    0 0 16px rgb(245 227 192 / 0.50),
    0 0 32px rgb(200 160 80 / 0.25);
  animation: curtain-shimmer-drop 2.2s ease-in-out infinite;
}
@keyframes curtain-prompt-line {
  0%,100% { opacity: 0.55; filter: brightness(0.9); }
  50%     { opacity: 1.00; filter: brightness(1.15); }
}
@keyframes curtain-shimmer-drop {
  0%   { top: -15%; opacity: 0; }
  15%  { opacity: 1; }
  85%  { opacity: 0.85; }
  100% { top: 105%; opacity: 0; }
}

/* ---- Reduced motion overrides ---- */
@media (prefers-reduced-motion: reduce) {
  .clt-home-curtain.fold { animation: none !important; }
  .clt-home-curtain-prompt[data-gsap="home-curtain-prompt"] { animation: none !important; opacity: 0 !important; }
  .clt-home-curtain-prompt.line { animation: none !important; }
  .clt-home-curtain-left,
  .clt-home-curtain-right { display: none; }
  .clt-home-curtain-stage { display: none; }
}

/* ============================================================
   14. EXPLORE CAROUSEL
   ============================================================ */
section.clt-home-explore {
  position: relative;
  padding: clamp(40px, 8vw, 96px) 0;
  border-top: 1px solid var(--line-soft);
  scroll-margin-top: clamp(6rem, 12vw, 8.5rem);
}
section.clt-home-explore::before {
  content: "";
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.22), transparent);
  pointer-events: none;
}
.clt-home-explore.header {
  text-align: center;
  margin-bottom: clamp(28px, 5vw, 56px);
  padding: 0 clamp(14px, 3vw, 30px);
}
.clt-home-explore.title {
  font-size: var(--type-h2);
  line-height: 1.02;
  letter-spacing: -0.012em;
}

.clt-home-explore.track-mask {
  position: relative;
  overflow: hidden;
  transform: rotate(-2deg);
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  padding: 40px 0;
  cursor: none;
}

.clt-home-explore.track {
  display: flex;
  gap: clamp(16px, 2vw, 24px);
  will-change: transform;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}

.clt-home-explore.card {
  position: relative;
  flex-shrink: 0;
  width: 320px;
  aspect-ratio: 1 / 1.4;
  border-radius: var(--r-card);
  overflow: hidden;
  transform: scale(0.95);
  filter: brightness(0.7) saturate(0.8);
  background: rgb(10 8 13 / 0.96);
  box-shadow:
    0 24px 60px rgb(0 0 0 / 0.55),
    inset 0 1px 0 rgb(255 244 218 / 0.06);
  transition:
    transform 0.4s var(--ease),
    filter 0.4s var(--ease),
    box-shadow 0.4s var(--ease);
  -webkit-user-drag: none;
}
.clt-home-explore.card:hover {
  transform: scale(0.98);
  filter: brightness(0.85) saturate(0.9);
  box-shadow:
    0 30px 70px rgb(0 0 0 / 0.65),
    inset 0 1px 0 rgb(255 244 218 / 0.10);
}

.clt-home-explore.card-img {
  position: absolute;
  inset: 0;
  z-index: 1;
  transform: scale(1.02);
  transition: transform 0.7s var(--ease), filter 0.7s var(--ease);
}

.clt-home-explore.card:hover .clt-home-explore.card-img {
  transform: scale(1.07);
  filter: saturate(1.05) contrast(1.04);
}

.clt-home-explore.card-static {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(18px, 2vw, 28px);
  background: linear-gradient(180deg, transparent 40%, rgb(0 0 0 / 0.65) 100%);
  transition: background 0.45s var(--ease), transform 0.45s var(--ease);
}
.clt-home-explore.card:hover .clt-home-explore.card-static {
  transform: translateY(-4px);
  background: linear-gradient(180deg, transparent 24%, rgb(0 0 0 / 0.72) 100%);
}
.clt-home-explore.card-kicker {
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clt-brass-200);
  margin-bottom: 8px;
}
.clt-home-explore.card-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.6rem, 2vw, 2.1rem);
  line-height: 1.0;
  letter-spacing: -0.01em;
  color: var(--text-bright);
  text-shadow: 0 2px 12px rgb(0 0 0 / 0.5);
}

.clt-home-explore.card-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: flex-end;
  padding: clamp(14px, 2vw, 24px);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.42s var(--ease), transform 0.42s var(--ease);
  pointer-events: none;
}
.clt-home-explore.card:hover .clt-home-explore.card-overlay {
  opacity: 1;
  transform: translateY(0);
}
.clt-home-explore.card-overlay-inner {
  width: 100%;
  padding: clamp(14px, 1.6vw, 18px);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgb(18 16 22 / 0.72), rgb(8 7 10 / 0.84));
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.16);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.10),
    0 14px 38px rgb(0 0 0 / 0.36);
  -webkit-backdrop-filter: blur(16px) saturate(1.08);
  backdrop-filter: blur(16px) saturate(1.08);
}
.clt-home-explore.card-desc {
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--clt-linen-200);
  margin: 0 0 12px;
  max-width: none;
}
.clt-home-explore.card-sep {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.3), transparent);
  margin-bottom: 10px;
}
.clt-home-explore.card-meta {
  font-family: var(--font-body);
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}

/* ============================================================
   15. CAROUSEL LENS (custom cursor)
   ============================================================ */
#clt-home-carousel-lens.clt-home-carousel-lens {
  position: fixed;
  top: 0;
  left: 0;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.26);
  background:
    radial-gradient(circle at 32% 24%, rgb(255 244 218 / 0.20), transparent 38%),
    linear-gradient(145deg, rgb(18 16 22 / 0.48), rgb(6 6 8 / 0.34));
  -webkit-backdrop-filter: blur(18px) saturate(1.12);
  backdrop-filter: blur(18px) saturate(1.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  pointer-events: none;
  z-index: 100;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.6);
  transition:
    opacity 0.25s var(--ease),
    transform 0.25s var(--ease),
    border-color 0.25s var(--ease);
  color: var(--clt-linen-200);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.18),
    inset 0 -1px 0 rgb(0 0 0 / 0.28),
    0 14px 34px rgb(0 0 0 / 0.28),
    0 0 24px rgb(var(--clt-brass-rgb) / 0.08);
  will-change: transform, opacity;
}
#clt-home-carousel-lens.clt-home-carousel-lens.clt-state-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
#clt-home-carousel-lens.clt-home-carousel-lens.clt-state-dragging {
  transform: translate(-50%, -50%) scale(1);
  border-color: rgb(var(--clt-linen-rgb) / 0.26);
}
#clt-home-carousel-lens.clt-home-carousel-lens.clt-home-is-hidden {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
}
.clt-home-carousel-lens.icon {
  width: 14px;
  height: 14px;
  transition: transform 0.25s var(--ease);
}
#clt-home-carousel-lens.clt-state-dragging .clt-home-carousel-lens.icon {
  transform: none;
}
.clt-home-carousel-lens.label {
  font-family: var(--font-body);
  font-size: 0.46rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  opacity: 0.7;
}

@media (pointer: coarse) {
  #clt-home-carousel-lens.clt-home-carousel-lens { display: none !important; }
  .clt-home-explore.track-mask { cursor: grab; }
  .clt-home-explore.track-mask:active { cursor: grabbing; }
  .clt-home-explore.card-overlay { display: none; }
}

/* ============================================================
   16. MOBILE RESPONSIVE REFINEMENTS
   ============================================================ */
@media (max-width: 760px) {
  :root {
    --pin-multiplier: 3;
  }
  .clt-home-curtain-prompt.text {
    font-size: 0.56rem;
    letter-spacing: 0.20em;
  }
  .clt-home-curtain-prompt.line {
    height: 36px;
  }
  .clt-home-curtain.fold.deep { width: 24px; }
  .clt-home-curtain.fold.shallow { width: 14px; }

  .clt-home-explore.card { width: 280px; }
  .clt-home-explore.track-mask { padding: 28px 0; }
}

@media (max-width: 430px) {
  .clt-home-explore.card { width: 260px; }
}

/* ============================================================
   17. UPCOMING EVENTS
   ============================================================ */
section.clt-home-upcoming {
  position: relative;
  padding: clamp(48px, 10vw, 120px) clamp(14px, 3vw, 30px);
  border-top: 1px solid var(--line-soft);
  scroll-margin-top: clamp(6rem, 12vw, 8.5rem);
}
section.clt-home-upcoming::before {
  content: "";
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.22), transparent);
  pointer-events: none;
}
.clt-home-upcoming.header {
  text-align: center;
  margin-bottom: clamp(36px, 6vw, 72px);
}
.clt-home-upcoming.title {
  font-size: var(--type-h2);
  line-height: 1.02;
  letter-spacing: -0.012em;
}

.clt-home-upcoming.content {
  display: grid;
  grid-template-columns: minmax(300px, 420px) 1fr;
  gap: clamp(32px, 5vw, 72px);
  max-width: 1100px;
  margin: 0 auto;
  align-items: start;
}

/* ---- Poster ---- */
.clt-home-upcoming.poster-wrap {
  position: relative;
  perspective: 800px;
}
.clt-home-upcoming.poster-glow {
  position: absolute;
  inset: -20%;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(var(--clt-brass-rgb) / 0.18) 0%, rgb(var(--clt-brass-rgb) / 0.06) 30%, transparent 60%);
  filter: blur(40px);
  z-index: 0;
  pointer-events: none;
  animation: poster-glow-pulse 6s ease-in-out infinite alternate;
}
@keyframes poster-glow-pulse {
  0%   { opacity: 0.6; transform: scale(0.95); }
  100% { opacity: 1;   transform: scale(1.05); }
}

.clt-home-upcoming.poster {
  position: relative;
  z-index: 1;
  aspect-ratio: 1 / 1.45;
  border-radius: var(--r-card);
  overflow: hidden;
  border: 1px solid rgb(var(--clt-brass-rgb) / 0.28);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.10),
    inset 0 -1px 0 rgb(0 0 0 / 0.62),
    0 32px 72px rgb(0 0 0 / 0.56),
    0 0 40px rgb(var(--clt-brass-rgb) / 0.08);
  will-change: transform;
  transition: box-shadow 0.5s var(--ease);
}
.clt-home-upcoming.poster:hover {
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.12),
    inset 0 -1px 0 rgb(0 0 0 / 0.62),
    0 36px 80px rgb(0 0 0 / 0.6),
    0 0 50px rgb(var(--clt-brass-rgb) / 0.12);
}

/* Poster scene — atmospheric layers */
.clt-home-upcoming.poster-scene {
  position: absolute;
  inset: 0;
}
.clt-home-upcoming.poster-sky {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 30% at 50% 22%, rgb(var(--clt-plum-rgb) / 0.6), transparent 60%),
    linear-gradient(180deg, #14101e 0%, #1a1028 25%, #160e22 50%, #0e0a16 80%, #0a0710 100%);
}
.clt-home-upcoming.poster-moon {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 18%;
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 40%,
    rgb(var(--clt-linen-rgb) / 0.65) 0%,
    rgb(var(--clt-linen-rgb) / 0.25) 30%,
    rgb(var(--clt-brass-rgb) / 0.12) 50%,
    transparent 65%
  );
  box-shadow:
    0 0 30px rgb(var(--clt-linen-rgb) / 0.20),
    0 0 60px rgb(var(--clt-brass-rgb) / 0.10);
  filter: blur(1px);
}
.clt-home-upcoming.poster-mist {
  position: absolute;
  bottom: 20%;
  left: -10%;
  right: -10%;
  height: 35%;
  background: linear-gradient(180deg,
    transparent 0%,
    rgb(var(--clt-plum-rgb) / 0.25) 30%,
    rgb(18 12 24 / 0.5) 60%,
    rgb(12 8 18 / 0.7) 100%
  );
  filter: blur(8px);
}
.clt-home-upcoming.poster-silhouettes {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 40%;
  background:
    radial-gradient(ellipse 18% 80% at 25% 90%, rgb(0 0 0 / 0.9) 0%, transparent 60%),
    radial-gradient(ellipse 22% 90% at 50% 85%, rgb(0 0 0 / 0.95) 0%, transparent 55%),
    radial-gradient(ellipse 16% 75% at 72% 92%, rgb(0 0 0 / 0.88) 0%, transparent 58%);
}

/* Poster content overlay */
.clt-home-upcoming.poster-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(20px, 3vw, 32px);
}
.clt-home-upcoming.poster-season {
  font-family: var(--font-body);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--clt-brass-200);
  text-shadow: 0 0 14px rgb(var(--clt-brass-rgb) / 0.4);
  align-self: flex-start;
}
.clt-home-upcoming.poster-title-block {
  align-self: flex-start;
}
.clt-home-upcoming.poster-name {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.8rem, 5vw, 4rem);
  line-height: 0.92;
  letter-spacing: -0.02em;
  color: var(--text-bright);
  text-shadow:
    0 2px 20px rgb(0 0 0 / 0.7),
    0 0 40px rgb(var(--clt-brass-rgb) / 0.15);
}
.clt-home-upcoming.poster-subtitle {
  margin: 8px 0 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1rem, 1.6vw, 1.3rem);
  color: var(--clt-brass-200);
  text-shadow: 0 0 16px rgb(var(--clt-brass-rgb) / 0.3);
}
.clt-home-upcoming.poster-badge {
  align-self: flex-end;
  padding: 6px 14px;
  border-radius: var(--r-pill);
  border: 1px solid var(--line-brass);
  background: rgb(0 0 0 / 0.5);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.clt-home-upcoming.poster-badge-text {
  font-family: var(--font-body);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Poster inner frame / vignette */
.clt-home-upcoming.poster-frame {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  box-shadow:
    inset 0 0 0 1px rgb(var(--clt-brass-rgb) / 0.16),
    inset 0 0 60px rgb(0 0 0 / 0.5);
  border-radius: inherit;
}

/* ---- Details column ---- */
.clt-home-upcoming.details {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Descriptors */
.clt-home-upcoming.descriptors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.clt-home-upcoming.descriptor {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: clamp(16px, 2.2vw, 24px) 0;
  border-bottom: 1px solid var(--line-soft);
}
.clt-home-upcoming.descriptor:nth-child(odd) {
  padding-inline-end: clamp(12px, 2vw, 20px);
  border-inline-end: 1px solid var(--line-soft);
}
.clt-home-upcoming.descriptor:nth-child(even) {
  padding-inline-start: clamp(12px, 2vw, 20px);
}
.clt-home-upcoming.descriptor:nth-last-child(-n+2) {
  border-bottom: none;
}
.clt-home-upcoming.descriptor-label {
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}
.clt-home-upcoming.descriptor-value {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  font-weight: 500;
  color: var(--clt-linen-200);
  line-height: 1.2;
}

/* Separator */
.clt-home-upcoming.sep {
  height: 1px;
  margin: clamp(18px, 3vw, 28px) 0;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.35), transparent);
  box-shadow: 0 0 12px rgb(var(--clt-brass-rgb) / 0.12);
}

/* Schedule */
.clt-home-upcoming.schedule {
  margin-bottom: clamp(24px, 4vw, 36px);
}
.clt-home-upcoming.schedule-heading {
  margin: 0 0 clamp(16px, 2.5vw, 28px);
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}
.clt-home-upcoming.events {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.5vw, 24px);
}

/* Event card */
.clt-home-upcoming.event {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(16px, 2.5vw, 28px);
  padding: clamp(18px, 3vw, 28px) clamp(16px, 2.5vw, 28px);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  background:
    var(--tex-noise),
    linear-gradient(180deg, rgb(var(--clt-linen-rgb) / 0.04), rgb(var(--clt-linen-rgb) / 0.015)),
    var(--surface);
  background-size: 240px 240px, auto, auto;
  background-blend-mode: overlay, normal, normal;
  box-shadow: var(--shadow-raise);
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-base) var(--ease);
}
.clt-home-upcoming.event:hover {
  border-color: var(--line-brass);
  box-shadow: var(--shadow-deep), var(--glow-brass);
}

/* Date column */
.clt-home-upcoming.event-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 56px;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgb(var(--clt-brass-rgb) / 0.06);
  border: 1px solid rgb(var(--clt-brass-rgb) / 0.12);
}
.clt-home-upcoming.event-month {
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  line-height: 1;
}
.clt-home-upcoming.event-day {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 2.5vw, 2rem);
  font-weight: 600;
  color: var(--text-bright);
  line-height: 1.1;
}
.clt-home-upcoming.event-weekday {
  font-family: var(--font-body);
  font-size: 0.56rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
  line-height: 1;
}

/* Event body */
.clt-home-upcoming.event-body {
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1vw, 10px);
}
.clt-home-upcoming.event-top {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}
.clt-home-upcoming.event-name {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  font-weight: 600;
  color: var(--text-bright);
  letter-spacing: -0.01em;
}
.clt-home-upcoming.event-tag {
  padding: 3px 10px;
  border-radius: var(--r-pill);
  border: 1px solid var(--line);
  font-family: var(--font-body);
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  background: rgb(var(--clt-linen-rgb) / 0.04);
  white-space: nowrap;
}
.clt-home-upcoming.event-tag.premiere {
  border-color: rgb(var(--clt-brass-rgb) / 0.4);
  color: var(--clt-brass-200);
  background: rgb(var(--clt-brass-rgb) / 0.08);
  box-shadow: 0 0 10px rgb(var(--clt-brass-rgb) / 0.1);
}
.clt-home-upcoming.event-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}
.clt-home-upcoming.event-time {
  font-family: var(--font-body);
  font-size: clamp(0.82rem, 1vw, 0.92rem);
  font-weight: 600;
  color: var(--text-muted);
}
.clt-home-upcoming.event-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--clt-brass-400);
  box-shadow: 0 0 6px rgb(var(--clt-brass-rgb) / 0.4);
  flex-shrink: 0;
}
.clt-home-upcoming.event-venue {
  font-family: var(--font-body);
  font-size: clamp(0.76rem, 0.9vw, 0.85rem);
  color: var(--text-dim);
}

/* Ticket button */
.clt-home-upcoming.event-ticket {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid var(--line-brass);
  border-radius: var(--r-pill);
  background: rgb(var(--clt-brass-rgb) / 0.06);
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clt-brass-200);
  text-decoration: none;
  transition:
    background var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-base) var(--ease),
    color var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
  white-space: nowrap;
  flex-shrink: 0;
}
.clt-home-upcoming.event-ticket:hover {
  background: rgb(var(--clt-brass-rgb) / 0.14);
  border-color: rgb(var(--clt-brass-rgb) / 0.55);
  box-shadow: 0 0 16px rgb(var(--clt-brass-rgb) / 0.15);
  color: var(--accent);
}
.clt-home-upcoming.event-ticket:active {
  transform: scale(0.97);
  box-shadow: 0 0 8px rgb(var(--clt-brass-rgb) / 0.08);
}
.clt-home-upcoming.event-ticket-icon {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.clt-home-upcoming.event-ticket-arrow {
  font-size: 0.9em;
  opacity: 0.6;
  transition: opacity 0.2s, transform 0.2s;
}
.clt-home-upcoming.event-ticket:hover .clt-home-upcoming.event-ticket-arrow {
  opacity: 1;
  transform: translateX(2px);
}

/* ---- Upcoming responsive ---- */
@media (max-width: 860px) {
  .clt-home-upcoming.content {
    grid-template-columns: 1fr;
    max-width: 520px;
  }
  .clt-home-upcoming.poster-wrap {
    max-width: 380px;
    margin: 0 auto;
  }
}

@media (max-width: 760px) {
  .clt-home-upcoming.poster-wrap {
    max-width: 340px;
  }
  .clt-home-upcoming.descriptors {
    grid-template-columns: 1fr;
  }
  .clt-home-upcoming.descriptor:nth-child(odd) {
    padding-inline-end: 0;
    border-inline-end: none;
  }
  .clt-home-upcoming.descriptor:nth-child(even) {
    padding-inline-start: 0;
  }
  .clt-home-upcoming.descriptor:nth-last-child(-n+2) {
    border-bottom: 1px solid var(--line-soft);
  }
  .clt-home-upcoming.descriptor:last-child {
    border-bottom: none;
  }
  .clt-home-upcoming.event {
    grid-template-columns: auto 1fr;
    gap: 14px;
  }
  .clt-home-upcoming.event-ticket {
    grid-column: 1 / -1;
    justify-content: center;
    padding: 12px 24px;
  }
}

@media (max-width: 430px) {
  .clt-home-upcoming.poster-wrap {
    max-width: 300px;
  }
  .clt-home-upcoming.event-date {
    min-width: 48px;
    padding: 6px 10px;
  }
  .clt-home-upcoming.event-day {
    font-size: 1.4rem;
  }
  .clt-home-upcoming.event-name {
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .clt-home-upcoming.poster-glow { animation: none; }
}

/* ============================================================
   18. PAST PERFORMANCES — horizontal clt-home-scroll
   ============================================================ */
section.clt-home-past {
  position: relative;
  padding: clamp(48px, 10vw, 120px) 0 clamp(48px, 8vw, 96px);
  overflow: hidden;
  border-top: 1px solid var(--line-soft);
  scroll-margin-top: clamp(6rem, 12vw, 8.5rem);
}
section.clt-home-past::before {
  content: "";
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.22), transparent);
  pointer-events: none;
}
.clt-home-past.header {
  text-align: center;
  padding: 0 clamp(14px, 3vw, 30px);
  margin-bottom: clamp(32px, 5vw, 56px);
}
.clt-home-past.title {
  font-size: var(--type-h2);
  line-height: 1.02;
  letter-spacing: -0.012em;
}
.clt-home-past.subtitle {
  margin: 12px auto 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(0.95rem, 1.2vw, 1.15rem);
  color: var(--text-dim);
  max-width: 38ch;
}

.clt-home-past.scroll-wrap {
  position: relative;
  overflow: hidden;
  padding-block: 8px 24px;
}
.clt-home-past.track {
  display: flex;
  gap: clamp(16px, 2vw, 28px);
  padding: 20px clamp(14px, 3vw, 30px);
  width: max-content;
  will-change: transform;
}

.clt-home-past.card {
  position: relative;
  flex-shrink: 0;
  width: clamp(220px, 22vw, 300px);
  aspect-ratio: 1 / 1.35;
  border-radius: var(--r-card);
  overflow: hidden;
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.08);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.06),
    inset 0 -1px 0 rgb(0 0 0 / 0.5),
    0 20px 50px rgb(0 0 0 / 0.45);
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease), border-color 0.5s var(--ease);
}
.clt-home-past.card:hover {
  transform: translateY(-6px) scale(1.02);
  border-color: rgb(var(--clt-brass-rgb) / 0.3);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.10),
    inset 0 -1px 0 rgb(0 0 0 / 0.5),
    0 28px 60px rgb(0 0 0 / 0.55),
    0 0 30px rgb(var(--clt-brass-rgb) / 0.08);
}

.clt-home-past.card-img {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.clt-home-past.card-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(16px, 2vw, 24px);
  background: linear-gradient(180deg, transparent 30%, rgb(0 0 0 / 0.7) 100%);
}
.clt-home-past.card-year {
  font-family: var(--font-body);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clt-brass-200);
  margin-bottom: 6px;
}
.clt-home-past.card-name {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  line-height: 1.1;
  color: var(--text-bright);
  text-shadow: 0 2px 8px rgb(0 0 0 / 0.5);
}
.clt-home-past.card-composer {
  margin: 4px 0 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(0.78rem, 0.95vw, 0.88rem);
  color: var(--text-dim);
}

/* ============================================================
   19. SUBSCRIBE / DONATE
   ============================================================ */
section.clt-home-subscribe {
  position: relative;
  padding: clamp(56px, 10vw, 120px) clamp(14px, 3vw, 30px);
  border-top: 1px solid var(--line-soft);
  scroll-margin-top: clamp(6rem, 12vw, 8.5rem);
}
section.clt-home-subscribe::before {
  content: "";
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.22), transparent);
  pointer-events: none;
}
.clt-home-subscribe.inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(28px, 4vw, 44px);
}
.clt-home-subscribe.copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.clt-home-subscribe.title {
  font-size: var(--type-h2);
  line-height: 1.02;
  letter-spacing: -0.012em;
}
.clt-home-subscribe.desc {
  max-width: 42ch;
  text-align: center;
  font-size: var(--type-body-lg);
  color: var(--text-muted);
  line-height: 1.6;
}

/* Form */
.clt-home-subscribe.form {
  width: 100%;
  max-width: 480px;
}
.clt-home-subscribe.field-wrap {
  display: flex;
  gap: 0;
  border-radius: var(--r-pill);
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.14);
  background:
    var(--tex-noise),
    linear-gradient(180deg, rgb(28 26 24 / 0.92), rgb(12 11 10 / 0.96));
  background-size: 260px 260px, auto;
  background-blend-mode: overlay, normal;
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.06),
    inset 0 -1px 0 rgb(0 0 0 / 0.5),
    0 12px 32px rgb(0 0 0 / 0.36);
  overflow: hidden;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.clt-home-subscribe.field-wrap:focus-within {
  border-color: rgb(var(--clt-brass-rgb) / 0.4);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.08),
    inset 0 -1px 0 rgb(0 0 0 / 0.5),
    0 12px 32px rgb(0 0 0 / 0.36),
    0 0 20px rgb(var(--clt-brass-rgb) / 0.12);
}
.clt-home-subscribe.input {
  flex: 1;
  min-width: 0;
  padding: 14px 20px;
  background: transparent;
  border: none;
  outline: none;
  color: var(--clt-linen-200);
  font-size: 0.92rem;
  font-family: var(--font-body);
}
.clt-home-subscribe.input::placeholder {
  color: var(--text-faint);
}
.clt-home-subscribe.submit {
  border-radius: 0 var(--r-pill) var(--r-pill) 0;
  border: none;
  flex-shrink: 0;
}
.clt-home-subscribe.fine {
  margin: 10px 0 0;
  font-size: 0.72rem;
  color: var(--text-faint);
  text-align: center;
}

/* Donate flip */
.clt-home-subscribe.donate-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 480px;
}
.clt-home-subscribe.or-text {
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.92rem;
  color: var(--text-faint);
}
.clt-home-subscribe.donate-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 28px;
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.14);
  border-radius: var(--r-pill);
  background: rgb(var(--clt-linen-rgb) / 0.03);
  color: var(--clt-linen-200);
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition:
    background var(--dur-base) var(--ease),
    border-color var(--dur-base) var(--ease),
    box-shadow var(--dur-base) var(--ease),
    color var(--dur-base) var(--ease),
    transform var(--dur-base) var(--ease);
}
.clt-home-subscribe.donate-trigger:hover {
  border-color: rgb(var(--clt-brass-rgb) / 0.4);
  background: rgb(var(--clt-brass-rgb) / 0.06);
  color: var(--accent);
  box-shadow: 0 0 20px rgb(var(--clt-brass-rgb) / 0.12);
}
.clt-home-subscribe.donate-trigger-icon {
  width: 16px;
  height: 16px;
  transition: transform 0.3s var(--ease);
}
.clt-home-subscribe.donate-trigger:hover .clt-home-subscribe.donate-trigger-icon {
  transform: scale(1.2);
}

/* Panel (hidden by default, shown via GSAP Flip) */
.clt-home-subscribe.donate-panel {
  width: 100%;
  padding: clamp(24px, 4vw, 36px);
  border: 1px solid rgb(var(--clt-brass-rgb) / 0.2);
  border-radius: var(--r-card);
  background:
    var(--tex-noise),
    var(--tex-weave),
    radial-gradient(ellipse 50% 60% at 50% 0%, rgb(var(--clt-brass-rgb) / 0.08), transparent 50%),
    linear-gradient(180deg, rgb(28 24 20 / 0.92), rgb(14 12 10 / 0.96));
  background-size: 260px 260px, auto, auto, auto;
  background-blend-mode: overlay, normal, normal, normal;
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.08),
    inset 0 -1px 0 rgb(0 0 0 / 0.5),
    0 20px 50px rgb(0 0 0 / 0.4),
    0 0 30px rgb(var(--clt-brass-rgb) / 0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transform: scaleY(0.7) rotateX(15deg);
  transform-origin: top center;
  transition: none;
}
.clt-home-subscribe.donate-panel.clt-state-open {
  opacity: 1;
  max-height: 400px;
  overflow: visible;
  transform: scaleY(1) rotateX(0deg);
}
.clt-home-subscribe.donate-panel-text {
  font-size: 0.88rem;
  color: var(--text-muted);
  max-width: 42ch;
  text-align: center;
  line-height: 1.55;
}
.clt-home-subscribe.donate-amounts {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.clt-home-subscribe.donate-amt {
  padding: 10px 22px;
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.14);
  border-radius: var(--r-pill);
  background: rgb(var(--clt-linen-rgb) / 0.04);
  color: var(--clt-linen-200);
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition:
    background var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-base) var(--ease),
    color var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
}
.clt-home-subscribe.donate-amt:hover {
  border-color: rgb(var(--clt-brass-rgb) / 0.4);
  background: rgb(var(--clt-brass-rgb) / 0.08);
  color: var(--accent);
}
.clt-home-subscribe.donate-amt.clt-state-active {
  border-color: rgb(var(--clt-brass-rgb) / 0.55);
  background: rgb(var(--clt-brass-rgb) / 0.14);
  color: var(--accent);
  box-shadow: 0 0 14px rgb(var(--clt-brass-rgb) / 0.15);
}
.clt-home-subscribe.donate-cta {
  width: 100%;
  max-width: 280px;
}

/* ============================================================
   20. FOOTER
   ============================================================ */
footer.clt-home-footer {
  position: relative;
  margin-top: clamp(20px, 4vw, 40px);
  padding: clamp(40px, 6vw, 72px) clamp(14px, 3vw, 30px) clamp(24px, 4vw, 40px);
  border-top: 1px solid var(--line-soft);
  scroll-margin-top: clamp(6rem, 12vw, 8.5rem);
  overflow: hidden;
}
footer.clt-home-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--clt-brass-rgb) / 0.3), transparent);
}
.clt-home-footer.inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(160px, 0.65fr) minmax(160px, 0.65fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}

/* Brand */
.clt-home-footer.brand {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.clt-home-footer.seal {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: var(--clt-linen-200);
  background:
    radial-gradient(circle at 35% 28%, rgb(var(--clt-linen-rgb) / 0.20), transparent 38%),
    linear-gradient(145deg, rgb(var(--clt-brass-rgb) / 0.30), rgb(20 16 14 / 0.92));
  border: 1px solid rgb(var(--clt-brass-rgb) / 0.25);
  flex-shrink: 0;
}
.clt-home-footer.seal svg { width: 18px; height: 18px; }
.clt-home-footer.brand-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.clt-home-footer.brand-name {
  font-family: var(--font-display);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  font-weight: 500;
  line-height: 1.1;
}
.clt-home-footer.brand-org {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text-dim);
}
.clt-home-footer.brand-loc {
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: var(--text-faint);
}

/* Nav */
.clt-home-footer.col-heading {
  display: block;
  font-family: var(--font-body);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
}
.clt-home-footer.links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.clt-home-footer.links a {
  font-size: 0.88rem;
  color: var(--text-muted);
  transition: color 0.25s var(--ease);
}
.clt-home-footer.links a:hover {
  color: var(--text-bright);
}

/* Social */
.clt-home-footer.social-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.clt-home-footer.social-link {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.10);
  background: rgb(var(--clt-linen-rgb) / 0.03);
  color: var(--text-muted);
  transition:
    background var(--dur-base) var(--ease),
    border-color var(--dur-base) var(--ease),
    box-shadow var(--dur-base) var(--ease),
    color var(--dur-base) var(--ease),
    transform var(--dur-base) var(--ease);
}
.clt-home-footer.social-link:hover {
  border-color: rgb(var(--clt-brass-rgb) / 0.4);
  background: rgb(var(--clt-brass-rgb) / 0.08);
  color: var(--accent);
  box-shadow: 0 0 16px rgb(var(--clt-brass-rgb) / 0.12);
  transform: translateY(-2px);
}
.clt-home-footer.social-link svg {
  width: 18px;
  height: 18px;
}

/* Legal */
.clt-home-footer.legal {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: clamp(20px, 3vw, 32px);
  border-top: 1px solid var(--line-soft);
}
.clt-home-footer.legal-btn {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--font-body);
  font-size: 0.76rem;
  color: var(--text-dim);
  cursor: pointer;
  transition: color 0.25s var(--ease);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
}
.clt-home-footer.legal-btn:hover {
  color: var(--clt-linen-200);
  text-decoration-color: var(--clt-brass-400);
}
.clt-home-footer.legal-dot {
  color: var(--text-faint);
  font-size: 0.8rem;
}
.clt-home-footer.legal-copy {
  margin-inline-start: auto;
  font-size: 0.72rem;
  color: var(--text-faint);
}

/* ============================================================
   21. LEGAL MODALS
   ============================================================ */
body > .clt-home-legal-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
}
body > .clt-home-legal-modal.clt-state-open {
  pointer-events: auto;
  opacity: 1;
}
.clt-home-legal-modal.backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 50% 44%, rgb(var(--clt-brass-rgb) / 0.08), transparent 58%),
    rgb(0 0 0 / 0.58);
  -webkit-backdrop-filter: blur(14px) saturate(1.05);
  backdrop-filter: blur(14px) saturate(1.05);
}
.clt-home-legal-modal.panel {
  position: relative;
  z-index: 1;
  width: min(92vw, 580px);
  max-height: 80vh;
  border-radius: 18px;
  border: 1px solid rgb(var(--clt-linen-rgb) / 0.18);
  background:
    var(--tex-noise),
    radial-gradient(ellipse 90% 70% at 20% 0%, rgb(var(--clt-linen-rgb) / 0.10), transparent 58%),
    linear-gradient(180deg, rgb(28 25 28 / 0.78), rgb(10 9 12 / 0.86));
  background-size: 260px 260px, auto;
  background-blend-mode: overlay, normal;
  -webkit-backdrop-filter: blur(22px) saturate(1.08);
  backdrop-filter: blur(22px) saturate(1.08);
  box-shadow:
    inset 0 1px 0 rgb(255 244 218 / 0.14),
    inset 0 -1px 0 rgb(0 0 0 / 0.34),
    0 32px 80px rgb(0 0 0 / 0.56);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: scale(0.96) translateY(18px);
}
body > .clt-home-legal-modal.clt-state-open .clt-home-legal-modal.panel {
  transform: scale(1) translateY(0);
}
.clt-home-legal-modal.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--line-soft);
}
.clt-home-legal-modal.title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--text-bright);
}
.clt-home-legal-modal.close {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: rgb(var(--clt-linen-rgb) / 0.04);
  color: var(--text-muted);
  cursor: pointer;
  transition:
    background var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease);
}
.clt-home-legal-modal.close:hover {
  border-color: rgb(var(--clt-linen-rgb) / 0.3);
  color: var(--clt-linen-200);
  background: rgb(var(--clt-linen-rgb) / 0.08);
}
.clt-home-legal-modal.close svg { width: 16px; height: 16px; }
.clt-home-legal-modal.body {
  padding: 24px;
  overflow-y: auto;
  color: var(--text-muted);
  font-size: 0.88rem;
  line-height: 1.65;
}
.clt-home-legal-modal.body h4 {
  margin: 20px 0 8px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}
.clt-home-legal-modal.body p {
  margin: 0 0 12px;
  max-width: none;
}

/* ============================================================
   22. RESPONSIVE — new sections
   ============================================================ */
@media (max-width: 980px) {
  .clt-home-footer.inner {
    grid-template-columns: 1fr 1fr;
  }
  .clt-home-footer.brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  section.clt-home-explore,
  section.clt-home-upcoming,
  section.clt-home-past,
  section.clt-home-subscribe,
  footer.clt-home-footer {
    scroll-margin-top: 18rem;
  }

  .clt-home-past.scroll-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .clt-home-past.scroll-wrap::-webkit-scrollbar {
    display: none;
  }

  .clt-home-past.track {
    width: max-content;
    scroll-snap-type: x proximity;
    padding-bottom: 28px;
  }

  .clt-home-past.card {
    width: clamp(200px, 55vw, 260px);
    scroll-snap-align: center;
  }

  .clt-home-subscribe.field-wrap {
    flex-direction: column;
    border-radius: var(--r-card);
  }
  .clt-home-subscribe.input {
    min-height: 54px;
    text-align: center;
    padding: 16px 20px;
  }
  .clt-home-subscribe.submit {
    border-radius: 0 0 var(--r-card) var(--r-card);
    width: 100%;
    min-height: 56px;
    padding-block: 0;
  }

  .clt-home-footer.inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .clt-home-footer.legal {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .clt-home-footer.legal-copy {
    margin-inline-start: 0;
  }
}

@media (max-width: 430px) {
  .clt-home-past.card {
    width: clamp(180px, 65vw, 240px);
  }
  .clt-home-subscribe.donate-amounts {
    gap: 8px;
  }
  .clt-home-subscribe.donate-amt {
    padding: 8px 16px;
    font-size: 0.82rem;
  }
}
