/* =========================================================
   PRESS — Swiss editorial. White paper, hairline rules, one
   red, a hard grid and type doing all the work. No shadows,
   no rounded corners, no gradients. The quiet one.
   ========================================================= */

.v-press {
  --ink:        #ffffff;
  --ink-2:      #f4f4f4;
  --ink-3:      #eaeaea;
  --graphite:   #949494;
  --muted:      #6b6b6b;
  --cream:      #1a1a1a;
  --white:      #000000;
  --orange:     #e2231a;
  --orange-dk:  #b8160f;
  --yellow:     #000000;

  --display: "Inter", ui-sans-serif, system-ui, sans-serif;
  --body: "Inter", ui-sans-serif, system-ui, sans-serif;
  --radius: 0px;
  --wrap: 1280px;

  background: #fff;
  color: #1a1a1a;
  font-feature-settings: "tnum" 1;
}

.v-press .section--dark { background: #fff; }
.v-press .section--ink  { background: #fff; }
.v-press .section--orange { background: #e2231a; color: #fff; }
.v-press .section--orange .h2 { color: #fff; }
.v-press .section--orange .section__intro--ink { color: rgba(255,255,255,.85); }
.v-press .section--orange a { color: #fff; }

/* every section is separated by a hairline, not a color change */
.v-press .section + .section,
.v-press .split + .section,
.v-press .section + .split { border-top: 1px solid #111; }

/* huge, tight, left-aligned headlines — the whole personality */
.v-press .h2 {
  font-weight: 900; letter-spacing: -.045em; line-height: .94;
  font-size: clamp(34px, 7vw, 92px);
  text-transform: none; color: #000; margin-bottom: .35em;
}
.v-press .h2--orange { color: #000; }
.v-press .center .h2, .v-press .h2.center { text-align: left; }
.v-press .center, .v-press .section__intro, .v-press .credit,
.v-press .press, .v-press .fineprint, .v-press .namap__key { text-align: left; }
.v-press .section__intro { margin-left: 0; margin-right: 0; max-width: 46ch; font-size: 17px; }
.v-press .h3 { font-weight: 700; letter-spacing: -.02em; }
.v-press .eyebrow {
  font-size: 11px; letter-spacing: .2em; color: #e2231a;
  border-top: 2px solid #e2231a; padding-top: 8px; display: inline-block;
}

/* a numbered-section feel: the divider slot becomes a rule */
.v-press .section > .wrap > .h2::before {
  content: ""; display: block; height: 2px; background: #000;
  margin-bottom: clamp(18px, 3vw, 34px);
}

/* flat boxes, hairline borders, zero radius */
.v-press .card, .v-press .stat, .v-press .judges li, .v-press .roster__names li,
.v-press .featured, .v-press .venue-strip, .v-press .namap__frame,
.v-press .logos a, .v-press .chips a, .v-press .chips span,
.v-press .field input, .v-press .field textarea, .v-press .btn {
  border-radius: 0; box-shadow: none; backdrop-filter: none;
}
.v-press .card {
  background: #fff; border: 1px solid #111; border-top: 1px solid #111;
  padding: clamp(22px, 2.6vw, 32px);
}
.v-press .card:hover { background: #f4f4f4; transform: none; box-shadow: none; }
.v-press .card h3 { color: #000; font-weight: 700; letter-spacing: -.02em; }
.v-press .cards { gap: 0; }
.v-press .cards .card + .card { border-left: 0; }
@media (max-width: 830px) { .v-press .cards .card + .card { border-left: 1px solid #111; border-top: 0; } }

.v-press .stat { background: #fff; border: 1px solid #111; text-align: left; padding: 20px; }
.v-press .stats { gap: 0; }
.v-press .stats .stat + .stat { border-left: 0; }
.v-press .stat b { color: #000; font-weight: 900; letter-spacing: -.04em; }
.v-press .stat span { color: #6b6b6b; }

.v-press .judges li, .v-press .roster__names li {
  background: #fff; border: 1px solid #111; align-items: flex-start; text-align: left;
}
.v-press .judges li:hover, .v-press .roster__names li:hover {
  background: #e2231a; border-color: #e2231a; transform: none;
}
.v-press .judges li:hover *, .v-press .roster__names li:hover * { color: #fff; }
.v-press .roster__names b, .v-press .judges b { color: #000; }

/* Hero: a front page over the battle footage. Type still runs hard left and
   flat; the video supplies the only "image" on the page, under a scrim dark
   enough to keep white type legible over moving frames. */
.v-press .hero {
  min-height: min(78vh, 760px);
  padding: 150px var(--pad) 72px; background: #000;
  place-items: end start; border-bottom: 2px solid #000;
}
.v-press .hero__video { display: block; }
.v-press .hero__scrim {
  display: block;
  background:
    linear-gradient(to right, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 48%, rgba(0,0,0,.42) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 38%, rgba(0,0,0,.75) 100%);
}
.v-press .hero__scroll { display: block; }
.v-press .hero__inner {
  text-align: left; max-width: var(--wrap); width: 100%; margin-inline: auto;
  display: grid; grid-template-columns: 1fr auto; gap: 30px 50px; align-items: end;
  padding-bottom: clamp(34px, 5vw, 64px);
}
.v-press .hero__h1 { grid-column: 1; }
.v-press .hero__logo { width: clamp(180px, 26vw, 330px); margin: 0; filter: none; }
.v-press .hero__date {
  grid-column: 1; font-size: clamp(30px, 5.5vw, 62px); font-weight: 900;
  letter-spacing: -.045em; line-height: .95; color: #fff; margin: 0;
}
.v-press .hero__venue {
  grid-column: 1; margin: 0; color: rgba(255,255,255,.74); font-size: 16px;
  border-top: 1px solid rgba(255,255,255,.34); padding-top: 12px;
}
/* the ghost button is black-on-white by default; invert it over the footage */
.v-press .hero .btn--ghost { color: #fff; border-color: #fff; }
.v-press .hero .btn--ghost:hover { background: #fff; color: #000; }
/* the nav sits over the video, so it can no longer be transparent at rest */
.v-press .nav { background: #fff; border-bottom: 1px solid #111; }
.v-press .hero__actions { grid-column: 2; grid-row: 2 / span 2; justify-content: flex-end; align-self: end; }
@media (max-width: 760px) {
  .v-press .hero__inner { grid-template-columns: 1fr; }
  .v-press .hero__actions { grid-column: 1; grid-row: auto; justify-content: flex-start; }
}

.v-press .btn {
  border-width: 1px; font-weight: 600; font-size: 13px; letter-spacing: .1em;
}
.v-press .btn--orange { background: #e2231a; border-color: #e2231a; }
.v-press .btn--ghost { color: #000; border-color: #000; }
.v-press .btn--ghost:hover { background: #000; color: #fff; }
/* --btn-fg resolves to var(--white), which Press re-points to #000 — so this
   button needs its foreground stated or the label is black on black. */
.v-press .btn--ink { background: #000; border-color: #000; color: #fff; }
.v-press .btn:hover { transform: none; }

.v-press .nav { border-bottom: 1px solid transparent; }
.v-press .nav.is-stuck {
  background: #fff; border-bottom: 1px solid #111; box-shadow: none; backdrop-filter: none;
}
.v-press .nav__brand { color: #000; }
.v-press .nav__brand em { color: #e2231a; }
.v-press .nav__links a { color: #1a1a1a; font-weight: 500; letter-spacing: .04em; text-transform: none; font-size: 14px; }
.v-press .nav__links a:hover, .v-press .nav__links a.is-active { color: #e2231a; }
.v-press .nav__toggle span { background: #000; }
@media (max-width: 900px) {
  .v-press .nav__links { background: #fff; border-bottom: 1px solid #111; }
  .v-press .nav__links a { border-top: 1px solid #e5e5e5; }
}

/* photographs run black & white, the way a broadsheet would print them */
.v-press .gallery__track img, .v-press .split__media img, .v-press .roster img {
  filter: grayscale(1) contrast(1.12);
}
.v-press .gallery__track button:hover img { filter: grayscale(0) contrast(1); transform: none; }
.v-press .roster img { border: 1px solid #111; }
.v-press .gallery__nav { background: #fff; color: #000; border: 1px solid #111; border-radius: 0; }
.v-press .gallery__nav:hover { background: #e2231a; color: #fff; border-color: #e2231a; }

.v-press .timeline { padding-left: 0; }
.v-press .timeline::before { display: none; }
.v-press .timeline li { border-top: 1px solid #111; padding: 22px 0; display: grid; grid-template-columns: 110px 1fr; gap: 0 28px; }
.v-press .timeline li::before { display: none; }
.v-press .tl__year { grid-row: 1 / span 4; font-size: 15px; font-weight: 900; color: #e2231a; letter-spacing: -.01em; }
.v-press .tl__title { color: #000; font-weight: 700; letter-spacing: -.025em; }
.v-press .tl__meta span {
  background: #fff; border: 1px solid #111; color: #1a1a1a; border-radius: 0; font-weight: 500;
}
.v-press .tl__meta span.win { background: #e2231a; border-color: #e2231a; color: #fff; }
@media (max-width: 620px) { .v-press .timeline li { grid-template-columns: 1fr; } .v-press .tl__year { grid-row: auto; } }

.v-press .field label { color: #000; }
.v-press .field input, .v-press .field textarea { background: #fff; border: 1px solid #111; color: #000; }
.v-press .field input::placeholder { color: #a5a5a5; }
.v-press .field input:focus, .v-press .field textarea:focus { border-color: #e2231a; box-shadow: 0 0 0 2px rgba(226,35,26,.2); }
.v-press .section--orange .field input, .v-press .section--orange .field textarea { background: #fff; border-color: #fff; }
.v-press .section--orange .field label, .v-press .section--orange .req { color: #fff; }

/* Collapsed gutters. With gap:0 and a full border on every tile, each shared
   edge renders at 2px. The grid supplies the top and left edges and each tile
   supplies right and bottom, so every seam -- including across a wrapped row --
   is a single hairline, whatever the column count works out to. */
.v-press .logos { gap: 0; border-top: 1px solid #111; border-left: 1px solid #111; }
.v-press .logos a { background: #fff; border: 1px solid #111; border-width: 0 1px 1px 0; }
.v-press .logos a:hover { background: #f4f4f4; transform: none; }
.v-press .logos img { filter: invert(1) grayscale(1) contrast(1.15); opacity: 1; }
.v-press .chips a, .v-press .chips span { background: #fff; border: 1px solid #111; color: #1a1a1a; }
.v-press .chips a:hover { background: #e2231a; border-color: #e2231a; }
.v-press .chips { justify-content: flex-start; }
.v-press .prev-sponsors { border-top: 1px solid #111; }

.v-press .featured { background: #fff; border: 1px solid #111; border-left: 6px solid #e2231a; }
.v-press .featured__logo { background: #000; border: 0; }
.v-press .featured__body h3 { color: #000; }
.v-press .featured__body b { color: #000; }

.v-press .namap__frame { background: #fff; border: 1px solid #111; }
.v-press .namap__base { filter: invert(1) contrast(1.9); opacity: .55; }
.v-press .namap__frame { --pin-contestant: #9a9a9a; --pin-winner: #d4a017; --pin-host: #e2231a; }
.v-press .namap__pin::before { box-shadow: none; }
.v-press .namap__pin::after { background: #fff; }
.v-press .namap__pin--winner::before { box-shadow: 0 0 0 2px rgba(212,160,23,.3); }
.v-press .namap__host::before { box-shadow: none; }
.v-press .namap__host::after { border-color: rgba(226,35,26,.4); }
.v-press .namap__swatch--pin { background: #9a9a9a; }
.v-press .namap__swatch--winner { background: #d4a017; }
.v-press .namap__swatch--host { background: #e2231a; }
.v-press .namap__controls button { background: #fff; color: #000; border: 1px solid #111; border-radius: 0; }
.v-press .namap__hint { background: #fff; color: #1a1a1a; border: 1px solid #111; border-radius: 0; }
.v-press .djm__panel { background: #fff; color: #1a1a1a; border: 1px solid #111; border-top: 4px solid #d4a017; border-radius: 0; }
.v-press .djm__name { color: #000; }
.v-press .djm__links a { background: #fff; color: #1a1a1a; border: 1px solid #111; border-radius: 0; }
.v-press .djm__close { background: #fff; color: #000; border: 1px solid #111; border-radius: 0; }
.v-press .venue-strip { background: #fff; border: 1px solid #111; border-left: 6px solid #e2231a; }

.v-press .contact__list img { filter: invert(1); opacity: .8; }
.v-press .contact__list a, .v-press .socials a { color: #1a1a1a; }
.v-press .contact__list a:hover, .v-press .socials a:hover { color: #e2231a; }
.v-press .ticketbar { background: #000; border-top: 0; }
.v-press .ticketbar .h2 { color: #fff; }
.v-press .ticketbar .btn--ink { background: #e2231a; border-color: #e2231a; color: #fff; }
.v-press .footer { background: #fff; border-top: 2px solid #000; }
.v-press .footer__nge { filter: none; }
.v-press .footer__meta a, .v-press .footer__social a { color: #1a1a1a; }
.v-press .footer__copy { color: #949494; }
.v-press .lightbox { background: rgba(255,255,255,.98); }
.v-press .lightbox__figure img { border: 1px solid #111; box-shadow: none; }
.v-press .lightbox__figure figcaption { color: #6b6b6b; }
.v-press .lightbox__nav, .v-press .lightbox__close {
  background: #fff; color: #000; border: 1px solid #111; border-radius: 0;
}
.v-press .lightbox__nav:hover, .v-press .lightbox__close:hover { background: #e2231a; color: #fff; border-color: #e2231a; }
.v-press .skip-link { background: #e2231a; }
.v-press :focus-visible { outline-color: #e2231a; }

/* waveforms need dark ink on this light canvas */
.v-press .wavebar { --wave-ins: #e2231a; --wave-aca: rgba(17,17,17,.5); }
