/* Pixelify Sans, SIL Open Font License 1.1; license in assets/fonts/pixelifysans-OFL.txt.
   Uppercase Z corrected by scripts/generate-pixel-z.py; every other glyph is preserved.
   Shared player-website typography: Pixelify lettering, Departure Mono numerals and DM Sans copy. */
@font-face {
  font-family: 'Pixelify Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('assets/fonts/pixelify-sans-latin-z.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Departure Mono supplies slimmer pixel-art numerals in mixed labels such as
   "Nível 12" and "+150 XP". Only digits use this face; letters stay in Pixelify.
   SIL OFL 1.1; original license in assets/fonts/departure-mono-OFL.txt. */
@font-face {
  font-family: 'Gameplay Numerals';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/departure-mono.woff2') format('woff2');
  unicode-range: U+0030-0039;
}
:root {
  --font-pixel: 'Gameplay Numerals', 'Pixelify Sans', 'DM Sans', sans-serif;
  --font-reading: 'Gameplay Numerals', 'DM Sans', sans-serif;
  font-synthesis: style;
  font-variant-numeric: lining-nums tabular-nums;
}

/* Titles and game readouts share the same pixel language as the artwork. */
:root body :is(
  h1, h2, h3, h4, h5, h6, .empty-state-title, .number, .eyebrow, .quest-kicker, .quest-level,
  .quest-xp-head strong, .quest-stats dd, .xp-pill, .daily-reward strong,
  .streak-track span, .badge-family-title strong, .badge-family-count,
  .badge-tile strong, .stat-card strong, .podium-card strong, .rank-table .points,
  .game-detail-stats strong, .tournament-stats strong, .score-box strong, .player-stat strong,
  .played-game-copy strong,
  .pp-level-ring strong, .pp-level-copy > strong, .family-stat-card strong,
  .rating-field legend, .rating-value, .rating-readout-text strong,
  .notification-empty strong, .cookie-banner-copy strong
) {
  font-family: var(--font-pixel);
  font-weight: 600;
  font-synthesis: none;
  font-variant-numeric: lining-nums tabular-nums;
  letter-spacing: 0;
  line-height: 1.2;
}

/* Every navigation and action surface uses the same family, even when it has
   its own component CSS. Paragraphs and editable fields use --font-reading. */
:root body :is(button, summary, nav a, th, caption) {
  font-family: var(--font-pixel);
  font-synthesis: none;
  font-variant-numeric: lining-nums tabular-nums;
}
:root body :is(.footer-links a, .rail-footer, .institutional-nav a, .legal-back) {
  font-family: var(--font-pixel);
  font-size: 14px;
  line-height: 1.35;
}

/* Increase the pixel font's size for comfortable navigation and short actions. */
:root body :is(
  .button, .nav-link, .text-link, .category, .tabs button, .settings-tabs button,
  .community-tabs button, .chat-tabs button, .account-menu > a, .account-menu > button
) {
  font-family: var(--font-pixel);
  font-size: 16px;
  font-weight: 500;
  font-synthesis: none;
  font-variant-numeric: lining-nums tabular-nums;
  letter-spacing: .1px;
  line-height: 1.25;
}
:root body :is(h5, h6) { font-size: 16px; }
:root body :is(.game-card h3, .popular-card h3, .room-card h3, .post-game h4) { font-size: 16px; line-height: 1.25; }
:root body :is(.feed-tab, .composer-prompt, .post-action, .cookie-banner-actions button, .cookie-dialog-actions button) { font-size: 14px; }
:root body .rank-table th { font-size: 14px; line-height: 1.3; }
:root body .button.small { font-size: 15px; }
:root body .nav-link { font-size: 17px; }
:root body .nav-label { font-family: var(--font-pixel); font-size: 12px; font-weight: 500; letter-spacing: 1.2px; }
:root body .mobile-bottom a { font-family: var(--font-pixel); font-size: 12px; font-weight: 500; line-height: 1.25; }
:root body .page-top h1 { font-size: clamp(26px, 2.3vw, 32px); }
:root body .eyebrow { font-size: 12px; font-weight: 500; letter-spacing: .5px; line-height: 1.35; }
:root body .quest-kicker { font-size: 13px; font-weight: 500; letter-spacing: .7px; }
:root body .hero .hero-title { font-size: clamp(34px, 3.5vw, 48px); line-height: 1.08; letter-spacing: 0; }
:root .quest-page .mission-card h3 { font-size: 20px; line-height: 1.2; }
:root .quest-page .mission-card .xp-pill { font-family: var(--font-pixel); font-size: 16px; font-weight: 600; }
:root body .daily-reward strong { font-size: 26px; }
:root body .badge-family-title strong { font-size: 19px; }
:root body .badge-tile strong { font-size: 15px; }

/* Paragraphs, fields, small statuses and user content retain their reading font. */
:root body :is(input, textarea, select) { font-family: var(--font-reading); }
@media (max-width: 680px) {
  :root body .page-top h1 { font-size: 24px; }
  :root body .hero .hero-title { font-size: 36px; }
  :root body .category { font-size: 15px; }
}
