/* Final homepage hierarchy pass. Kept separate and body-scoped so game pages remain unchanged. */
.home-page .arcade-connect {
  box-shadow: 0 0 8px rgba(104, 60, 255, .84), 0 0 29px rgba(109, 49, 255, .52), inset 0 0 38px rgba(36, 73, 255, .12);
}

.home-page .arcade-dashboard .ranking-panel.day {
  box-shadow: 0 0 8px rgba(255, 157, 0, .9), 0 0 31px rgba(255, 164, 0, .32), inset 0 0 28px rgba(255, 155, 0, .07);
}

.home-page .arcade-dashboard .ranking-panel.week {
  box-shadow: 0 0 8px rgba(168, 46, 255, .9), 0 0 31px rgba(169, 36, 255, .29), inset 0 0 28px rgba(167, 38, 255, .07);
}

.home-page .ranking-crown {
  filter: drop-shadow(0 0 8px currentColor);
}

.home-page .nickname-cue {
  position: static;
  margin: 7px 0 -18px;
  animation: homeNicknameCue 2s ease both;
}

@keyframes homeNicknameCue {
  0%, 100% { opacity: 0; }
  20%, 70% { opacity: 1; }
}

.home-page .weekly-champions {
  padding: 16px 0;
}

.home-page .weekly-stage {
  min-height: 335px;
  padding: 16px 22px;
  column-gap: 18px;
}

.home-page .weekly-copy h2 {
  margin: 7px 0 5px;
  font-size: clamp(35px, 3.6vw, 55px);
}

.home-page .weekly-copy > p {
  margin: 6px 0;
  font-size: 14px;
}

.home-page .weekly-badges {
  margin-top: 18px;
}

.home-page .weekly-trophy img {
  max-width: 290px;
  height: 320px;
  filter: saturate(1.08) drop-shadow(0 0 18px rgba(255, 179, 0, .42));
}

.home-page .weekly-top {
  padding: 13px 15px;
}

.home-page .previous-podium {
  min-height: 275px;
}

.home-page .previous-podium-list {
  gap: 8px;
  margin: 14px 0 12px;
}

.home-page .previous-podium-player {
  padding: 10px 8px;
}

.home-page .podium-medal {
  display: block;
  width: 34px;
  height: 43px;
  margin: -3px auto 3px;
  line-height: 0;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .45));
  transition: transform .18s ease, filter .18s ease;
}

.home-page .podium-medal svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.home-page .previous-podium-player.rank-1 .podium-medal {
  width: 40px;
  height: 47px;
  filter: drop-shadow(0 0 5px rgba(255, 190, 35, .5)) drop-shadow(0 2px 3px rgba(0, 0, 0, .5));
}

.home-page .previous-podium-player.rank-2 .podium-medal {
  filter: drop-shadow(0 0 3px rgba(146, 198, 255, .32)) drop-shadow(0 2px 3px rgba(0, 0, 0, .45));
}

.home-page .previous-podium-player.rank-3 .podium-medal {
  filter: drop-shadow(0 0 3px rgba(224, 111, 51, .3)) drop-shadow(0 2px 3px rgba(0, 0, 0, .45));
}

@media (hover: hover) and (pointer: fine) {
  .home-page .previous-podium-player:hover .podium-medal {
    transform: translateY(-2px);
    filter: drop-shadow(0 0 6px rgba(164, 118, 255, .55)) drop-shadow(0 3px 4px rgba(0, 0, 0, .5));
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .podium-medal {
    transition: none;
  }
}

.home-page .previous-podium > .btn {
  min-height: 40px;
}

.home-page .community-cta {
  padding-bottom: 16px;
}

.home-page .community-cta-stage {
  min-height: 245px;
}

.home-page .community-mascot,
.home-page .community-chat {
  height: 225px;
  max-height: 225px;
}

.home-page .community-cta-copy {
  padding: 15px 16px;
}

.home-page .community-cta-copy h2 {
  margin: 6px 0 2px;
  font-size: clamp(30px, 3.2vw, 45px);
}

.home-page .community-cta-copy > p {
  margin: 5px 0 10px;
  font-size: 14px;
}

.home-page .community-benefits {
  margin-bottom: 10px;
}

.home-page .community-cta-copy > .btn {
  min-height: 48px;
}

@media (max-width: 760px) {
  .home-page .weekly-stage {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding: 16px 12px;
  }

  .home-page .weekly-copy h2 {
    font-size: clamp(29px, 8.5vw, 35px);
  }

  .home-page .weekly-badges {
    margin-top: 10px;
  }

  .home-page .weekly-trophy {
    height: 215px;
  }

  .home-page .weekly-trophy img {
    width: 100%;
    max-width: 230px;
    height: 215px;
  }

  .home-page .previous-podium {
    min-height: 245px;
  }

  .home-page .community-cta-stage {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  .home-page .community-mascot {
    height: 165px;
    max-height: 165px;
  }

  .home-page .community-chat {
    height: 110px;
    max-height: 110px;
  }

  .home-page .community-cta-copy {
    padding: 15px 12px;
  }
}

@media (max-width: 430px) {
  .home-page .weekly-stage,
  .home-page .community-cta-stage {
    min-width: 0;
  }

  .home-page .previous-podium-player.rank-1 {
    width: 72%;
  }
}
