.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
}

.icon-gi {
  display: inline-block;
  width: 1.35em;
  height: 1.35em;
  background-color: currentColor;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.icon-gi--xs {
  width: 0.95em;
  height: 0.95em;
}

.icon-gi--sm {
  width: 1.1em;
  height: 1.1em;
}

.icon-star {
  font-size: 0.95rem;
  color: var(--text-muted);
  opacity: 0.45;
}

.icon-star--filled {
  color: var(--gold-bright);
  opacity: 1;
}

.level-stars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.level-stars .icon-star {
  font-size: 0.85rem;
}

.word-chip.bonus {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.icon-bonus-prefix {
  color: var(--gold-bright);
  flex-shrink: 0;
}

.highlight-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.highlight-item .icon-gi {
  color: var(--gold);
}

.icon-gi--lg {
  width: 2.5rem;
  height: 2.5rem;
}

.icon-gi--xl {
  width: 4rem;
  height: 4rem;
}

.btn .icon-gi,
.btn .ph {
  opacity: 0.95;
}

.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  width: 1.35em;
  height: 1.35em;
}

.btn-icon .ph {
  font-size: 1.25em;
}

.mode-btn .icon-gi {
  width: 2rem;
  height: 2rem;
  margin-bottom: 4px;
}

.help-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  color: var(--gold);
}

.help-icon .icon-gi,
.help-icon .ph {
  width: 1.75rem;
  height: 1.75rem;
  font-size: 1.75rem;
}

.leaderboard-section h3 {
  display: flex;
  align-items: center;
  gap: 8px;
}

.level-title-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.daily-hero h3,
.level-preview h3,
.lobby-level h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.level-card .level-title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.level-card .level-title .icon-gi {
  color: var(--gold);
  flex-shrink: 0;
}

.btn-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-back .ph {
  font-size: 1.2rem;
}

.winner-crown {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  animation: crownBounce 0.6s ease;
}

.winner-crown .icon-gi {
  width: 4rem;
  height: 4rem;
}
