/* ═══════════════════════════════════════════════════════════════════════════
   CAP10K — HOME PAGE  (owner: W4)
   Loaded only on the front page (inc/home.php). Tokens come from style.css;
   nothing here hard-codes a brand hex.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── shared shell + section heads ────────────────────────────────────────── */

.c10k-shell {
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: 1rem;
}
@media (min-width: 1024px) { .c10k-shell { padding-inline: 2rem; } }

.c10k-secthead {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2.25rem;
}
@media (min-width: 768px) {
  .c10k-secthead { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 2rem; }
}
.c10k-secthead__eyebrow { color: var(--c10k-muted); margin-bottom: 0.55rem; }
.c10k-secthead__title { color: var(--c10k-ink-900); margin: 0; letter-spacing: 0.005em; }

.c10k-morelink {
  display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 44px;
  font-family: 'Barlow Condensed', Barlow, sans-serif;
  font-size: 0.95rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--c10k-blue-500); text-decoration: none;
  white-space: nowrap;
}
.c10k-morelink svg { transition: transform 0.2s var(--c10k-ease); }
.c10k-morelink:hover { color: var(--c10k-ink-900); }
.c10k-morelink:hover svg { transform: translateX(4px); }

/* ═══════════════════════════════════════════════════════════════════════════
   1. HERO
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 70vh;
  overflow: hidden;
  background: var(--c10k-ink-900);
  color: #fff;
}
@supports (min-height: 70svh) { .c10k-hero { min-height: 70svh; } }
@media (min-width: 1024px) {
  .c10k-hero { min-height: 85vh; }
  @supports (min-height: 85svh) { .c10k-hero { min-height: min(85svh, 920px); } }
}

.c10k-hero__media { position: absolute; inset: 0; z-index: -1; }
.c10k-hero__poster,
.c10k-hero__video video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border: 0;
}
.c10k-hero__video { position: absolute; inset: 0; overflow: hidden; opacity: 0; transition: opacity 0.9s ease; }
.c10k-hero__video.is-playing { opacity: 1; }
/* A Vimeo background player is a fixed 16:9 frame — over-size it so it covers a tall hero. */
.c10k-hero__video iframe {
  position: absolute;
  top: 50%; left: 50%; right: auto; bottom: auto;
  width: 177.78vh; min-width: 100%;
  height: 56.25vw; min-height: 100%;
  transform: translate(-50%, -50%);
  border: 0;
  pointer-events: none;
}

/* Two layers, in paint order: a soft pool anchored under the copy block, then a
   vertical wash that carries the meta bar along the bottom edge.
   The pool is what buys the contrast — a flat scrim heavy enough to hold the
   eyebrow over this poster's bright finish arch would dim the whole photograph.
   Verified with a pixel sample: no hero text sits under 4.5:1 against the
   brightest pixel in its own box, at 390 and at 1440. */
.c10k-hero__scrim {
  position: absolute; inset: 0;
  background:
    radial-gradient(118% 58% at 44% 21%, rgba(8, 10, 12, 0.86) 0%, rgba(8, 10, 12, 0.63) 42%,
                    rgba(8, 10, 12, 0.22) 74%, rgba(8, 10, 12, 0) 92%),
    linear-gradient(to top, rgba(16, 18, 20, 0.95) 0%, rgba(16, 18, 20, 0.82) 30%,
                    rgba(16, 18, 20, 0.4) 58%, rgba(16, 18, 20, 0.24) 78%, rgba(16, 18, 20, 0.36) 100%);
}
@media (min-width: 1024px) {
  .c10k-hero__scrim {
    background:
      radial-gradient(60% 94% at 25% 44%, rgba(8, 10, 12, 0.9) 0%, rgba(8, 10, 12, 0.76) 44%,
                      rgba(8, 10, 12, 0.3) 74%, rgba(8, 10, 12, 0) 94%),
      linear-gradient(to top, rgba(16, 18, 20, 0.94) 0%, rgba(16, 18, 20, 0.78) 26%,
                      rgba(16, 18, 20, 0.42) 55%, rgba(16, 18, 20, 0.3) 78%, rgba(16, 18, 20, 0.5) 100%),
      linear-gradient(to right, rgba(16, 18, 20, 0.55) 0%, rgba(16, 18, 20, 0.2) 48%, rgba(16, 18, 20, 0) 78%);
  }
}

.c10k-hero__inner {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  padding: 2.5rem 1rem 1.25rem;
}
@media (min-width: 640px)  { .c10k-hero__inner { padding-top: 4rem; } }
@media (min-width: 1024px) { .c10k-hero__inner { padding: 7rem 2rem 1.75rem; } }

.c10k-hero__content { max-width: 46rem; }

.c10k-hero__logo { margin-bottom: 1.15rem; }
@media (min-width: 640px) { .c10k-hero__logo { margin-bottom: 1.5rem; } }
.c10k-hero__logo-img {
  width: auto; height: 3rem;
  filter: drop-shadow(0 4px 18px rgba(0, 0, 0, 0.55));
}
@media (min-width: 640px) { .c10k-hero__logo-img { height: 3.5rem; } }
@media (min-width: 1024px) { .c10k-hero__logo-img { height: 5rem; } }

.c10k-hero__eyebrow {
  color: var(--c10k-lime-500);
  letter-spacing: 0.2em;
  margin-bottom: 0.75rem;
  /* the poster's brightest band sits right behind this line on a phone */
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.85), 0 0 3px rgba(0, 0, 0, 0.6);
}

.c10k-hero__title {
  color: #fff;
  margin: 0;
  text-wrap: balance;
  text-shadow: 0 2px 30px rgba(0, 0, 0, 0.45);
}

.c10k-hero__subhead {
  margin: 0.9rem 0 0;
  max-width: 40rem;
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.86);
}
@media (min-width: 640px)  { .c10k-hero__subhead { margin-top: 1.15rem; font-size: 1.0625rem; line-height: 1.65; } }
@media (min-width: 1024px) { .c10k-hero__subhead { font-size: 1.1875rem; } }

.c10k-hero__ctas {
  display: flex; flex-wrap: wrap; gap: 0.7rem;
  margin-top: 1.35rem;
}
@media (min-width: 640px) { .c10k-hero__ctas { gap: 0.75rem; margin-top: 1.75rem; } }
.c10k-hero__cta { box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.7); }
.c10k-hero__cta--ghost {
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.72), 0 10px 30px -14px rgba(0, 0, 0, 0.7);
  background: rgba(20, 22, 24, 0.28);
  backdrop-filter: blur(4px);
}

/* hero bottom bar: meta + countdown */
.c10k-hero__bar {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-top: 1.6rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}
@media (min-width: 640px) { .c10k-hero__bar { gap: 1.5rem; margin-top: 2.5rem; padding-top: 1.5rem; } }
/* The meta strip and the countdown only sit side by side once there is room for
   both without the date wrapping — below that they stack. */
@media (min-width: 1200px) {
  .c10k-hero__bar { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 3rem; margin-top: 3.5rem; }
}

.c10k-hero__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1.25rem;
  margin: 0;
  flex: 1 1 auto;
}
/* Column weights follow the copy: the date and the "8:00 AM · Austin, TX" start
   line are the long ones, "20,000+" is the short one. */
@media (min-width: 640px)  { .c10k-hero__meta { grid-template-columns: 1.3fr 1.45fr 1.1fr 0.7fr; } }
@media (min-width: 1200px) { .c10k-hero__meta { max-width: 49rem; gap: 1rem 1.9rem; } }

.c10k-hero__meta-item dt {
  display: flex; align-items: center; gap: 0.35rem;
  font-family: 'Barlow Condensed', Barlow, sans-serif;
  font-size: 0.68rem; font-weight: 700; line-height: 1;
  text-transform: uppercase; letter-spacing: 0.17em;
  color: rgba(255, 255, 255, 0.62);
}
.c10k-hero__meta-item dd {
  margin: 0.4rem 0 0;
  font-family: 'Barlow Condensed', Barlow, sans-serif;
  font-size: 1.0625rem; font-weight: 700; line-height: 1.15;
  text-transform: uppercase; letter-spacing: 0.01em;
  color: #fff;
}
@media (min-width: 640px) { .c10k-hero__meta-item dd { font-size: 1.1875rem; } }

.c10k-hero__countdown { flex: 0 0 auto; }
.c10k-hero__countdown-label {
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 0.6rem;
}
@media (min-width: 1200px) { .c10k-hero__countdown-label { text-align: right; } }
.c10k-hero .countdown-tiles { justify-content: flex-start; }
@media (min-width: 1200px) { .c10k-hero .countdown-tiles { justify-content: flex-end; } }
.c10k-hero .countdown-tile {
  background: rgba(12, 14, 16, 0.55);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(6px);
}
.c10k-hero .countdown-num { font-size: 1.75rem; }
@media (min-width: 640px) { .c10k-hero .countdown-num { font-size: 2.25rem; } }

/* ═══════════════════════════════════════════════════════════════════════════
   2. SAVE THE DATE
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-std {
  background: var(--c10k-lime-500);
  color: var(--c10k-ink-900);
}
.c10k-std__inner {
  width: 100%; max-width: 80rem; margin-inline: auto;
  padding: 2.75rem 1rem;
  display: grid; gap: 1.75rem;
}
@media (min-width: 1024px) {
  .c10k-std__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
    gap: 4rem; align-items: center;
    padding: 3.5rem 2rem;
  }
}
.c10k-std__eyebrow { color: var(--c10k-lime-900); letter-spacing: 0.22em; }
.c10k-std__date {
  margin: 0;
  color: var(--c10k-ink-900);
  font-size: clamp(2rem, 4.4vw, 3.25rem);
  line-height: 0.98;
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.c10k-std__note {
  margin: 0.9rem 0 0;
  font-family: 'Barlow Condensed', Barlow, sans-serif;
  font-size: 0.78rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.15em;
  color: var(--c10k-lime-900);
}
.c10k-std__text { font-size: 1.0625rem; line-height: 1.7; color: var(--c10k-ink-900); }
.c10k-std__text p { margin: 0 0 0.9rem; }
.c10k-std__text p:last-child { margin-bottom: 0; }
.c10k-std__text strong { font-weight: 700; }
.c10k-std__text a { text-decoration: underline; text-underline-offset: 3px; }
.c10k-std__ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.c10k-std .c10k-btn:focus-visible { outline-color: var(--c10k-ink-900); }

/* ═══════════════════════════════════════════════════════════════════════════
   3. PILLARS
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-pillars { padding: 3.5rem 0 1rem; background: #fff; }
@media (min-width: 1024px) { .c10k-pillars { padding: 5rem 0 1.5rem; } }

.c10k-pillars__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 1rem;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 640px) { .c10k-pillars__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
@media (min-width: 1024px) {
  .c10k-pillars__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .c10k-pillars__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .c10k-pillars__grid { gap: 1.5rem; }
}

.c10k-pillar { min-width: 0; }
.c10k-pillar__link {
  position: relative; display: block; height: 100%;
  border-radius: var(--c10k-radius-card);
  overflow: hidden;
  background: var(--c10k-ink-900);
  color: #fff;
  text-decoration: none;
  transition: transform 0.35s var(--c10k-ease), box-shadow 0.35s var(--c10k-ease);
}
a.c10k-pillar__link:hover { transform: translateY(-6px); box-shadow: 0 26px 50px -24px rgba(30, 32, 34, 0.55); }

.c10k-pillar__frame { position: absolute; inset: 0; display: block; }
.c10k-pillar__img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s var(--c10k-ease);
}
a.c10k-pillar__link:hover .c10k-pillar__img { transform: scale(1.06); }
.c10k-pillar__wash {
  position: absolute; inset: 0; display: block;
  background: linear-gradient(to top, rgba(12, 14, 16, 0.96) 0%, rgba(12, 14, 16, 0.86) 30%, rgba(12, 14, 16, 0.44) 62%, rgba(12, 14, 16, 0.06) 88%);
}

.c10k-pillar__body {
  position: relative; display: block;
  min-height: 19rem;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 1.5rem;
}
@media (min-width: 1024px) { .c10k-pillar__body { min-height: 24rem; padding: 1.75rem; } }

.c10k-pillar__eyebrow { color: var(--c10k-lime-500); margin: 0 0 0.45rem; display: block; }
.c10k-pillar__title {
  display: block;
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  line-height: 1.05; letter-spacing: 0.005em; color: #fff;
}
.c10k-pillar__text {
  display: block; margin-top: 0.6rem;
  font-size: 0.98rem; line-height: 1.55;
  color: rgba(255, 255, 255, 0.82);
}
.c10k-pillar__cta {
  display: inline-flex; align-items: center; gap: 0.45rem;
  margin-top: 1.05rem; min-height: 44px;
  font-family: 'Barlow Condensed', Barlow, sans-serif;
  font-size: 0.88rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.13em;
  color: var(--c10k-lime-500);
}
.c10k-pillar__cta svg { transition: transform 0.2s var(--c10k-ease); }
a.c10k-pillar__link:hover .c10k-pillar__cta svg { transform: translateX(5px); }

/* ═══════════════════════════════════════════════════════════════════════════
   4. PROMO CARDS
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-promos { position: relative; }

.c10k-promo { padding: 3.25rem 0; }
@media (min-width: 1024px) { .c10k-promo { padding: 5.25rem 0; } }

.c10k-promo__inner { display: grid; gap: 1.75rem; }
@media (min-width: 1024px) {
  .c10k-promo__inner {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 4.5rem;
    align-items: center;
  }
  .c10k-promo__media { grid-column: 1 / span 7; grid-row: 1; }
  .c10k-promo__copy  { grid-column: 8 / span 5; grid-row: 1; }
  .c10k-promo--media-right .c10k-promo__media { grid-column: 6 / span 7; }
  .c10k-promo--media-right .c10k-promo__copy  { grid-column: 1 / span 5; }
  .c10k-promo--nomedia .c10k-promo__copy { grid-column: 1 / span 8; }
}

.c10k-promo__media { position: relative; min-width: 0; }
.c10k-promo__frame {
  position: relative;
  border-radius: var(--c10k-radius-card);
  overflow: hidden;
  background: var(--c10k-sand-200);
  box-shadow: 0 28px 64px -32px rgba(20, 22, 24, 0.55);
}
.c10k-promo__img,
.c10k-promo__frame .c10k-carousel__slide img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 16 / 10; object-fit: cover;
}
.c10k-promo__frame .embed-facade { aspect-ratio: 16 / 10; border-radius: 0; }
.c10k-promo__frame .embed-facade img { opacity: 0.88; }
.c10k-promo__frame .embed-facade:hover img { opacity: 1; }
.c10k-promo__frame .c10k-embed,
.c10k-promo__frame .c10k-carousel { margin: 0; }

/* A carousel carries its own rounded viewport, its arrows hang outside it and its
   dots sit under it — so the outer frame must not clip, tint or shadow anything. */
.c10k-promo__frame--carousel {
  background: none; box-shadow: none; overflow: visible; border-radius: 0;
}
.c10k-promo__frame--carousel .c10k-carousel__viewport {
  border-radius: var(--c10k-radius-card);
  box-shadow: 0 28px 64px -32px rgba(20, 22, 24, 0.55);
}
.c10k-promo__frame--carousel .c10k-carousel__img { border-radius: 0; }
.c10k-promo--dark .c10k-promo__frame--carousel .c10k-carousel__viewport,
.c10k-promo--blue .c10k-promo__frame--carousel .c10k-carousel__viewport {
  box-shadow: 0 28px 64px -28px rgba(0, 0, 0, 0.85);
}
.c10k-promo--dark .c10k-carousel__dot-dot,
.c10k-promo--blue .c10k-carousel__dot-dot { background: rgba(255, 255, 255, 0.38); }
.c10k-promo--dark .c10k-carousel__dot[aria-current="true"] .c10k-carousel__dot-dot,
.c10k-promo--blue .c10k-carousel__dot[aria-current="true"] .c10k-carousel__dot-dot {
  background: var(--c10k-lime-500);
}

/* offset accent rule behind the media — the editorial tell */
.c10k-promo__media::before {
  content: '';
  position: absolute;
  inset: 1.35rem -1.35rem -1.35rem 1.35rem;
  border-radius: var(--c10k-radius-card);
  border: 2px solid var(--c10k-lime-500);
  z-index: -1;
  display: none;
}
@media (min-width: 1024px) { .c10k-promo__media::before { display: block; } }
/* a carousel already has arrows + dots around it — the accent would just add clutter */
.c10k-promo__media--carousel::before { display: none; }
.c10k-promo--media-right .c10k-promo__media::before { inset: 1.35rem 1.35rem -1.35rem -1.35rem; }
.c10k-promo--lime .c10k-promo__media::before { border-color: var(--c10k-ink-900); }

.c10k-promo__copy { min-width: 0; }
.c10k-promo__eyebrow { position: relative; padding-top: 1.15rem; color: var(--c10k-muted); }
.c10k-promo__eyebrow::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 2.75rem; height: 4px; border-radius: 2px;
  background: var(--c10k-lime-500);
}
.c10k-promo__title { margin: 0; color: var(--c10k-ink-900); text-wrap: balance; }
.c10k-promo__blurb {
  margin: 1rem 0 0;
  font-size: 1.0625rem; line-height: 1.7;
  color: var(--c10k-body);
  max-width: 40ch;
}
.c10k-promo__ctas { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.6rem; }

/* tones */
.c10k-promo--light { background: #fff; }
.c10k-promo--light + .c10k-promo--light { border-top: 1px solid var(--c10k-line); }

.c10k-promo--dark { background: var(--c10k-ink-900); }
.c10k-promo--dark .c10k-promo__title { color: #fff; }
.c10k-promo--dark .c10k-promo__blurb { color: rgba(255, 255, 255, 0.8); }
.c10k-promo--dark .c10k-promo__eyebrow { color: rgba(255, 255, 255, 0.62); }
.c10k-promo--dark .c10k-promo__frame { box-shadow: 0 28px 64px -30px rgba(0, 0, 0, 0.9); }

.c10k-promo--lime { background: var(--c10k-lime-500); }
.c10k-promo--lime .c10k-promo__title { color: var(--c10k-ink-900); }
.c10k-promo--lime .c10k-promo__blurb { color: var(--c10k-ink-900); }
.c10k-promo--lime .c10k-promo__eyebrow { color: var(--c10k-lime-900); }
.c10k-promo--lime .c10k-promo__eyebrow::before { background: var(--c10k-ink-900); }

.c10k-promo--blue { background: var(--c10k-blue-500); }
.c10k-promo--blue .c10k-promo__title { color: #fff; }
.c10k-promo--blue .c10k-promo__blurb { color: rgba(255, 255, 255, 0.86); }
.c10k-promo--blue .c10k-promo__eyebrow { color: rgba(255, 255, 255, 0.72); }

/* ═══════════════════════════════════════════════════════════════════════════
   5. RESULTS TEASER
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-results {
  background: var(--c10k-ink-900);
  color: #fff;
  border-top: 4px solid var(--c10k-lime-500);
}
.c10k-results__inner {
  display: flex; flex-direction: column; gap: 1.5rem;
  padding-block: 2.75rem;
}
@media (min-width: 900px) {
  .c10k-results__inner { flex-direction: row; align-items: center; justify-content: space-between; gap: 3rem; padding-block: 3.25rem; }
}
.c10k-results__copy { max-width: 46rem; }
.c10k-results__eyebrow { color: var(--c10k-lime-500); }
.c10k-results__title { margin: 0; color: #fff; }
.c10k-results__text { margin: 0.75rem 0 0; color: rgba(255, 255, 255, 0.78); font-size: 1.0625rem; line-height: 1.65; }
.c10k-results__cta { flex: 0 0 auto; }

/* ═══════════════════════════════════════════════════════════════════════════
   6. NEWS
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-news { padding: 3.5rem 0; background: #fff; }
@media (min-width: 1024px) { .c10k-news { padding: 5rem 0; } }
.c10k-news__grid {
  display: grid; gap: 1.25rem;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 640px)  { .c10k-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .c10k-news__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; } }

/* the W3c card, tuned for the home grid */
.c10k-news .c10k-pcard--grid { height: 100%; }
.c10k-news .c10k-pcard-media { background: linear-gradient(135deg, var(--c10k-sand-200), var(--c10k-sand-100) 60%, #fff); }
.c10k-news .c10k-pcard-img { width: 100%; height: 100%; object-fit: cover; }

/* ═══════════════════════════════════════════════════════════════════════════
   7. GALLERIES
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-galleries { padding: 3.5rem 0; background: var(--c10k-sand-100); }
@media (min-width: 1024px) { .c10k-galleries { padding: 5rem 0; } }

.c10k-galleries__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 1024px) { .c10k-galleries__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }

.c10k-gtile { min-width: 0; }
.c10k-gtile__link {
  display: block; height: 100%;
  text-decoration: none; color: inherit;
  border-radius: var(--c10k-radius-card);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 2px rgba(30, 32, 34, 0.06), 0 10px 26px -18px rgba(30, 32, 34, 0.3);
  transition: transform 0.3s var(--c10k-ease), box-shadow 0.3s var(--c10k-ease);
}
.c10k-gtile__link:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -22px rgba(30, 32, 34, 0.45); }

.c10k-gtile__frame {
  position: relative; display: block;
  aspect-ratio: 4 / 3;
  background: linear-gradient(140deg, var(--c10k-ink-900), var(--c10k-ink-600));
  overflow: hidden;
}
.c10k-gtile__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s var(--c10k-ease);
}
.c10k-gtile__link:hover .c10k-gtile__img { transform: scale(1.05); }
.c10k-gtile__icon {
  position: absolute; right: 0.7rem; bottom: 0.7rem;
  display: grid; place-items: center;
  width: 2.25rem; height: 2.25rem; border-radius: 999px;
  background: rgba(16, 18, 20, 0.55);
  color: #fff;
  backdrop-filter: blur(3px);
}
.c10k-gtile__icon svg { width: 1.05rem; height: 1.05rem; }

.c10k-gtile__body { display: block; padding: 0.9rem 1rem 1.05rem; }
.c10k-gtile__title {
  display: block;
  font-size: 1.0625rem; line-height: 1.15; letter-spacing: 0.01em;
  color: var(--c10k-ink-900);
}
.c10k-gtile__count {
  display: block; margin-top: 0.3rem;
  font-family: 'Barlow Condensed', Barlow, sans-serif;
  font-size: 0.75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--c10k-muted);
}

/* ═══════════════════════════════════════════════════════════════════════════
   8. SPONSORS (in-page)
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-sponsors-home { padding: 3rem 0; background: #fff; border-top: 1px solid var(--c10k-line); }
@media (min-width: 1024px) { .c10k-sponsors-home { padding: 4rem 0; } }
.c10k-sponsors-home__head { margin: 0 0 2rem; text-align: center; color: var(--c10k-ink-900); }
.c10k-sponsors-home__presenting {
  display: flex; flex-direction: column; align-items: center; gap: 0.65rem;
  margin-bottom: 2.5rem; text-align: center;
}
.c10k-sponsors-home__presenting img { height: 2.75rem; width: auto; }
@media (min-width: 640px) { .c10k-sponsors-home__presenting img { height: 3.25rem; } }
.c10k-sponsors-home__tier + .c10k-sponsors-home__tier { margin-top: 2rem; }
.c10k-sponsors-home__tier-label { text-align: center; color: var(--c10k-muted); }
.c10k-sponsors-home__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 1.5rem 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
}
@media (min-width: 640px)  { .c10k-sponsors-home__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .c10k-sponsors-home__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
/* Sponsor logos arrive at whatever size the sponsor supplied and the markup has
   no intrinsic width/height to give the browser, so each cell reserves a fixed
   box and the logo is fitted inside it — no reflow when a late logo decodes. */
.c10k-sponsors-home__grid > li {
  display: flex; align-items: center; justify-content: center;
  min-height: 3.75rem;
}
.c10k-sponsors-home__grid img {
  height: 3.25rem; max-width: 100%; width: auto;
  object-fit: contain; object-position: center;
  filter: grayscale(1); opacity: 0.72;
  transition: filter 0.25s ease, opacity 0.25s ease;
}
.c10k-sponsors-home__grid a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; }
.c10k-sponsors-home__grid a:hover img { filter: none; opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════════════
   9. NEWSLETTER
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-newsletter { background: var(--c10k-sand-100); border-top: 1px solid var(--c10k-line); }
.c10k-newsletter__inner {
  display: grid; gap: 1.5rem;
  padding-block: 2.75rem;
}
@media (min-width: 900px) {
  .c10k-newsletter__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; padding-block: 3.25rem; }
}
.c10k-newsletter__eyebrow { color: var(--c10k-muted); }
.c10k-newsletter h2 { margin: 0; color: var(--c10k-ink-900); }
.c10k-newsletter__text { margin: 0.75rem 0 0; color: var(--c10k-body); }
.c10k-newsletter__form input[type="email"],
.c10k-newsletter__form input[type="text"] {
  width: 100%; min-height: 48px; padding: 0.65rem 1rem;
  border: 1px solid var(--c10k-line); border-radius: 999px; background: #fff;
}

/* ═══════════════════════════════════════════════════════════════════════════
   10. CLOSING CTA BAND
   ═══════════════════════════════════════════════════════════════════════════ */

.c10k-homecta {
  position: relative;
  background: var(--c10k-ink-900);
  color: #fff;
  overflow: hidden;
}
.c10k-homecta::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(60% 120% at 12% 0%, rgba(194, 213, 0, 0.22) 0%, transparent 60%),
    radial-gradient(50% 110% at 92% 100%, rgba(15, 75, 144, 0.4) 0%, transparent 62%);
  pointer-events: none;
}
.c10k-homecta__inner {
  position: relative;
  display: flex; flex-direction: column; gap: 1.75rem;
  padding-block: 3rem;
}
@media (min-width: 900px) {
  .c10k-homecta__inner { flex-direction: row; align-items: center; justify-content: space-between; gap: 3.5rem; padding-block: 4.25rem; }
}
.c10k-homecta__eyebrow { color: var(--c10k-lime-500); }
.c10k-homecta__title { margin: 0; color: #fff; letter-spacing: -0.005em; }
.c10k-homecta__text { margin: 0.85rem 0 0; max-width: 42rem; color: rgba(255, 255, 255, 0.78); }
.c10k-homecta__ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; flex: 0 0 auto; }
.c10k-homecta .c10k-register-closed { color: #fff; }

/* ═══════════════════════════════════════════════════════════════════════════
   MOTION
   ═══════════════════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  .c10k-hero__video { display: none; }
  .c10k-pillar__img,
  .c10k-gtile__img,
  a.c10k-pillar__link:hover,
  .c10k-gtile__link:hover { transition: none; transform: none; }
}
