/* HKICF flagship redesign: page-scoped composition and responsive behavior. */

.hkicf-page {
  overflow: clip;
}

.hkicf-shell {
  width: min(82.5rem, calc(100% - 4.5rem));
  margin-inline: auto;
}

.hkicf-hero {
  position: relative;
  min-height: 88svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  color: white;
}

.hkicf-hero__curve,
.hkicf-finale__curve {
  position: absolute;
  z-index: 5;
  left: 0;
  width: 100%;
  height: 6rem;
  pointer-events: none;
}

.hkicf-hero__curve {
  bottom: -1px;
}

.hkicf-hero__media,
.hkicf-hero__poster,
.hkicf-hero__video,
.hkicf-hero__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hkicf-hero__poster,
.hkicf-hero__video {
  object-fit: cover;
  object-position: center 42%;
}

.hkicf-hero__video {
  display: none;
}

.hkicf-hero__scrim {
  background:
    linear-gradient(to bottom, color-mix(in srgb, black 72%, transparent), transparent 42%, color-mix(in srgb, black 80%, transparent)),
    linear-gradient(to right, color-mix(in srgb, black 64%, transparent), transparent 64%);
}

.hkicf-hero__arcs {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.hkicf-hero__arcs span {
  position: absolute;
  left: 50%;
  bottom: 2rem;
  width: 118%;
  aspect-ratio: 1;
  translate: -50% 0;
  border: 1px solid color-mix(in srgb, white 8%, transparent);
  border-radius: 50%;
}

.hkicf-hero__arcs span:nth-child(2) {
  width: 104%;
  bottom: 5rem;
  border-color: color-mix(in srgb, white 6%, transparent);
}

.hkicf-hero__arcs span:nth-child(3) {
  width: 90%;
  bottom: 9rem;
  border-color: color-mix(in srgb, white 4%, transparent);
}

.hkicf-hero__content {
  position: relative;
  z-index: 3;
  padding-bottom: 9.5rem;
}

.hkicf-hero__content > p {
  margin-bottom: 1.25rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: color-mix(in srgb, white 78%, transparent);
}

.hkicf-hero h1 {
  max-width: 52rem;
  font-size: clamp(3.25rem, 6.3vw, 5.8rem);
  font-weight: 600;
  line-height: 0.88;
  letter-spacing: 0;
}

.hkicf-hero h1 span {
  display: block;
}

.hkicf-flagship {
  position: relative;
  padding-block: 9rem 13rem;
}

.hkicf-flagship::before {
  content: "";
  position: absolute;
  left: max(1.5rem, calc((100vw - 82.5rem) / 2 - 1.5rem));
  top: 7rem;
  bottom: 7rem;
  width: 1px;
  background: linear-gradient(to bottom, currentColor, transparent 85%);
  opacity: 0.12;
}

.hkicf-flagship__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(22rem, 0.8fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}

.hkicf-flagship__media {
  min-height: 34rem;
  max-height: 48rem;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 2rem;
  margin: 0;
}

.hkicf-flagship__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hkicf-flagship__copy h2,
.hkicf-section-intro h2,
.hkicf-sponsors__intro h2 {
  margin-block: 1rem 1.75rem;
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: 0;
}

.hkicf-flagship__copy > p:not(.section-kicker),
.hkicf-section-intro > p:last-child,
.hkicf-sponsors__intro > p:last-child,
.hkicf-values__intro > p:last-child {
  max-width: 60ch;
  font-size: 1.05rem;
  line-height: 1.75;
}

.hkicf-flagship__copy > p:not(.section-kicker) + p {
  margin-top: 1rem;
}

.hkicf-mission-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1.5rem;
  font-weight: 700;
  text-decoration: none;
}

.hkicf-mission-link svg {
  width: 1rem;
  height: 1rem;
  transition: transform 350ms cubic-bezier(0.16, 1, 0.3, 1);
}

.hkicf-mission-link:hover svg,
.hkicf-mission-link:focus-visible svg {
  transform: translate(0.15rem, -0.15rem);
}

.hkicf-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 6.5rem;
  border-block: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}

.hkicf-stats > div {
  display: flex;
  flex-direction: column-reverse;
  padding: 1.75rem 1.5rem 2rem;
  border-left: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}

.hkicf-stats > div:first-child {
  border-left: 0;
}

.hkicf-stats dt {
  margin-top: 0.5rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  opacity: 0.62;
}

.hkicf-stats dd {
  margin: 0;
  font-family: "Jost", sans-serif;
  font-size: clamp(2.8rem, 5.8vw, 5.3rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
}

.hkicf-values {
  display: grid;
  grid-template-columns: minmax(16rem, 0.75fr) minmax(0, 2.25fr);
  gap: clamp(3rem, 6vw, 6rem);
  margin-top: 8rem;
  padding-top: 4rem;
  border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.hkicf-values__intro h2 {
  margin-block: 1rem 1.5rem;
  font-size: clamp(2.4rem, 4vw, 4rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
}

.hkicf-values__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.25rem 1.5rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.hkicf-value {
  min-width: 0;
}

.hkicf-value img {
  width: 100%;
  height: 12rem;
  object-fit: contain;
}

.hkicf-value > span {
  display: block;
  margin-top: 0.75rem;
  font-family: "Jost", sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.25;
}

.hkicf-programmes,
.hkicf-sponsors {
  position: relative;
}

.hkicf-programmes {
  padding-block: 10rem 13rem;
}

.hkicf-programmes::before,
.hkicf-sponsors::before,
.hkicf-finale::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: -10%;
  top: -7rem;
  width: 120%;
  height: 7.1rem;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  background: inherit;
  pointer-events: none;
}

.hkicf-section-intro,
.hkicf-sponsors__intro {
  position: relative;
  z-index: 3;
  margin-bottom: 5rem;
}

.hkicf-section-intro > p:last-child,
.hkicf-sponsors__intro > p:last-child {
  opacity: 0.68;
}

.hkicf-objectives {
  display: grid;
  gap: 7rem;
}

.hkicf-objective {
  display: grid;
  grid-template-columns: 14rem minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  padding-top: 2.5rem;
  border-top: 1px solid color-mix(in srgb, white 16%, transparent);
}

.hkicf-objective__header {
  position: sticky;
  top: 2rem;
  align-self: start;
}

.hkicf-programme__number {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  opacity: 0.62;
}

.hkicf-objective__header h3 {
  margin-block: 0 0.75rem;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: 0;
}

.hkicf-objective__audience {
  margin-bottom: 1.25rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.68;
}

.hkicf-objective__header > p:last-child {
  font-size: 0.9rem;
  line-height: 1.65;
  opacity: 0.64;
}

.hkicf-programme-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.hkicf-programme {
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.hkicf-programme__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 1;
  border-radius: 1rem;
  background: color-mix(in srgb, white 6%, transparent);
}

.hkicf-programme__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 550ms cubic-bezier(0.16, 1, 0.3, 1), filter 550ms cubic-bezier(0.16, 1, 0.3, 1);
}

.hkicf-programme__caption {
  display: grid;
  grid-template-columns: 1.6rem minmax(0, 1fr) 1rem;
  gap: 0.6rem;
  align-items: start;
  min-height: 4.5rem;
  padding-block: 0.9rem;
  border-bottom: 1px solid color-mix(in srgb, white 14%, transparent);
  font-family: "Jost", sans-serif;
  font-size: 0.94rem;
  font-weight: 500;
  line-height: 1.25;
}

.hkicf-programme__caption svg {
  width: 1rem;
  height: 1rem;
  transition: transform 350ms cubic-bezier(0.16, 1, 0.3, 1);
}

.hkicf-programme:hover .hkicf-programme__media img,
.hkicf-programme:focus-visible .hkicf-programme__media img {
  transform: scale(1.035);
  filter: brightness(1.06);
}

.hkicf-programme:hover .hkicf-programme__caption svg,
.hkicf-programme:focus-visible .hkicf-programme__caption svg {
  transform: translate(0.15rem, -0.15rem);
}

.hkicf-sponsors {
  padding-block: 10rem 11rem;
  z-index: 1;
}

.hkicf-sponsors__intro {
  max-width: 48rem;
  text-align: center;
}

.hkicf-sponsors__intro > p:last-child {
  margin-inline: auto;
}

.hkicf-sponsor-directory {
  border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.hkicf-sponsor-group {
  display: grid;
  grid-template-columns: 17rem minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  padding-block: 2.5rem;
  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.hkicf-sponsor-group__header {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-content: start;
  column-gap: 0.75rem;
}

.hkicf-sponsor-group__header > span {
  padding-top: 0.25rem;
  font-size: 0.66rem;
  font-weight: 700;
  opacity: 0.55;
}

.hkicf-sponsor-group__header h3 {
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0;
}

.hkicf-sponsor-group__header p {
  grid-column: 2;
  margin-top: 0.5rem;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.5;
}

.hkicf-logo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.hkicf-logo {
  min-width: 0;
}

.hkicf-logo__mat {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 6.5rem;
  padding: 1.35rem;
  border-radius: 0.5rem;
  background: white;
}

.hkicf-logo__mat img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Per-logo visual-weight calibration: each logo carries a --logo-scale
   factor (see calibration map below) so every mark on the wall converges
   on the same perceived ink weight within its tier. Factors were hand-tuned
   against the median ink weight of each tier (2026-07-29); to recalibrate,
   adjust the single number for that logo — 1 = fill the mat, smaller = quieter. */
.hkicf-logo__mat img {
  transform: scale(var(--logo-scale, 1));
}

/* --- Logo weight calibration map --------------------------------------- */

/* Tier 1 — Springboard Grant / Principal Sponsor (12.5rem mats) */
.hkicf-logo:has(img[src*="partners/springboard-grant."]) { --logo-scale: 1; }
.hkicf-logo:has(img[src*="partners/principal-sponsor."]) { --logo-scale: 0.82; }

/* Tier 2 — Strategic Partners & Sponsors (9rem mats) */
.hkicf-logo:has(img[src*="partners/hang-lung."]) { --logo-scale: 1.10; }
.hkicf-logo:has(img[src*="partners/lee-hysan."]) { --logo-scale: 0.76; }
.hkicf-logo:has(img[src*="partners/ppg."]) { --logo-scale: 0.9; }

/* Tier 3 — Supported By (7.5rem mats) */
.hkicf-logo:has(img[src*="partners/hkbank-foundation."]) { --logo-scale: 1.21; }
.hkicf-logo:has(img[src*="partners/hkadc."]) { --logo-scale: 1.06; }
.hkicf-logo:has(img[src*="partners/shaw-foundation."]) { --logo-scale: 1; }
.hkicf-logo:has(img[src*="partners/cbi."]) { --logo-scale: 0.63; }
.hkicf-logo:has(img[src*="partners/tung-foundation."]) { --logo-scale: 0.91; }

/* Tier 4 — all remaining categories (6.5rem mats) */
.hkicf-logo:has(img[src*="partners/ppl."]) { --logo-scale: 1.1; }
.hkicf-logo:has(img[src*="partners/ppf."]) { --logo-scale: 0.76; }
.hkicf-logo:has(img[src*="partners/allways."]) { --logo-scale: 1.17; }
.hkicf-logo:has(img[src*="partners/hkcc."]) { --logo-scale: 1.25; }
.hkicf-logo:has(img[src*="partners/inspiringhk."]) { --logo-scale: 1.04; }
.hkicf-logo:has(img[src*="partners/kwmdc."]) { --logo-scale: 1.11; }
.hkicf-logo:has(img[src*="partners/sunday-morning-music."]) { --logo-scale: 1.2; }
.hkicf-logo:has(img[src*="partners/hahaha."]) { --logo-scale: 1.09; }
.hkicf-logo:has(img[src*="partners/wait-what-studio."]) { --logo-scale: 1.21; }
.hkicf-logo:has(img[src*="partners/andy-wong-studio."]) { --logo-scale: 0.75; }
.hkicf-logo:has(img[src*="partners/orangechan."]) { --logo-scale: 0.68; }
.hkicf-logo:has(img[src*="partners/mino-digital."]) { --logo-scale: 0.82; }
.hkicf-logo:has(img[src*="partners/wati."]) { --logo-scale: 0.58; }
.hkicf-logo:has(img[src*="partners/abrsm."]) { --logo-scale: 0.79; }
.hkicf-logo:has(img[src*="partners/mondrian."]) { --logo-scale: 0.99; }
.hkicf-logo:has(img[src*="partners/voces8."]) { --logo-scale: 0.93; }
.hkicf-logo:has(img[src*="partners/rthk."]) { --logo-scale: 0.88; }
.hkicf-logo:has(img[src*="partners/rthk32."]) { --logo-scale: 0.86; }
.hkicf-logo:has(img[src*="partners/rthk4."]) { --logo-scale: 0.98; }
.hkicf-logo:has(img[src*="partners/youngpost."]) { --logo-scale: 1.1; }
.hkicf-logo:has(img[src*="partners/oup."]) { --logo-scale: 0.93; }
.hkicf-logo:has(img[src*="partners/muziksea."]) { --logo-scale: 0.82; }
.hkicf-logo:has(img[src*="partners/tomlee."]) { --logo-scale: 0.82; }
.hkicf-logo:has(img[src*="partners/print100."]) { --logo-scale: 0.96; }
.hkicf-logo:has(img[src*="partners/mtr."]) { --logo-scale: 0.98; }
.hkicf-logo:has(img[src*="partners/asia-society."]) { --logo-scale: 0.90; }
.hkicf-logo:has(img[src*="partners/cuhk-music."]) { --logo-scale: 1.03; }
.hkicf-logo:has(img[src*="partners/eduhk."]) { --logo-scale: 0.95; }
.hkicf-logo:has(img[src*="partners/every-life."]) { --logo-scale: 0.97; }
.hkicf-logo:has(img[src*="partners/handson."]) { --logo-scale: 1.35; }
.hkicf-logo:has(img[src*="partners/hkapa."]) { --logo-scale: 0.89; }
.hkicf-logo:has(img[src*="partners/sage."]) { --logo-scale: 0.93; }
.hkicf-logo:has(img[src*="partners/hktram."]) { --logo-scale: 0.61; }
.hkicf-logo:has(img[src*="partners/mindhk."]) { --logo-scale: 0.62; }
.hkicf-logo:has(img[src*="partners/mx-music-crossing."]) { --logo-scale: 1.01; }
.hkicf-logo:has(img[src*="partners/nats-hk."]) { --logo-scale: 0.99; }
.hkicf-logo:has(img[src*="partners/noema."]) { --logo-scale: 0.98; }
.hkicf-logo:has(img[src*="partners/time-auction."]) { --logo-scale: 0.70; }
.hkicf-logo:has(img[src*="partners/usc."]) { --logo-scale: 1.02; }
.hkicf-logo:has(img[src*="partners/vos."]) { --logo-scale: 1.34; }
.hkicf-logo:has(img[src*="partners/xiqu."]) { --logo-scale: 0.91; }
.hkicf-logo:has(img[src*="partners/wacc."]) { --logo-scale: 1.44; }
.hkicf-logo:has(img[src*="partners/wccn."]) { --logo-scale: 0.94; }
.hkicf-logo:has(img[src*="partners/yca."]) { --logo-scale: 0.60; }
.hkicf-logo:has(img[src*="partners/hkicf-by-hkvc."]) { --logo-scale: 0.95; }
.hkicf-logo:has(img[src*="partners/art-mate."]) { --logo-scale: 0.72; }
.hkicf-logo:has(img[src*="partners/oceanpark."]) { --logo-scale: 0.87; }
.hkicf-logo:has(img[src*="partners/tungpo."]) { --logo-scale: 0.82; }

.hkicf-logo__name {
  display: block;
  margin: 0.55rem 0.25rem 0;
  font-size: 0.68rem;
  line-height: 1.35;
  opacity: 0.68;
}

.hkicf-sponsor-group--tier-1 {
  display: block;
  padding-block: 5.5rem;
  text-align: center;
}

.hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header {
  display: block;
  margin-bottom: 2rem;
}

.hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header > span {
  display: block;
  margin-bottom: 0.75rem;
}

.hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header p {
  display: none;
}

.hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header h3 {
  font-size: 1.65rem;
}

.hkicf-sponsor-group--tier-1 .hkicf-logo-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 55rem;
  margin-inline: auto;
}

.hkicf-sponsor-group[data-sponsor-category="springboard-grant"] .hkicf-logo-grid,
.hkicf-sponsor-group[data-sponsor-category="principal-sponsor"] .hkicf-logo-grid {
  grid-template-columns: minmax(0, 27.5rem);
  justify-content: center;
}

.hkicf-sponsor-group--tier-1 .hkicf-logo__mat {
  height: 12.5rem;
  padding: 2.4rem;
}

.hkicf-sponsor-group--tier-1 .hkicf-logo__name {
  text-align: center;
  font-size: 0.78rem;
}

.hkicf-sponsor-group--tier-2,
.hkicf-sponsor-group--tier-3 {
  padding-block: 4.25rem;
}

.hkicf-sponsor-group--tier-2 .hkicf-logo-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hkicf-sponsor-group--tier-2 .hkicf-logo__mat {
  height: 9rem;
  padding: 1.8rem;
}

.hkicf-sponsor-group--tier-3 .hkicf-logo-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.hkicf-sponsor-group--tier-3 .hkicf-logo__mat {
  height: 7.5rem;
  padding: 1.4rem;
}

.hkicf-finale {
  position: relative;
  min-height: clamp(40rem, 74svh, 48rem);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  margin-top: -1px;
}

.hkicf-finale::before {
  display: none;
}

.hkicf-finale__curve {
  top: -1px;
}

.hkicf-finale__image,
.hkicf-finale__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hkicf-finale__image {
  z-index: -2;
  object-fit: cover;
  object-position: center 48%;
}

.hkicf-finale__scrim {
  z-index: -1;
  background:
    linear-gradient(to right, color-mix(in srgb, black 94%, transparent), color-mix(in srgb, black 66%, transparent) 48%, color-mix(in srgb, black 18%, transparent) 78%),
    linear-gradient(to top, color-mix(in srgb, black 86%, transparent), transparent 64%);
}

.hkicf-finale__content {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 10rem minmax(0, 1.5fr) minmax(17rem, 0.7fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: end;
  padding-block: 8rem 4.5rem;
}

.hkicf-finale__copy h2 {
  font-size: clamp(3.6rem, 6.4vw, 6rem);
  font-weight: 600;
  line-height: 0.92;
  letter-spacing: 0;
}

.hkicf-finale__copy p {
  max-width: 54ch;
  margin-top: 1.5rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: color-mix(in srgb, white 84%, transparent);
}

.hkicf-finale__action a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  width: 100%;
  padding: 0.65rem 0.65rem 0.65rem 1.5rem;
  border-radius: 999px;
  color: white;
  text-decoration: none;
  font-weight: 700;
}

.hkicf-finale__action a svg {
  flex: 0 0 auto;
  width: 2.6rem;
  height: 2.6rem;
  padding: 0.75rem;
  border-radius: 50%;
  background: color-mix(in srgb, black 20%, transparent);
  transition: transform 350ms cubic-bezier(0.16, 1, 0.3, 1);
}

.hkicf-finale__action a:hover svg,
.hkicf-finale__action a:focus-visible svg {
  transform: translate(0.15rem, -0.15rem);
}

@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
  .hkicf-hero__video {
    display: block;
  }
}

@media (max-width: 1100px) {
  .hkicf-shell {
    width: min(60rem, calc(100% - 3rem));
  }

  .hkicf-flagship__grid {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.8fr);
    gap: 3rem;
  }

  .hkicf-values {
    grid-template-columns: 1fr;
  }

  .hkicf-values__intro {
    max-width: 42rem;
  }

  .hkicf-programme-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hkicf-sponsor-group {
    grid-template-columns: 13rem minmax(0, 1fr);
    gap: 2rem;
  }

  .hkicf-logo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hkicf-sponsor-group--tier-3 .hkicf-logo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hkicf-finale__content {
    grid-template-columns: 8rem minmax(0, 1fr);
  }

  .hkicf-finale__action {
    grid-column: 2;
    max-width: 24rem;
  }
}

@media (max-width: 767px) {
  .hkicf-shell {
    width: calc(100% - 2rem);
  }

  .hkicf-hero {
    min-height: 76svh;
  }

  .hkicf-hero__curve,
  .hkicf-finale__curve {
    height: 4rem;
  }

  .hkicf-hero__poster {
    object-position: 55% center;
  }

  .hkicf-hero__arcs span {
    width: 190%;
  }

  .hkicf-hero__arcs span:nth-child(2) {
    width: 170%;
  }

  .hkicf-hero__arcs span:nth-child(3) {
    width: 145%;
  }

  .hkicf-hero__content {
    padding-bottom: 6.5rem;
  }

  .hkicf-hero__content > p {
    margin-bottom: 0.8rem;
    font-size: 0.58rem;
  }

  .hkicf-hero h1 {
    max-width: 22rem;
    font-size: clamp(2.5rem, 11vw, 3.25rem);
    line-height: 0.98;
  }

  .hkicf-flagship {
    padding-block: 6.5rem 9rem;
  }

  .hkicf-flagship::before {
    display: none;
  }

  .hkicf-flagship__grid {
    display: flex;
    flex-direction: column-reverse;
    gap: 3rem;
  }

  .hkicf-flagship__media {
    width: 100%;
    min-height: 0;
    max-height: none;
    aspect-ratio: 4 / 5;
  }

  .hkicf-flagship__copy h2,
  .hkicf-section-intro h2,
  .hkicf-sponsors__intro h2 {
    font-size: 2.7rem;
  }

  .hkicf-flagship__copy > p:not(.section-kicker),
  .hkicf-section-intro > p:last-child,
  .hkicf-sponsors__intro > p:last-child,
  .hkicf-values__intro > p:last-child {
    font-size: 0.98rem;
  }

  .hkicf-stats {
    grid-template-columns: 1fr;
    margin-top: 4rem;
  }

  .hkicf-stats > div {
    padding: 1.1rem 0;
    border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
    border-left: 0;
  }

  .hkicf-stats > div:first-child {
    border-top: 0;
  }

  .hkicf-stats dd {
    font-size: 2.8rem;
  }

  .hkicf-values {
    gap: 2.5rem;
    margin-top: 5rem;
    padding-top: 3rem;
  }

  .hkicf-values__intro h2 {
    font-size: 2.5rem;
  }

  .hkicf-values__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1rem;
  }

  .hkicf-value img {
    height: 10rem;
  }

  .hkicf-value > span {
    font-size: 0.82rem;
  }

  .hkicf-programmes {
    padding-block: 7rem 9rem;
  }

  .hkicf-programmes::before,
  .hkicf-sponsors::before {
    top: -3.75rem;
    height: 3.8rem;
  }

  .hkicf-sponsors::after {
    height: 3.75rem;
  }

  .hkicf-section-intro,
  .hkicf-sponsors__intro {
    margin-bottom: 3.5rem;
  }

  .hkicf-objectives {
    gap: 5rem;
  }

  .hkicf-objective {
    display: block;
    padding-top: 2rem;
  }

  .hkicf-objective__header {
    position: static;
    margin-bottom: 2rem;
  }

  .hkicf-objective__header h3 {
    font-size: 1.85rem;
  }

  .hkicf-objective__header > p:last-child {
    max-width: 38rem;
  }

  .hkicf-programme-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .hkicf-programme {
    display: grid;
    grid-template-columns: 7.25rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding-block: 1rem;
    border-bottom: 1px solid color-mix(in srgb, white 14%, transparent);
  }

  .hkicf-programme__media {
    border-radius: 0.75rem;
  }

  .hkicf-programme__caption {
    min-height: 0;
    padding: 0;
    border-bottom: 0;
    font-size: 0.9rem;
  }

  .hkicf-sponsors {
    padding-block: 7rem 7rem;
  }

  .hkicf-sponsor-group,
  .hkicf-sponsor-group--tier-1 {
    display: block;
    padding-block: 2.5rem;
    text-align: left;
  }

  .hkicf-sponsor-group__header,
  .hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    margin-bottom: 1.5rem;
  }

  .hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header > span {
    margin: 0;
  }

  .hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header h3 {
    font-size: 1.5rem;
  }

  .hkicf-sponsor-group--tier-1 .hkicf-sponsor-group__header p {
    display: block;
  }

  .hkicf-logo-grid,
  .hkicf-sponsor-group--tier-1 .hkicf-logo-grid,
  .hkicf-sponsor-group--tier-2 .hkicf-logo-grid,
  .hkicf-sponsor-group--tier-3 .hkicf-logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .hkicf-sponsor-group--tier-1 .hkicf-logo-grid {
    grid-template-columns: 1fr;
  }

  .hkicf-logo__mat {
    height: 6rem;
    padding: 1.1rem;
  }

  .hkicf-logo__name,
  .hkicf-sponsor-group--tier-1 .hkicf-logo__name {
    font-size: 0.7rem;
    text-align: left;
  }

  .hkicf-sponsor-group--tier-1 .hkicf-logo__mat {
    height: 9.5rem;
    padding: 2rem;
  }

  .hkicf-sponsor-group--tier-2 .hkicf-logo__mat {
    height: 7.5rem;
  }

  .hkicf-sponsor-group--tier-3 .hkicf-logo__mat {
    height: 6.5rem;
  }

  .hkicf-finale {
    min-height: clamp(42rem, 82svh, 46rem);
  }

  .hkicf-finale__image {
    object-position: 53% center;
  }

  .hkicf-finale__scrim {
    background: linear-gradient(to top, color-mix(in srgb, black 97%, transparent), color-mix(in srgb, black 76%, transparent) 52%, color-mix(in srgb, black 16%, transparent) 86%);
  }

  .hkicf-finale__content {
    display: block;
    padding-block: 7rem 3rem;
  }

  .hkicf-finale__content > .section-kicker {
    margin-bottom: 1.5rem;
  }

  .hkicf-finale__copy h2 {
    font-size: 3.4rem;
  }

  .hkicf-finale__copy p {
    margin-top: 1.15rem;
    font-size: 0.95rem;
  }

  .hkicf-finale__action {
    margin-top: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hkicf-mission-link svg,
  .hkicf-programme__media img,
  .hkicf-programme__caption svg,
  .hkicf-finale__action a svg {
    transition: none;
  }
}
