/* celebrity-person / red-carpet (own skeleton: variants/red-carpet.html + .js)
   Awards night. The first screen is the photo call: an ivory step-and-repeat of the
   project's NAME and $TICKER (text only, tiled by red-carpet.js), dimmed at the edges and
   crossed by three slow spotlight beams, a black velvet valance with a gold fringe, camera
   flashes popping at the sides, the red carpet running in at the bottom between brass
   stanchions and velvet ropes, and the hero art as a full-height portrait standing on it.
   The copy is engraved on a brass plate in a walnut frame; the ticker sits in a laurel.
   Below, the carpet runs on down a velvet hall and every section is a nominee plaque on
   one side of it or the other (a program card for the evening, a press board for the
   photos, envelopes for the questions, a pass at the end for the contract).
   Polarity: ivory wall over black velvet, whatever the brand; the brand arrives as the
   step-and-repeat ink and the plaque ordinals. Type: tracked Didone capitals. */

:root {
  --rc-top-h: 60px;
  --rc-wall: color-mix(in srgb, var(--wl-accent) 5%, #f1ebe1);
  --rc-ink: #1c1412;
  --rc-velvet: #120809;
  --rc-velvet-2: #1d0c0f;
  --rc-red: color-mix(in srgb, var(--wl-accent) 10%, #93101d);
  --rc-red-lo: #5a0710;
  --rc-gold-hi: #fff1c8;
  --rc-gold: #d6ae55;
  --rc-gold-lo: #9a7127;
  --rc-gold-deep: #5c3f10;
  --rc-engrave: #2b1d08;
  --rc-engrave-soft: #4d3913;
  --rc-brass:
    repeating-linear-gradient(90deg, rgb(255 255 255 / 0.05) 0 1px, transparent 1px 3px),
    linear-gradient(162deg, #f3dd9c 0%, #d3ab58 30%, #f6e4ad 52%, #c29a47 74%, #e8cf8c 100%);
  --rc-walnut:
    repeating-linear-gradient(92deg, rgb(0 0 0 / 0.14) 0 2px, transparent 2px 9px, rgb(255 220 180 / 0.05) 9px 11px, transparent 11px 23px),
    linear-gradient(180deg, #5b3220 0%, #3f2014 55%, #2c150c 100%);
  --rc-nap:
    repeating-linear-gradient(90deg, rgb(0 0 0 / 0.12) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(0deg, rgb(255 255 255 / 0.03) 0 1px, transparent 1px 5px);
  --rc-didone: "Didot", "Bodoni 72", "Bodoni MT", "Libre Bodoni", "Playfair Display", "Liberation Serif", "Times New Roman", serif;
  --rc-book: "Baskerville", "Baskerville Old Face", "Libre Baskerville", "Iowan Old Style", "Liberation Serif", "Times New Roman", serif;
  --rc-caps: "Gill Sans", "Gill Sans MT", "Futura", "Century Gothic", "Liberation Sans", Arial, sans-serif;

  --v-bg: var(--rc-velvet);
  --v-fg: #f3e7cf;
  --v-soft: color-mix(in srgb, #f3e7cf 78%, var(--rc-velvet));
  --v-faint: color-mix(in srgb, #f3e7cf 55%, var(--rc-velvet));
  --v-line: color-mix(in srgb, var(--rc-gold) 28%, transparent);
  --v-line-strong: color-mix(in srgb, var(--rc-gold) 60%, transparent);
  --v-surface: #1b0e10;
  --v-surface-2: #281519;
  --v-card-bg: #fbf5e8;
  --v-accent: var(--rc-gold);
  --v-accent-text: var(--rc-gold);
  --v-on-accent: #1c1206;
  --v-secondary: var(--wl-accent-on-dark);
  --v-seg-1: var(--rc-red);
  --v-seg-2: var(--rc-gold-deep);
  --v-seg-3: var(--wl-accent-on-light);
  --v-seg-4: #2b1d08;
  --v-seg-5: #8c6a22;
  --v-seg-6: #b89a5c;
  --v-font-body: var(--rc-book);
  --v-font-display: var(--rc-didone);
  --v-font-mono: "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", monospace;
  --v-display-weight: 400;
  --v-display-tracking: 0.06em;
  --v-display-case: uppercase;
  --v-display-lh: 1.02;
  --v-title-size: clamp(1.7rem, 2.5vw, 2.3rem);
  --v-body-size: clamp(1rem, 0.25vw + 0.95rem, 1.1rem);
  --v-radius: 3px;
  --v-radius-sm: 2px;
  --v-radius-lg: 10px;
  --v-border: 1px solid var(--v-line);
  --v-shadow: 0 1px 0 rgb(255 240 200 / 0.25) inset, 0 30px 50px -28px rgb(0 0 0 / 0.9);
  --v-card-pad: clamp(18px, 2vw, 26px);
  --v-maxw: 1180px;
  --v-sec-gap: 0px;
  --v-ease: cubic-bezier(0.2, 0.7, 0.15, 1);

  --wl-label-lore: "The honoree";
  --wl-label-features: "Highlights";
  --wl-label-supply: "The numbers";
  --wl-label-flow: "Order of ceremony";
  --wl-label-timeline: "The evening";
  --wl-label-comparison: "Side by side";
  --wl-label-stats: "The numbers";
  --wl-label-tweet: "From the press line";
  --wl-label-gallery: "Press wall";
  --wl-label-facts: "For the record";
  --wl-label-quotes: "From the carpet";
  --wl-label-faq: "The envelope, please";
  --wl-label-access: "Guest list";
}

html { background: var(--rc-velvet); color-scheme: dark; }
body { background: var(--rc-velvet); }
.rc { min-height: 100vh; }

/* ------------------------------------------------------------------ top bar */
.rc-top {
  position: sticky; top: 0; z-index: 40;
  height: var(--rc-top-h);
  display: flex; align-items: center; gap: 24px;
  padding: 0 var(--v-pad-x);
  background: #0c0607;
  border-bottom: 1px solid color-mix(in srgb, var(--rc-gold) 55%, transparent);
  box-shadow: 0 1px 0 #000, 0 10px 30px -12px rgb(0 0 0 / 0.8);
}
.rc-brand { display: inline-flex; align-items: center; gap: 12px; min-width: 0; flex: 0 1 auto; text-decoration: none; color: var(--rc-gold-hi); }
.rc-brand__mark { width: 34px; height: 34px; flex: none; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 1.5px var(--rc-gold), 0 0 0 4px #0c0607, 0 0 0 5px var(--rc-gold-lo); }
.rc-brand__name { font-family: var(--rc-didone); font-size: 1.28rem; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.rc-brand__tick { flex: none; font-family: var(--rc-caps); font-size: 0.74rem; letter-spacing: 0.22em; color: var(--rc-gold); }
.rc-nav { display: flex; flex: 1 1 0; min-width: 0; gap: 4px; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
.rc-nav::-webkit-scrollbar { display: none; }
.rc-nav .wl-nav__link:first-child { margin-left: auto; }
.rc-nav .wl-nav__link { padding: 8px 12px; white-space: nowrap; text-decoration: none; font-family: var(--rc-caps); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--rc-gold-hi) 72%, transparent); border-bottom: 1px solid transparent; }
.rc-nav .wl-nav__link:hover, .rc-nav .wl-nav__link.is-active { color: var(--rc-gold-hi); border-bottom-color: var(--rc-gold); }

/* --------------------------------------------------------------------- hero */
.rc-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: calc(100vh - var(--rc-top-h));
  display: grid;
  background: var(--rc-wall);
}
.rc-wall { position: absolute; inset: 0; z-index: -3; overflow: hidden; background: var(--rc-wall); }
.rc-wall__logos { position: absolute; inset: -14px -40px; display: flex; flex-direction: column; }
.rc-wall__row { display: flex; flex: none; white-space: nowrap; }
.rc-wall__row--odd { margin-left: calc(var(--rc-pair, 320px) / -2); }
.rc-logo { flex: none; margin: 15px 22px; line-height: 1.15; }
.rc-logo--name { font-family: var(--rc-didone); font-size: 20px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--wl-accent-on-light); }
.rc-logo--tick { padding: 3px 12px 2px; border: 1.5px solid currentColor; border-radius: 99px; font-family: var(--rc-caps); font-size: 13px; font-weight: 700; letter-spacing: 0.24em; color: var(--rc-ink); }
/* the wall is lit where the beams land and falls off into shadow at its edges */
.rc-wall__shade {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 46% 64% at 58% 46%, transparent 0 35%, rgb(38 16 12 / 0.34) 72%, rgb(22 8 8 / 0.62) 100%),
    linear-gradient(180deg, rgb(20 8 8 / 0.5) 0%, transparent 16%, transparent 70%, rgb(20 8 8 / 0.35) 100%);
}
.rc-beam {
  position: absolute; top: -8%; width: 30%; height: 120%;
  background: linear-gradient(180deg, rgb(255 247 222 / 0.46), rgb(255 247 222 / 0.14) 55%, rgb(255 247 222 / 0) 92%);
  clip-path: polygon(43% 0, 57% 0, 100% 100%, 0 100%);
  mix-blend-mode: screen;
  filter: blur(5px);
  transform-origin: 50% 0;
  animation: rc-sweep 12s ease-in-out infinite alternate;
  pointer-events: none;
}
.rc-beam--a { left: 8%; --a0: 18deg; --a1: 6deg; transform: rotate(var(--a0)); }
.rc-beam--b { left: 44%; --a0: -4deg; --a1: 5deg; transform: rotate(var(--a0)); animation-duration: 15s; opacity: 0.8; }
.rc-beam--c { right: 0; --a0: -24deg; --a1: -12deg; transform: rotate(var(--a0)); animation-duration: 10s; animation-delay: -4s; opacity: 0.75; }
@keyframes rc-sweep { from { transform: rotate(var(--a0)); } to { transform: rotate(var(--a1)); } }

.rc-flashes { position: absolute; inset: 0; pointer-events: none; }
.rc-flash {
  position: absolute; left: var(--x); top: var(--y);
  width: 150px; height: 150px; margin: -75px 0 0 -75px;
  background:
    radial-gradient(circle, #fff 0 5%, rgb(255 255 255 / 0.85) 9%, rgb(255 250 235 / 0.35) 24%, transparent 52%),
    conic-gradient(from 0deg, transparent 0 11%, rgb(255 255 255 / 0.7) 12.5%, transparent 14% 36%, rgb(255 255 255 / 0.7) 37.5%, transparent 39% 61%, rgb(255 255 255 / 0.7) 62.5%, transparent 64% 86%, rgb(255 255 255 / 0.7) 87.5%, transparent 89%);
  -webkit-mask-image: radial-gradient(circle, #000 0 18%, transparent 50%);
  mask-image: radial-gradient(circle, #000 0 18%, transparent 50%);
  opacity: 0; transform: scale(var(--s));
  animation: rc-pop var(--p, 7s) linear infinite;
  animation-delay: var(--d, 0s);
  mix-blend-mode: screen;
}
@keyframes rc-pop { 0%, 91% { opacity: 0; } 92.5% { opacity: 1; } 96% { opacity: 0.35; } 100% { opacity: 0; } }

/* black velvet valance with a gold fringe */
.rc-valance {
  position: absolute; left: 0; right: 0; top: 0; z-index: 3; height: 46px; pointer-events: none;
  background:
    repeating-linear-gradient(90deg, #170a0c 0 16px, #2a1115 16px 26px, #170a0c 26px 40px, #0e0507 40px 52px);
  -webkit-mask-image: radial-gradient(26px 16px at 26px 30px, #000 97%, transparent 100%), linear-gradient(#000 0 30px, transparent 30px);
  mask-image: radial-gradient(26px 16px at 26px 30px, #000 97%, transparent 100%), linear-gradient(#000 0 30px, transparent 30px);
  -webkit-mask-size: 52px 46px, 100% 100%;
  mask-size: 52px 46px, 100% 100%;
  -webkit-mask-repeat: repeat-x, no-repeat;
  mask-repeat: repeat-x, no-repeat;
  box-shadow: 0 12px 24px rgb(0 0 0 / 0.35);
}
.rc-valance::after {
  content: ""; position: absolute; left: 0; right: 0; top: 26px; height: 10px;
  background: repeating-linear-gradient(90deg, var(--rc-gold) 0 1.5px, transparent 1.5px 5px);
  opacity: 0.8;
}

/* the carpet, running in toward the portrait */
.rc-carpet {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: -1; height: 23%;
  clip-path: polygon(38% 0, 70% 0, 104% 100%, 4% 100%);
  background: var(--rc-nap), linear-gradient(180deg, var(--rc-red-lo) 0%, var(--rc-red) 45%, color-mix(in srgb, var(--rc-red) 80%, #ff5a4a) 100%);
}
.rc-carpet::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse 34% 60% at 55% 20%, rgb(255 230 200 / 0.3), transparent 70%);
}

.rc-stage {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) minmax(0, 0.34fr);
  grid-template-rows: minmax(0, 1fr) auto clamp(40px, 11vh, 110px);
  grid-template-areas: "plaque portrait seal" "cta portrait seal" ". portrait .";
  column-gap: clamp(22px, 3vw, 44px);
  padding: 74px var(--v-pad-x) 0;
  min-height: calc(100vh - var(--rc-top-h));
  max-width: 1400px; width: 100%; margin: 0 auto;
}

/* the plaque: walnut board, brass plate, four screws */
.rc-plaque {
  grid-area: plaque; align-self: center;
  padding: 14px;
  background: var(--rc-walnut);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgb(255 220 190 / 0.18), inset 0 -2px 0 rgb(0 0 0 / 0.4), 0 3px 0 #1f0f08, 0 36px 60px -26px rgb(20 6 4 / 0.8);
  transform: rotate(-0.6deg);
}
.rc-plate {
  position: relative;
  padding: clamp(24px, 2.6vw, 34px) clamp(22px, 2.6vw, 36px) clamp(26px, 2.6vw, 34px);
  background: var(--rc-brass);
  border-radius: 3px;
  box-shadow: inset 0 0 0 1px rgb(255 244 210 / 0.7), inset 0 0 0 6px rgb(160 116 36 / 0.28), inset 0 0 0 7px rgb(255 240 200 / 0.4), 0 2px 3px rgb(0 0 0 / 0.45);
  color: var(--rc-engrave);
  text-align: center;
}
.rc-plate::before {
  content: ""; position: absolute; inset: 9px; pointer-events: none;
  background:
    radial-gradient(circle at 5px 5px, #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px),
    radial-gradient(circle at calc(100% - 5px) 5px, #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px),
    radial-gradient(circle at 5px calc(100% - 5px), #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px),
    radial-gradient(circle at calc(100% - 5px) calc(100% - 5px), #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px);
}
.rc-kicker {
  display: inline-block; margin: 0 0 16px; padding: 0 0 10px;
  font-family: var(--rc-caps); font-size: 0.74rem; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--rc-engrave-soft);
  border-bottom: 1px solid rgb(90 60 10 / 0.45);
  box-shadow: 0 1px 0 rgb(255 245 215 / 0.6);
}
.rc-headline {
  margin: 0;
  font-family: var(--rc-didone); font-weight: 400;
  font-size: clamp(2.3rem, 3.9vw, 3.7rem); line-height: 1.02;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--rc-engrave);
  text-shadow: 0 1px 0 rgb(255 246 218 / 0.75), 0 -1px 0 rgb(70 46 6 / 0.3);
  text-wrap: balance;
}
.rc-headline[data-len="m"] { font-size: clamp(2rem, 3.1vw, 3rem); }
.rc-headline[data-len="l"] { font-size: clamp(1.6rem, 2.3vw, 2.2rem); line-height: 1.1; }
.rc-subhead { margin: 18px auto 0; max-width: 30rem; font-family: var(--rc-book); font-style: italic; font-size: clamp(1rem, 1.15vw, 1.12rem); line-height: 1.5; color: var(--rc-engrave-soft); }

.rc-cta { grid-area: cta; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 22px; position: relative; z-index: 4; }
.rc-cta .wl-btn { border-radius: 0; padding: 0.8em 1.25em; font-family: var(--rc-caps); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; background: rgb(251 245 232 / 0.94); color: var(--rc-ink); border: 1px solid var(--rc-ink); box-shadow: 0 10px 20px -12px rgb(0 0 0 / 0.6); }
.rc-cta .wl-btn:hover { border-color: var(--rc-ink); background: #fff; }
.rc-cta .wl-btn--primary { background: #0f0809; color: var(--rc-gold-hi); border-color: var(--rc-gold); box-shadow: inset 0 0 0 3px #0f0809, inset 0 0 0 4px var(--rc-gold-lo), 0 14px 26px -12px rgb(0 0 0 / 0.8); }
.rc-cta .wl-btn--primary:hover { background: #1b0e10; border-color: var(--rc-gold-hi); }
.rc-cta .wl-btn__ca { letter-spacing: 0.04em; text-transform: none; }

/* the portrait stands on the carpet, full height */
.rc-portrait {
  grid-area: portrait; margin: 0; position: relative; align-self: end; justify-self: center;
  height: calc(100vh - var(--rc-top-h) - 108px); max-height: 760px; min-height: 420px;
  aspect-ratio: 4 / 5; max-width: 100%;
}
.rc-portrait::before { /* the pool of light on the carpet */
  content: ""; position: absolute; left: -18%; right: -18%; bottom: -26px; height: 90px; z-index: -1;
  background: radial-gradient(ellipse 50% 50% at 50% 50%, rgb(255 236 200 / 0.55), transparent 70%);
}
.rc-portrait__photo {
  position: absolute; inset: 0; overflow: hidden;
  background: #2a1a1a;
  box-shadow: 0 0 0 1px var(--rc-gold), 0 0 0 7px rgb(12 6 7 / 0.9), 0 0 0 8px var(--rc-gold-lo), 0 50px 80px -30px rgb(20 6 4 / 0.85);
  -webkit-mask-image: linear-gradient(180deg, #000 0 88%, rgb(0 0 0 / 0.8) 100%);
  mask-image: linear-gradient(180deg, #000 0 88%, rgb(0 0 0 / 0.8) 100%);
}
.rc-portrait__photo .wl-hero-img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.rc-portrait__photo.wl-media--post { overflow: auto; background: #fbf5e8; padding: 18px; display: grid; place-items: center; }
.rc-portrait__photo.wl-media--post .wl-post--giant .wl-post__text { font-size: clamp(1.2rem, 1.8vw, 1.6rem); }
.rc-portrait:has(.wl-media--none) { display: none; }
.rc-portrait__name {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  padding: 10px 22px 9px; max-width: 86%;
  background: #0f0809; color: var(--rc-gold-hi);
  font-family: var(--rc-didone); font-size: clamp(0.95rem, 1.3vw, 1.2rem); letter-spacing: 0.24em; text-transform: uppercase;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  box-shadow: inset 0 0 0 1px var(--rc-gold-lo), 0 10px 24px -8px rgb(0 0 0 / 0.8);
}

/* the ticker in a laurel */
.rc-seal {
  grid-area: seal; align-self: start; justify-self: center; position: relative;
  width: clamp(130px, 13vw, 176px); aspect-ratio: 1; margin-top: 28px;
  display: grid; place-content: center; text-align: center;
  transform: rotate(-6deg);
}
.rc-seal::before { content: ""; position: absolute; inset: 17%; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fffaf0, #efe3c8 70%, #e2d1ad); box-shadow: 0 0 0 1px var(--rc-gold), 0 0 0 4px rgb(255 250 240 / 0.8), 0 0 0 5px var(--rc-gold-lo), 0 14px 26px -10px rgb(30 12 6 / 0.6); }
.rc-seal__laurel { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.rc-laurel__stem { fill: none; stroke: var(--rc-gold-lo); stroke-width: 2; }
.rc-laurel__leaf { fill: var(--rc-gold); stroke: var(--rc-gold-deep); stroke-width: 0.8; }
.rc-seal__tick { position: relative; font-family: var(--rc-didone); font-size: clamp(1.05rem, 1.5vw, 1.4rem); letter-spacing: 0.1em; color: var(--rc-ink); max-width: 7.5em; overflow-wrap: anywhere; line-height: 1.05; }
.rc-seal__net { position: relative; margin-top: 6px; font-family: var(--rc-caps); font-size: 0.6rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--rc-engrave-soft); }

/* brass stanchions and velvet ropes, in front */
.rc-ropes { position: absolute; left: 0; right: 0; bottom: 0; z-index: 0; height: 0; pointer-events: none; }
.rc-rope { position: absolute; bottom: 4px; height: clamp(100px, 14vh, 150px); width: auto; overflow: visible; }
.rc-rope--l { left: -40px; }
.rc-rope--r { right: -40px; }
.rc-rope__line { fill: none; stroke: #7c0a17; stroke-width: 13; stroke-linecap: round; filter: drop-shadow(0 6px 5px rgb(0 0 0 / 0.35)); }
.rc-post__pole { fill: var(--rc-gold); stroke: var(--rc-gold-deep); stroke-width: 1.5; }
.rc-post__base { fill: var(--rc-gold-lo); stroke: var(--rc-gold-deep); stroke-width: 1.5; }
.rc-post__cap { fill: var(--rc-gold-hi); stroke: var(--rc-gold-deep); stroke-width: 1.5; }

/* ------------------------------------------------------------------ the hall */
.rc-hall {
  position: relative; isolation: isolate;
  display: grid;
  grid-template-columns: minmax(var(--v-pad-x), 1fr) minmax(0, 520px) clamp(90px, 11vw, 150px) minmax(0, 520px) minmax(var(--v-pad-x), 1fr);
  row-gap: clamp(56px, 7vw, 96px);
  align-items: start;
  padding: clamp(90px, 10vw, 140px) 0 clamp(100px, 11vw, 150px);
  background:
    radial-gradient(ellipse 60% 40% at 50% 0%, rgb(160 30 40 / 0.22), transparent 70%),
    repeating-linear-gradient(90deg, rgb(255 255 255 / 0.012) 0 2px, transparent 2px 7px),
    var(--rc-velvet);
}
.rc-hall::before { /* the carpet, running down the page */
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%;
  width: clamp(90px, 11vw, 150px); transform: translateX(-50%);
  background: var(--rc-nap), linear-gradient(90deg, var(--rc-red-lo), var(--rc-red) 12% 88%, var(--rc-red-lo));
  box-shadow: -3px 0 0 var(--rc-gold-lo), 3px 0 0 var(--rc-gold-lo), 0 0 60px rgb(160 20 30 / 0.4);
}
.rc-hall .wl-sec { grid-column: 2; padding: 14px; background: var(--rc-walnut); border-radius: 8px; box-shadow: inset 0 1px 0 rgb(255 220 190 / 0.16), 0 3px 0 #1a0b06, 0 40px 60px -30px #000; }
.rc-hall .wl-sec:nth-child(even) { grid-column: 4; }
.rc-hall .wl-sec__inner { position: relative; max-width: none; padding: clamp(26px, 3vw, 40px) clamp(22px, 2.6vw, 36px); background: var(--rc-brass); border-radius: 3px; color: var(--rc-engrave); box-shadow: inset 0 0 0 1px rgb(255 244 210 / 0.7), inset 0 0 0 6px rgb(160 116 36 / 0.25), inset 0 0 0 7px rgb(255 240 200 / 0.35); }
.rc-hall .wl-sec__inner::before {
  content: ""; position: absolute; inset: 9px; pointer-events: none;
  background:
    radial-gradient(circle at 5px 5px, #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px),
    radial-gradient(circle at calc(100% - 5px) 5px, #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px),
    radial-gradient(circle at 5px calc(100% - 5px), #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px),
    radial-gradient(circle at calc(100% - 5px) calc(100% - 5px), #fff6d8 0 1px, #b58c3e 2px, #6d4c14 4px, transparent 4.6px);
}
.rc-hall .wl-sec__head { max-width: none; margin: 0 0 24px; text-align: center; }
.rc-hall .wl-kicker { justify-content: center; margin: 0 0 12px; gap: 0.7em; font-family: var(--rc-caps); font-size: 0.7rem; letter-spacing: 0.3em; color: var(--rc-engrave-soft); }
.rc-hall .wl-kicker .wl-ord { opacity: 1; color: var(--wl-accent-on-light); }
.rc-hall .wl-kicker .wl-ord::before { content: "No. "; color: var(--rc-engrave-soft); }
.rc-hall .wl-sec__title { color: var(--rc-engrave); text-shadow: 0 1px 0 rgb(255 246 218 / 0.75), 0 -1px 0 rgb(70 46 6 / 0.25); }
.rc-hall .wl-sec__title::after { content: ""; display: block; width: 64px; height: 1px; margin: 16px auto 0; background: rgb(90 60 10 / 0.5); box-shadow: 0 1px 0 rgb(255 245 215 / 0.6); }

/* lore: an engraved citation */
.rc-hall .wl-lore { max-width: none; text-align: center; }
.rc-hall .wl-lore__lead { font-family: var(--rc-book); font-style: italic; font-size: clamp(1.14rem, 1.5vw, 1.36rem); line-height: 1.5; color: var(--rc-engrave); }
.rc-hall .wl-lore__p { max-width: none; color: var(--rc-engrave-soft); }

/* quotes: remarks from the carpet, each on its own line of the plate */
.rc-hall .wl-quotes { grid-template-columns: minmax(0, 1fr); gap: 0; }
.rc-hall .wl-quote { padding: 18px 8px 18px 56px; background: none; border: 0; border-radius: 0; border-top: 1px solid rgb(90 60 10 / 0.35); box-shadow: inset 0 1px 0 rgb(255 245 215 / 0.5); }
.rc-hall .wl-quote:first-child { border-top: 0; box-shadow: none; }
.rc-hall .wl-quote::before { top: 8px; left: 4px; font-family: var(--rc-didone); font-size: 3.6rem; color: var(--rc-gold-deep); opacity: 0.8; }
.rc-hall .wl-quote__text { margin: 0 0 6px; font-family: var(--rc-book); font-style: italic; font-size: 1.1rem; font-weight: 400; color: var(--rc-engrave); }
.rc-hall .wl-quote__who { font-family: var(--rc-caps); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rc-engrave-soft); }
.rc-hall .wl-quote__who a { color: var(--rc-engrave-soft); text-decoration: underline; text-underline-offset: 3px; }

/* the evening: a printed program card in the frame, not brass */
.rc-hall .wl-sec--timeline .wl-sec__inner,
.rc-hall .wl-sec--infographic[data-graphic="timeline"] .wl-sec__inner,
.rc-hall .wl-sec--infographic[data-graphic="flow"] .wl-sec__inner {
  background: #fbf5e8;
  box-shadow: inset 0 0 0 10px #fbf5e8, inset 0 0 0 11px var(--rc-gold), inset 0 0 0 14px #fbf5e8, inset 0 0 0 15px var(--rc-gold-lo);
}
.rc-hall .wl-sec--timeline .wl-sec__inner::before,
.rc-hall .wl-sec--infographic[data-graphic="timeline"] .wl-sec__inner::before,
.rc-hall .wl-sec--infographic[data-graphic="flow"] .wl-sec__inner::before { display: none; }
.rc-hall .wl-milestones { max-width: none; gap: 0; text-align: center; }
.rc-hall .wl-milestones::before { display: none; }
.rc-hall .wl-ms { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 16px 0; border-top: 1px dotted rgb(90 60 10 / 0.45); }
.rc-hall .wl-ms:first-child { border-top: 0; }
.rc-hall .wl-ms__dot { display: none; }
.rc-hall .wl-ms__when { color: var(--wl-accent-on-light); font-family: var(--rc-caps); font-size: 0.7rem; letter-spacing: 0.28em; }
.rc-hall .wl-ms__title { font-family: var(--rc-didone); font-weight: 400; font-size: 1.3rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-ink); }
.rc-hall .wl-ms__text { color: #5b4a3a; font-style: italic; font-size: 0.98rem; }
.rc-hall .wl-flowchart { grid-template-columns: minmax(0, 1fr) !important; }
.rc-hall .wl-node { flex-direction: column; }
.rc-hall .wl-node__card { background: none; border: 0; padding: 12px 0; text-align: center; }
.rc-hall .wl-node__card .wl-ord { background: var(--rc-ink); color: var(--rc-gold-hi); }
.rc-hall .wl-node__title { font-family: var(--rc-didone); font-weight: 400; text-transform: uppercase; letter-spacing: 0.06em; color: var(--rc-ink); }
.rc-hall .wl-node__text { color: #5b4a3a; }
.rc-hall .wl-node__edge { width: 24px; height: 30px; transform: rotate(90deg); margin: 0 auto; }
.rc-hall .wl-edge__line, .rc-hall .wl-edge__head { stroke: var(--rc-gold-lo); animation: none; }

/* press wall: black lacquer, press prints with a flash on them */
.rc-hall .wl-sec--gallery .wl-sec__inner { background: #0e0809; color: var(--rc-gold-hi); box-shadow: inset 0 0 0 1px var(--rc-gold-lo); }
.rc-hall .wl-sec--gallery .wl-sec__inner::before { display: none; }
.rc-hall .wl-sec--gallery .wl-sec__title { color: var(--rc-gold-hi); text-shadow: none; }
.rc-hall .wl-sec--gallery .wl-kicker, .rc-hall .wl-sec--gallery .wl-kicker .wl-ord::before { color: var(--rc-gold); }
.rc-hall .wl-sec--gallery .wl-kicker .wl-ord { color: var(--wl-accent-on-dark); }
.rc-hall .wl-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.rc-hall .wl-gallery[data-count="1"] { grid-template-columns: minmax(0, 1fr); }
.rc-hall .wl-gallery[data-count="3"] .wl-shot:first-child { grid-column: 1 / -1; }
.rc-hall .wl-shot { border-radius: 0; padding: 8px 8px 34px; background: #f8f4ec; box-shadow: 0 16px 30px -14px #000; }
.rc-hall .wl-shot::after { content: ""; position: absolute; left: 8px; right: 8px; top: 8px; bottom: 34px; background: radial-gradient(circle at 78% 22%, rgb(255 255 255 / 0.55), transparent 28%); pointer-events: none; }
.rc-hall .wl-shot img { aspect-ratio: 3 / 2; }
.rc-hall .wl-shot__caption { left: 10px; right: 10px; bottom: 7px; padding: 0; background: none; backdrop-filter: none; color: #2a1e14; font-family: var(--rc-caps); font-size: 0.66rem; letter-spacing: 0.18em; text-transform: uppercase; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* for the record: engraved lines with a star */
.rc-hall .wl-facts { gap: 0; max-width: none; }
.rc-hall .wl-fact { grid-template-columns: 22px minmax(0, 1fr); gap: 12px; padding: 13px 4px; background: none; border: 0; border-radius: 0; border-top: 1px solid rgb(90 60 10 / 0.3); font-size: 1rem; color: var(--rc-engrave); }
.rc-hall .wl-fact:first-child { border-top: 0; }
.rc-hall .wl-fact__mark { width: 22px; height: 22px; background: none; color: var(--rc-gold-deep); }
.rc-hall .wl-fact__mark .wl-glyph { display: none; }
.rc-hall .wl-fact__mark::before { content: "\2605"; font-size: 0.95rem; line-height: 22px; }

/* questions: sealed envelopes; open one for the card */
.rc-hall .wl-faq { gap: 12px; max-width: none; }
.rc-hall .wl-qa { position: relative; background: #fbf5e8; border: 0; border-radius: 2px; box-shadow: 0 1px 0 rgb(255 255 255 / 0.6) inset, 0 10px 18px -12px rgb(40 20 0 / 0.7); overflow: hidden; }
.rc-hall .wl-qa__q { position: relative; padding: 20px 64px 20px 20px; font-family: var(--rc-book); font-weight: 400; font-style: italic; font-size: 1.04rem; color: var(--rc-ink); background: linear-gradient(160deg, transparent 0 58%, rgb(154 113 39 / 0.14) 58.3%, transparent 58.6%), linear-gradient(20deg, transparent 0 58%, rgb(154 113 39 / 0.14) 58.3%, transparent 58.6%); }
.rc-hall .wl-qa__sign { position: absolute; right: 18px; top: 50%; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%; background: radial-gradient(circle at 38% 34%, #d8404e, #8e1020 60%, #5a0710); box-shadow: 0 2px 3px rgb(0 0 0 / 0.35); }
.rc-hall .wl-qa__sign::before, .rc-hall .wl-qa__sign::after { left: 9px; right: 9px; background: rgb(255 220 200 / 0.85); }
.rc-hall .wl-qa__a { padding: 0 20px 20px; font-family: var(--rc-book); color: #4c3b2c; border-top: 1px dashed rgb(154 113 39 / 0.45); padding-top: 14px; }

/* features / numbers / post on the plate */
.rc-hall .wl-features { grid-template-columns: minmax(0, 1fr); gap: 0; }
.rc-hall .wl-feature { padding: 18px 4px 18px 72px; background: none; border: 0; border-radius: 0; border-top: 1px solid rgb(90 60 10 / 0.3); }
.rc-hall .wl-feature:first-child { border-top: 0; }
.rc-hall .wl-feature:hover { transform: none; }
.rc-hall .wl-feature__icon { position: absolute; left: 4px; top: 18px; width: 50px; height: 50px; margin: 0; border-radius: 50%; background: var(--rc-ink); color: var(--rc-gold); box-shadow: 0 0 0 2px var(--rc-gold-lo); }
.rc-hall .wl-feature__icon .wl-glyph { width: 24px; height: 24px; }
.rc-hall .wl-feature .wl-ord { top: 18px; right: 4px; color: var(--rc-engrave-soft); }
.rc-hall .wl-feature__title { font-family: var(--rc-didone); font-weight: 400; text-transform: uppercase; letter-spacing: 0.06em; font-size: 1.2rem; color: var(--rc-ink); }
.rc-hall .wl-feature__text { color: var(--rc-engrave-soft); }
.rc-hall .wl-stats { background: rgb(90 60 10 / 0.35); border: 0; border-radius: 0; }
.rc-hall .wl-stat { background: rgb(255 246 218 / 0.35); text-align: center; }
.rc-hall .wl-stat__label { color: var(--rc-engrave-soft); }
.rc-hall .wl-stat__value { font-family: var(--rc-didone); font-weight: 400; color: var(--rc-ink); }
.rc-hall .wl-bar__label, .rc-hall .wl-legend__label { color: var(--rc-engrave); }
.rc-hall .wl-bar__bg, .rc-hall .wl-donut__track, .rc-hall .wl-ring__track { fill: rgb(90 60 10 / 0.18); stroke: rgb(90 60 10 / 0.18); }
.rc-hall .wl-bar__value, .rc-hall .wl-legend__value, .rc-hall .wl-donut__value, .rc-hall .wl-ring__value { font-family: var(--rc-didone); font-weight: 400; color: var(--rc-ink); }
.rc-hall .wl-caption, .rc-hall .wl-donut__label, .rc-hall .wl-ring__label { color: var(--rc-engrave-soft); }
.rc-hall .wl-table-wrap { border-color: rgb(90 60 10 / 0.35); }
.rc-hall .wl-table th, .rc-hall .wl-table td { border-bottom-color: rgb(90 60 10 / 0.25); }
.rc-hall .wl-post { background: #fbf5e8; color: var(--rc-ink); border: 0; box-shadow: 0 12px 24px -14px rgb(40 20 0 / 0.8); }

/* the guest list at the end of the carpet: a black pass across both sides */
.rc-hall .wl-sec--access { grid-column: 2 / 5 !important; justify-self: center; width: min(100%, 760px); padding: 0; background: none; box-shadow: none; }
.rc-hall .wl-sec--access .wl-sec__inner { background: linear-gradient(135deg, #1a0d10, #0b0506 60%, #1a0d10); color: var(--rc-gold-hi); border-radius: 14px; box-shadow: inset 0 0 0 1px var(--rc-gold), inset 0 0 0 7px #0b0506, inset 0 0 0 8px var(--rc-gold-lo), 0 40px 70px -30px #000; }
.rc-hall .wl-sec--access .wl-sec__inner::before { inset: auto; left: 50%; top: 16px; width: 64px; height: 12px; margin-left: -32px; border-radius: 99px; background: var(--rc-velvet); box-shadow: inset 0 2px 3px #000, 0 0 0 1px var(--rc-gold-lo); }
.rc-hall .wl-sec--access .wl-sec__title { color: var(--rc-gold-hi); text-shadow: none; }
.rc-hall .wl-sec--access .wl-sec__title::after { background: var(--rc-gold-lo); box-shadow: none; }
.rc-hall .wl-sec--access .wl-kicker, .rc-hall .wl-sec--access .wl-kicker .wl-ord::before { color: var(--rc-gold); }
.rc-hall .wl-sec--access .wl-kicker .wl-ord { color: var(--wl-accent-on-dark); }
.rc-hall .wl-access { max-width: none; justify-items: center; text-align: center; }
.rc-hall .wl-access__net { color: var(--rc-gold); font-family: var(--rc-caps); letter-spacing: 0.3em; }
.rc-hall .wl-ca { width: 100%; background: rgb(255 240 200 / 0.05); border: 1px solid var(--rc-gold-lo); border-radius: 0; }
.rc-hall .wl-ca__label { color: var(--rc-gold); font-family: var(--rc-caps); }
.rc-hall .wl-ca__value { color: var(--rc-gold-hi); }
.rc-hall .wl-copy { border-radius: 0; background: var(--rc-gold); color: #1c1206; font-family: var(--rc-caps); letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.78rem; }
.rc-hall .wl-links { justify-content: center; }
.rc-hall .wl-link { border-radius: 0; background: transparent; border: 1px solid var(--rc-gold-lo); color: var(--rc-gold-hi); font-family: var(--rc-caps); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; }
.rc-hall .wl-link:hover { border-color: var(--rc-gold-hi); }

/* ------------------------------------------------------------------ footer */
.rc-foot { padding: 34px var(--v-pad-x) 44px; background: #0b0506; border-top: 1px solid var(--rc-gold-lo); color: var(--rc-gold-hi); }
.rc-foot .wl-foot__name { font-family: var(--rc-didone); font-weight: 400; letter-spacing: 0.16em; text-transform: uppercase; }
.rc-foot .wl-foot__net, .rc-foot .wl-foot__nfa { color: color-mix(in srgb, var(--rc-gold-hi) 55%, transparent); font-family: var(--rc-caps); letter-spacing: 0.1em; }
.rc-foot .wl-link { border-radius: 0; background: transparent; border-color: var(--rc-gold-lo); color: var(--rc-gold-hi); }

/* ------------------------------------------------------------------ motion */
.wl-motion-float .rc-portrait__photo .wl-hero-img { animation: none; }
.rc-hero .rc-plaque, .rc-hero .rc-portrait, .rc-hero .rc-seal { animation: rc-arrive 1.1s var(--v-ease) both; }
.rc-hero .rc-portrait { animation-delay: 0.15s; }
.rc-hero .rc-seal { animation-delay: 0.45s; }
@keyframes rc-arrive { from { opacity: 0; transform: translateY(24px); } }
.rc-hero .rc-seal { animation-name: rc-arrive-seal; }
@keyframes rc-arrive-seal { from { opacity: 0; transform: rotate(-30deg) scale(0.6); } to { transform: rotate(-6deg); } }

/* ------------------------------------------------------------------ narrower */
@media (max-width: 1100px) {
  .rc-stage { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "plaque portrait" "cta portrait" ". portrait"; }
  .rc-seal { position: absolute; right: var(--v-pad-x); top: 64px; width: 120px; margin: 0; z-index: 3; }
}
@media (max-width: 860px) {
  .rc-nav { display: none; }
  .rc-hero { min-height: 0; }
  .rc-stage {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
    grid-template-areas: "portrait" "plaque" "cta";
    padding: 64px 16px 44px;
    min-height: 0;
  }
  .rc-portrait { height: auto; min-height: 0; width: min(74%, 330px); }
  .rc-plaque { margin-top: -34px; position: relative; z-index: 2; transform: none; }
  .rc-cta { margin-top: 18px; }
  .rc-seal { top: 52px; right: 2px; width: 84px; }
  .rc-seal__net { display: none; }
  .rc-ropes { display: none; }
  .rc-carpet { height: 34%; clip-path: polygon(26% 0, 74% 0, 110% 100%, -10% 100%); }
  .rc-beam { width: 60%; }
  .rc-hall { grid-template-columns: 16px minmax(0, 1fr) 16px; row-gap: 44px; padding: 64px 0 80px; }
  .rc-hall::before { left: 0; width: 8px; transform: none; box-shadow: 2px 0 0 var(--rc-gold-lo); }
  .rc-hall .wl-sec, .rc-hall .wl-sec:nth-child(even), .rc-hall .wl-sec--access { grid-column: 2 !important; }
  .rc-hall .wl-sec { padding: 10px; }
  .rc-hall .wl-gallery { grid-template-columns: minmax(0, 1fr); }
  .rc-hall .wl-quote { padding-left: 44px; }
  .rc-foot { padding: 28px 16px 40px; }
}
@media (max-width: 440px) {
  .rc-brand__tick { display: none; }
  .rc-headline { font-size: clamp(1.9rem, 9vw, 2.5rem); }
  .rc-headline[data-len="m"] { font-size: clamp(1.7rem, 7.6vw, 2.2rem); }
}
