/* Stepace Recaps — public past-event pages. Black / white / orange, Futura (theme fonts). */
.rc { --o: #E7511F; --k: #0B0B0B; --w: #FFFFFF; --m: rgba(255,255,255,.62); position: relative; z-index: 2; background: var(--k); color: var(--w); }
.rc * { box-sizing: border-box; }
.rc img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rc a { color: inherit; text-decoration: none; }
.rc-eyebrow { margin: 0 0 18px; font-family: monospace; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--o); }

/* Hero */
.rc-hero { position: relative; min-height: 88vh; display: flex; align-items: flex-end; overflow: hidden; }
.rc-hero__img { position: absolute; inset: 0; z-index: 0; }
.rc-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.rc-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(11,11,11,.30) 0%, rgba(11,11,11,.55) 45%, rgba(11,11,11,.94) 100%); }
.rc-hero__in { position: relative; z-index: 2; width: 100%; padding: 14vh 5vw 8vh; }
.rc-back { display: inline-block; margin-bottom: 4vh; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; border-bottom: 2px solid var(--o); padding-bottom: 3px; }
.rc-kicker { text-shadow: 0 1px 12px rgba(0,0,0,.6); margin: 0 0 14px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--o); }
.rc-title { margin: 0; font-weight: 900; font-size: clamp(44px, 8.5vw, 132px); line-height: .88; letter-spacing: -.03em; text-transform: uppercase; max-width: 14ch; }
.rc-title span { color: var(--o); }
.rc-tagline { margin: 22px 0 0; max-width: 46ch; font-size: clamp(16px, 1.6vw, 22px); line-height: 1.4; color: rgba(255,255,255,.88); text-transform: none; }
.rc-meta { margin: 26px 0 0; font-family: monospace; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--m); }

/* Numbers */
.rc-stats { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--o); color: var(--w); }
.rc-stat { padding: 6vh 2.5vw; border-right: 1px solid rgba(255,255,255,.28); display: flex; flex-direction: column; gap: 10px; }
.rc-stat:first-child { padding-left: 5vw; }
.rc-stat:last-child { border-right: 0; }
.rc-stat__n { font-weight: 900; font-size: clamp(44px, 6vw, 92px); line-height: .9; letter-spacing: -.03em; white-space: nowrap; }
.rc-stat__l { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.4; }

/* Story */
.rc-story { display: grid; grid-template-columns: 1.15fr 1fr; gap: 6vw; padding: 12vh 5vw; background: var(--w); color: var(--k); }
.rc-story__text p { margin: 0 0 1.1em; font-size: clamp(17px, 1.45vw, 21px); line-height: 1.6; text-transform: none; color: #262626; }
.rc-story__text .rc-eyebrow { color: var(--o); }
.rc-partners { margin-top: 2em !important; font-size: 13px !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase !important; color: var(--k) !important; }
.rc-partners strong { color: var(--o); }
.rc-hl { list-style: none; margin: 0; padding: 0; border-top: 3px solid var(--k); align-self: start; }
.rc-hl li { padding: 22px 0; border-bottom: 1px solid rgba(11,11,11,.14); display: flex; flex-direction: column; gap: 6px; }
.rc-hl__t { font-weight: 900; font-size: clamp(20px, 1.8vw, 28px); text-transform: uppercase; line-height: 1.05; }
.rc-hl__p { font-size: 15px; line-height: 1.5; color: #4D4D4D; text-transform: none; }

/* Feature */
.rc-feature { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4vw; align-items: center; padding: 12vh 5vw; background: var(--k); }
.rc-feature h2 { margin: 0; font-weight: 900; font-size: clamp(36px, 5vw, 76px); line-height: .9; letter-spacing: -.03em; text-transform: uppercase; }
.rc-feature__text p:not(.rc-eyebrow) { margin: 22px 0 0; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.78); text-transform: none; }
.rc-feature__imgs { display: grid; gap: 8px; }
.rc-feature__imgs figure { margin: 0; overflow: hidden; border-radius: 4px; aspect-ratio: 4 / 5; }
.rc-feature__imgs.n2 { grid-template-columns: 1fr 1fr; }
.rc-feature__imgs.n3 { grid-template-columns: repeat(3, 1fr); }
.rc-feature__imgs.n4 { grid-template-columns: 1fr 1fr; }
.rc-feature__imgs.n4 figure { aspect-ratio: 1 / 1; }

/* Gallery */
.rc-gallery { padding: 10vh 5vw 12vh; background: var(--k); border-top: 1px solid rgba(255,255,255,.1); }
.rc-grid { columns: 4 240px; column-gap: 8px; }
.rc-grid a { display: block; margin: 0 0 8px; break-inside: avoid; overflow: hidden; border-radius: 4px; }
.rc-grid img { height: auto; transition: transform .5s ease; }
.rc-grid a:hover img { transform: scale(1.03); }

/* CTA */
.rc-cta { padding: 12vh 5vw; text-align: center; background: var(--o); }
.rc-cta h2 { margin: 0; font-weight: 900; font-size: clamp(38px, 6vw, 96px); line-height: .9; letter-spacing: -.03em; text-transform: uppercase; }
.rc-cta h2 span { color: var(--k); }
.rc-cta__btns { margin-top: 5vh; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.rc-btn { display: inline-flex; align-items: center; padding: 14px 24px; border-radius: 100px; background: var(--k); color: var(--w) !important; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.rc-btn--ghost { background: transparent; border: 1.5px solid var(--k); color: var(--k) !important; }

/* Cards */
.rc-more { padding: 10vh 5vw; background: var(--k); }
.rc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px; }
.rc-card { display: flex; flex-direction: column; gap: 8px; }
.rc-card__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; background: #1a1a1a; margin-bottom: 8px; }
.rc-card__img img { transition: transform .5s ease; }
.rc-card:hover .rc-card__img img { transform: scale(1.04); }
.rc-card__date { font-family: monospace; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--o); }
.rc-card__title { font-weight: 900; font-size: clamp(24px, 2.2vw, 34px); line-height: .95; text-transform: uppercase; letter-spacing: -.02em; }
.rc-card__place { font-size: 13px; color: var(--m); text-transform: none; }

/* Archive */
.rc-archive { padding-top: 0; }
.rc-arch-head { padding: 14vh 5vw 8vh; }
.rc-cards--all { padding: 0 5vw 12vh; }
.rc-empty { padding: 0 5vw 12vh; color: var(--m); }

@media (max-width: 900px) {
  .rc-hero { min-height: 78svh; }
  .rc-hero__in { padding: 12vh 20px 6vh; }
  .rc-stats { grid-template-columns: 1fr 1fr; }
  .rc-stat, .rc-stat:first-child { padding: 28px 20px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.28); }
  .rc-stat:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.28); }
  .rc-stat__n { font-size: clamp(36px, 11vw, 52px); }
  .rc-stat__l { font-size: 11px; }
  .rc-story, .rc-feature { grid-template-columns: 1fr; gap: 40px; padding: 64px 20px; }
  .rc-feature__imgs.n3 { grid-template-columns: 1fr 1fr; }
  .rc-feature__imgs.n3 figure:first-child { grid-column: span 2; aspect-ratio: 4 / 3; }
  .rc-gallery { padding: 56px 20px 64px; }
  .rc-grid { columns: 2 140px; column-gap: 6px; }
  .rc-grid a { margin-bottom: 6px; }
  .rc-cta { padding: 72px 20px; }
  .rc-more { padding: 56px 20px; }
  .rc-arch-head { padding: 72px 20px 40px; }
  .rc-cards--all { padding: 0 20px 72px; }
}

/* Homepage block: Past experiences */
.rc-past { padding: 12vh 5vw; border-top: 1px solid rgba(255,255,255,.1); }
.rc-past__head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 20px; margin-bottom: 5vh; }
.rc-past__h { margin: 0; font-weight: 900; font-size: clamp(38px, 6.5vw, 104px); line-height: .9; letter-spacing: -.03em; text-transform: uppercase; max-width: 16ch; }
.rc-past__h span { color: var(--o); }
.rc-past__all { font-size: 13px; font-weight: 700; letter-spacing: .1em; border-bottom: 2px solid var(--o); padding-bottom: 4px; white-space: nowrap; }
.rc-past__grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
.rc-past.n2 .rc-past__grid { grid-template-columns: 1fr 1fr; }
.rc-past.n3 .rc-past__grid { grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; }
.rc-past.n3 .rc-past__card:first-child { grid-row: span 2; }
.rc-past__card { position: relative; display: block; min-height: 72vh; overflow: hidden; border-radius: 6px; background: #1a1a1a; isolation: isolate; }
.rc-past.n3 .rc-past__card:not(:first-child) { min-height: 35vh; }
.rc-past__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.rc-past__card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,11,11,.05) 30%, rgba(11,11,11,.88) 100%); }
.rc-past__card:hover .rc-past__img { transform: scale(1.05); }
.rc-past__in { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(22px, 3vw, 48px); display: flex; flex-direction: column; gap: 10px; }
.rc-past__date { font-family: monospace; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--o); }
.rc-past__title { font-weight: 900; font-size: clamp(34px, 5vw, 84px); line-height: .88; letter-spacing: -.03em; text-transform: uppercase; }
.rc-past__tag { font-size: clamp(14px, 1.2vw, 18px); color: rgba(255,255,255,.85); max-width: 48ch; }
.rc-past__stats { display: flex; gap: 28px; margin-top: 6px; }
.rc-past__stats span { display: flex; flex-direction: column; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.rc-past__stats b { font-size: clamp(30px, 3vw, 48px); font-weight: 900; line-height: 1; letter-spacing: -.02em; color: #fff; margin-bottom: 4px; }
.rc-past__go { margin-top: 10px; align-self: flex-start; padding: 11px 20px; border-radius: 100px; background: var(--o); color: var(--k); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
@media (max-width: 900px) {
  .rc-past { padding: 72px 20px; }
  .rc-past__grid, .rc-past.n2 .rc-past__grid, .rc-past.n3 .rc-past__grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .rc-past.n3 .rc-past__card:first-child { grid-row: auto; }
  .rc-past__card, .rc-past.n3 .rc-past__card:not(:first-child) { min-height: 118vw; }
}
