.hero {
  padding: 70px 0 60px;
  text-align: center;
}

.hero-badge { margin-bottom: 18px; }

.hero h1 {
  font-size: clamp(38px, 6.5vw, 68px);
  font-weight: 800;
}

.hero h1 span { color: var(--ink); }

.hero p {
  max-width: 520px;
  margin: 18px auto 30px;
  color: var(--ink-soft);
  font-size: 17px;
}

.hero-actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

.gallery-section {
  background: var(--white);
}

.gallery-header {
  text-align: center;
}

.gallery-header .section-sub { margin-left: auto; margin-right: auto; }

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 190px));
  gap: 20px;
  max-width: 660px;
  margin: 0;
}

.character-card {
  position: relative;
  background: var(--cream);
  border-radius: var(--radius-md);
  padding: 18px 14px 16px;
  text-align: center;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.character-card:hover,
.character-card:focus-visible {
  transform: translateY(-6px);
  border-color: var(--mango);
  background: var(--cream-deep);
}

.character-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  filter: grayscale(1);
  transition: filter 0.25s ease, transform 0.25s ease;
}

.character-card:hover img,
.character-card:focus-visible img,
.character-card.is-revealed img {
  filter: grayscale(0);
  transform: scale(1.04);
}

.character-card .char-name {
  margin-top: 10px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
}

.character-card .char-hint {
  font-size: 12px;
  color: var(--ink-soft);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.character-card:hover .char-hint,
.character-card:focus-visible .char-hint { opacity: 1; }
