/* Hall of fame — same campaign look as the stage, but a normal scrolling page that works on phones. */
@font-face { font-family: 'Geomanist'; font-weight: 300; font-display: swap; src: url('/assets/fonts/geomanist-light.woff2') format('woff2'); }
@font-face { font-family: 'Geomanist'; font-weight: 400; font-display: swap; src: url('/assets/fonts/geomanist-regular.woff2') format('woff2'); }
@font-face { font-family: 'Geomanist'; font-weight: 500; font-display: swap; src: url('/assets/fonts/geomanist-medium.woff2') format('woff2'); }
@font-face { font-family: 'Geomanist'; font-weight: 700; font-display: swap; src: url('/assets/fonts/geomanist-bold.woff2') format('woff2'); }
@font-face { font-family: 'Geomanist'; font-weight: 900; font-display: swap; src: url('/assets/fonts/geomanist-black.woff2') format('woff2'); }

:root {
  --text: #ffffff; --muted: rgba(255, 255, 255, .65); --brand: #26e3b5; --line: rgba(255, 255, 255, .14);
  --font-display: 'Geomanist', 'Helvetica Neue', system-ui, sans-serif;
  --font-body: 'Geomanist', 'Helvetica Neue', system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { background: #04201c; }
body { margin: 0; min-height: 100vh; color: var(--text); font-family: var(--font-body); }
/* The banner has Messi, logos and T&Cs baked in, so behind a list it is only used as a dimmed, blurred stadium. */
body::before {
  content: ''; position: fixed; inset: -20px; z-index: -1;
  background: url('/assets/campaign-bg.webp') center / cover no-repeat;
  filter: blur(14px) brightness(.5) saturate(1.1);
}
.hall { max-width: 920px; margin: 0 auto; padding: 56px 20px 80px; }
.eyebrow { font-size: 13px; letter-spacing: .3em; text-transform: uppercase; color: var(--muted); }
h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(40px, 8vw, 76px); line-height: 1.05; margin: 10px 0 8px; }
.sub { color: var(--muted); font-size: 18px; margin: 0 0 36px; }

.winners { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.winner {
  display: grid; gap: 4px; padding: 18px 22px; border-radius: 16px;
  background: rgba(3, 26, 23, .62); border: 1px solid var(--line);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.winner .name { font-family: var(--font-display); font-weight: 600; font-size: clamp(22px, 4.5vw, 34px); color: #fff; overflow-wrap: anywhere; }
.winner .prize { font-size: 18px; color: var(--brand); }
.winner .meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--muted); font-size: 14px; }
.winner .phone { font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.winner.fresh { animation: pop .7s cubic-bezier(.2, 1.4, .4, 1); }
@keyframes pop { from { transform: scale(.94); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .winner.fresh { animation: none; } }

.empty { color: var(--muted); font-size: 18px; padding: 28px 0; }
.offline { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); background: #c0392b; color: #fff; font: 14px system-ui; padding: 6px 14px; border-radius: 6px; }
