@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@500;600;700&family=Nunito:wght@500;600;700;800&display=swap");

:root {
  --font-display: "Fredoka", "DM Sans", system-ui, sans-serif;
  --font-ui: "Nunito", "DM Sans", system-ui, sans-serif;
  --font-body: "DM Sans", system-ui, sans-serif;
}

body,
input,
textarea {
  font-family: var(--font-body);
}

h1,
h2,
h3,
.brand,
.brand-name,
.featured-overlay strong,
.mini-tile strong,
.home-entry-cards strong,
.home-featured-grid strong,
.game-card h3,
.guide-card h2,
.guide-card h3,
.creator-card h3,
.ranked-game h2,
.ranked-game h3,
.drawer-header h2,
.roulette-modal h2 {
  font-family: var(--font-display) !important;
}

h1,
h2,
h3 {
  font-weight: 700;
  letter-spacing: -0.025em;
}

.hero h1,
.guide-hero h1,
.discover-intro h1,
.article-hero h1,
.game-detail-hero h1 {
  letter-spacing: -0.04em !important;
  line-height: 0.95;
  text-wrap: balance;
}

.home-page .home-hero-compact .hero-copy h1 {
  max-width: 10.5ch;
  font-weight: 700;
  line-height: 0.94;
}

button,
select,
label,
legend,
summary,
nav,
.primary-cta,
.hero-random,
.text-link,
.details-link,
.play-link,
.find-button,
.roulette-button,
.save-button,
.site-saved-button,
.site-header-actions,
.site-footer-navigation,
.mobile-menu-panel,
.eyebrow,
.hero-kicker,
.match-badge,
.choice-row,
.toggle-control,
.filter-chip,
.game-meta {
  font-family: var(--font-ui) !important;
}

button,
.primary-cta,
.hero-random,
.details-link,
.play-link,
.find-button,
.roulette-button,
.site-saved-button {
  font-weight: 800;
}

.eyebrow,
.hero-kicker,
.match-badge,
.game-meta {
  letter-spacing: 0.075em;
}

.site-footer-group h2 {
  font-family: var(--font-ui) !important;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.discover-page .finder-section .section-heading h2,
.discover-page .results-section .section-heading h2,
.discover-page .collections-section .section-heading h2 {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.045em !important;
  line-height: 0.94 !important;
  text-wrap: balance;
}

.discover-page .finder-section .section-heading h2 {
  max-width: 10ch;
}

.discover-page .results-section .section-heading h2 {
  max-width: 11ch;
}

.discover-page .section-heading .eyebrow,
.discover-page .collection-filter-label,
.discover-page .discovery-filter button,
.discover-page .results-count,
.discover-page .builder-collapse-toggle,
.discover-page .text-button,
.discover-page .choice-row button,
.discover-page .toggle-control,
.discover-page .sort-control,
.discover-page legend,
.discover-page label,
.discover-page summary {
  font-family: var(--font-ui) !important;
}

.discover-page .collection-filter-label,
.discover-page .section-heading .eyebrow {
  font-weight: 800;
  letter-spacing: 0.075em;
}

.discover-page .discovery-filter button {
  font-weight: 800;
}

@media (max-width: 767px) {
  .home-page .home-hero-compact .hero-copy h1 {
    max-width: 11ch;
    letter-spacing: -0.035em !important;
    line-height: 0.96;
  }

  .discover-page .finder-section .section-heading h2,
  .discover-page .results-section .section-heading h2 {
    max-width: 12ch;
    letter-spacing: -0.035em !important;
    line-height: 0.96 !important;
  }
}
