/* ============================================
   ReadVenture Profile Overlay
   Profile hero, Stats, Achievements, Trophies, Sprite space
   ============================================ */

#profileOverlay {
  position: absolute;
  inset: 0;
  z-index: 310;
  background: var(--grad-overlay);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transform: translateY(100%);
  transition: transform var(--anim-overlay) var(--ease-smooth);
  display: flex;
  flex-direction: column;
}
#profileOverlay.show {
  transform: translateY(0);
}

/* ── Profile Hero ── */
.profile-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 36px var(--space-xl) var(--space-2xl);
  position: relative;
  text-align: center;
}

.profile-avatar {
  width: 80px; height: 80px;
  border-radius: var(--radius-full);
  background: var(--grad-profile-avatar);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-40);
  box-shadow: var(--shadow-gold);
  margin-bottom: var(--space-md);
}

.profile-avatar-ring {
  border: 3px solid var(--gold-frame-light);
  box-shadow: 0 0 20px var(--gold-30), 0 0 40px var(--gold-15);
}

.profile-name {
  font-size: var(--text-22);
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 2px;
}

.profile-level-tag {
  display: inline-block;
  padding: 3px 12px;
  border-radius: var(--radius-pill);
  font-size: var(--text-12);
  font-weight: 700;
  background: var(--purple-15);
  color: var(--purple-light);
  border: 1px solid var(--border-purple-25);
  margin-bottom: var(--space-sm);
}

/* ── Stats Grid ── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 0 var(--space-xl) var(--space-2xl);
}

.stat-card {
  background: var(--card-dark);
  border-radius: var(--radius-2xl);
  padding: var(--space-md);
  text-align: center;
  border: 1px solid var(--border-10);
}

.stat-value {
  font-size: var(--text-22);
  font-weight: 800;
  background: var(--grad-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stat-label {
  font-size: var(--text-11);
  color: var(--text-muted);
  margin-top: 2px;
}

/* ── Level Progress ── */
.level-section {
  padding: 0 var(--space-xl) var(--space-xl);
}
.level-bar-container {
  margin-top: var(--space-sm);
}

/* ── Achievements ── */
.achievements-title {
  padding: 0 var(--space-xl);
  font-size: var(--text-18);
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: var(--space-md);
}

.achievements-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 0 var(--space-xl) var(--space-xl);
}

.achievement-card {
  background: var(--card-dark);
  border-radius: var(--radius-2xl);
  padding: var(--space-md);
  text-align: center;
  border: 1px solid var(--border-10);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.achievement-icon {
  font-size: var(--text-32);
  filter: grayscale(1);
  opacity: 0.7;
}

.achievement-card.unlocked .achievement-icon {
  filter: none;
  opacity: 1;
}

.achievement-name {
  font-size: var(--text-11);
  color: var(--text-muted);
  font-weight: 600;
}

.achievement-card.unlocked .achievement-name {
  color: var(--gold);
}

/* ── Trophies / Challenges ── */
.trophy-section {
  padding: 0 var(--space-xl) var(--space-xl);
}

.trophy-card {
  background: var(--card-dark);
  border-radius: var(--radius-2xl);
  padding: var(--space-md) var(--space-lg);
  border: 1px solid var(--border-10);
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-sm);
  cursor: pointer;
  transition: background var(--anim-normal);
}
.trophy-card:active {
  background: var(--purple-8);
}

.trophy-icon {
  font-size: var(--text-30);
  flex-shrink: 0;
}

.trophy-info {
  flex: 1;
}
.trophy-name {
  font-weight: 700;
  color: var(--text-primary);
  font-size: var(--text-14);
}

.trophy-desc {
  font-size: var(--text-12);
  color: var(--text-muted);
}

/* ── Sprite Space (精灵空间) ── */
#spriteSpace {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 320;
  background: var(--grad-sprite-space);
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#spriteSpace .current-sprite {
  font-size: var(--text-72);
  filter: drop-shadow(0 8px 20px var(--purple-30));
  margin-bottom: var(--space-2xl);
}

/* ── Logout ── */
.profile-logout {
  display: block;
  width: calc(100% - 40px);
  margin: 0 auto var(--space-2xl);
  padding: 14px;
  border-radius: var(--radius-pill);
  background: var(--glass-10);
  border: 1px solid var(--border-red);
  color: var(--red);
  font-size: var(--text-15);
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}
