/**
 * Gamificación RPG — XP, logros, level-up, chibi aura
 */

/* ─── Barra XP global ──────────────────────────────────────────────────────── */
.rpg-xp-widget {
  margin-bottom: 16px;
  padding: 12px 16px;
  border-radius: var(--radio);
  border: var(--regla) solid var(--borde-fuerte);
  background: var(--superficie-elevada);
  cursor: pointer;
  transition: transform 0.15s ease;}

.rpg-xp-widget:active {
  transform: scale(0.98);}

.rpg-xp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 700;}

.rpg-xp-label {
  color: var(--texto);}

.rpg-streak {
  color: var(--interes);
  font-size: 12px;}

.rpg-xp-track {
  height: 14px;
  background: var(--superficie);
  border: var(--regla) solid var(--borde-fuerte);
  border-radius: var(--radio);
  overflow: hidden;}

.rpg-xp-fill {
  height: 100%;
  width: 0%;
  border-radius: var(--radio);
  transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);}

/* ─── Floating XP ──────────────────────────────────────────────────────────── */
.floating-xp {
  position: fixed;
  z-index: 10003;
  pointer-events: none;
  font-weight: 700;
  font-size: 22px;
  color: var(--acento-texto);
  transform: translate(-50%, -50%);
  opacity: 0;
  will-change: transform, opacity;}

.floating-xp.float-active {
  animation: floatXp 1.1s ease-out forwards;}

@keyframes floatXp {
  0% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(0.6);}
  100% {
    opacity: 0;
    transform: translate(-50%, -120%) scale(1.2);}
}

/* ─── Level up modal ───────────────────────────────────────────────────────── */
#level-up-modal {
  z-index: 10004;}

#level-up-modal .modal-content {
  text-align: center;
  max-width: 360px;
  animation: levelPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);}

@keyframes levelPop {
  from {
    transform: scale(0.5) rotate(-5deg);
    opacity: 0;}
  to {
    transform: scale(1) rotate(0);
    opacity: 1;}
}

.level-up-badge {
  font-size: 64px;
  margin-bottom: 12px;
  animation: levelBadgePulse 1s ease-in-out infinite;}

@keyframes levelBadgePulse {
  0%,
  100% {
    transform: scale(1);}
  50% {
    transform: scale(1.1);}
}

#level-up-number {
  font-size: 48px;
  font-weight: 700;
  color: var(--acento-texto);}

/* ─── Perfil RPG ───────────────────────────────────────────────────────────── */
.profile-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px;
  margin-bottom: 20px;
  text-align: center;}

.profile-avatar {
  width: 100px;
  height: 100px;
  border-radius: var(--radio);
  border: var(--regla) solid var(--borde-fuerte);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;}

.profile-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 16px 0;}

.profile-stat {
  padding: 14px;
  border-radius: var(--radio);
  border: var(--regla) solid var(--borde-fuerte);
  background: var(--superficie-elevada);
  text-align: center;}

.profile-stat-label {
  font-size: 11px;
  text-transform: uppercase;
  color: var(--texto-suave);
  font-weight: 700;}

.profile-stat-value {
  font-size: 20px;
  font-weight: 700;
  margin-top: 4px;}

.title-badge {
  display: inline-block;
  padding: 6px 12px;
  margin: 4px;
  border-radius: var(--radio);
  border: var(--regla) solid var(--borde-fuerte);
  font-size: 12px;
  font-weight: 700;}

/* ─── Logros ───────────────────────────────────────────────────────────────── */
.achievements-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 12px;}

.achievement-card {
  position: relative;
  padding: 16px 12px;
  border-radius: var(--radio);
  border: var(--regla) solid var(--borde-fuerte);
  text-align: center;
  transition: transform 0.15s ease;}

.achievement-card.unlocked {
  background: var(--superficie-elevada);}

.achievement-card.locked {
  opacity: 0.45;
  filter: grayscale(0.8);}
.achievement-card.rarity-legendary.unlocked {
  animation: legendaryGlow 2s ease-in-out infinite;}

@keyframes legendaryGlow {
}

.ach-icon {
  font-size: 32px;
  display: block;
  margin-bottom: 6px;}

.ach-name {
  font-size: 12px;
  font-weight: 700;
  display: block;}

.ach-rarity {
  font-size: 10px;
  text-transform: uppercase;
  color: var(--texto-suave);}

.ach-check {
  position: absolute;
  top: 6px;
  right: 8px;
  color: var(--capital);
  font-weight: 700;}
.chibi-face.chibi-aura-3 {
  animation: auraPulse 2s ease-in-out infinite;}
.chibi-face.chibi-aura-legend {
  animation: auraPulse 1.5s ease-in-out infinite;}

@keyframes auraPulse {
  0%,
  100% {
    filter: brightness(1);}
  50% {
    filter: brightness(1.15);}
}

@media (prefers-reduced-motion: reduce) {
  .floating-xp.float-active,
  .level-up-badge,
  .achievement-card.rarity-legendary.unlocked,
  .chibi-face.chibi-aura-legend,
  .chibi-face.chibi-aura-3 {
    animation: none;}
}
