/*
 * Sponsors & the stamp passport — partner logos, the booth QR, and the
 * attendee's stamp grid. Standard components carry the rest.
 */
@layer components {
  .partner__logo { max-inline-size: 200px; height: auto; }
  .partner__logo-preview { max-inline-size: 120px; height: auto; display: block; margin-block-end: calc(var(--u-pad) / 2); }
  .partner__qr { max-inline-size: 280px; margin-inline: auto; }
  .partner__qr svg { inline-size: 100%; height: auto; }

  .stamp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
    gap: calc(var(--u-pad) / 2);
  }

  .stamp-grid__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--u-pad) / 4);
    padding: var(--u-pad);
    border: var(--border-size-1) dashed var(--line);
    border-radius: var(--radius-card);
    text-align: center;
    text-decoration: none;
    color: var(--ink-muted);
  }

  .stamp-grid__item--collected .stamp-grid__link {
    border-style: solid;
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--ink);
  }

  .stamp-grid__mark { font-size: var(--font-size-4); line-height: 1; }
  .stamp-grid__name { font-size: var(--font-size-0); }
}
