/* ===================================================================
   PUKITO CHARACTER - PERSONAGEM AVANÇADO E CARISMÁTICO
   Sistema completo de renderização do personagem usando CSS puro
   com corpo, membros, expressões faciais e animações realistas
   =================================================================== */

/* ===================================================================
   CONTAINER DO PERSONAGEM
   =================================================================== */

.pukito-character {
  position: relative;
  width: 180px;
  height: 200px;
  margin: 80px auto 60px;
  z-index: 5;
  transform-style: preserve-3d;
  animation: characterIdle 3s ease-in-out infinite;
}

@keyframes characterIdle {
  0%, 100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-10px) scale(1.02);
  }
}

/* ===================================================================
   CORPO PRINCIPAL - Base arredondada com textura
   =================================================================== */

.pukito-body {
  position: relative;
  width: 120px;
  height: 130px;
  margin: 0 auto;
  background: 
    /* Textura de pelo/pele */
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.4) 0%, transparent 20%),
    radial-gradient(circle at 70% 60%, rgba(255, 255, 255, 0.2) 0%, transparent 15%),
    /* Gradiente principal */
    radial-gradient(ellipse at center, #ff6b9d 0%, #ff5582 50%, #e63e6d 100%);
  border-radius: 45% 55% 50% 50% / 55% 55% 45% 45%;
  box-shadow: 
    0 20px 40px rgba(255, 107, 157, 0.4),
    inset 0 -10px 30px rgba(230, 62, 109, 0.6),
    inset 0 10px 30px rgba(255, 255, 255, 0.3);
  animation: bodyBreathe 2.5s ease-in-out infinite;
  transform-style: preserve-3d;
}

@keyframes bodyBreathe {
  0%, 100% {
    transform: scale(1);
    border-radius: 45% 55% 50% 50% / 55% 55% 45% 45%;
  }
  50% {
    transform: scale(1.03);
    border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
  }
}

/* Brilho no corpo */
.pukito-body::before {
  content: '';
  position: absolute;
  top: 15%;
  left: 20%;
  width: 40px;
  height: 50px;
  background: 
    radial-gradient(
      ellipse,
      rgba(255, 255, 255, 0.6) 0%,
      rgba(255, 255, 255, 0.3) 40%,
      transparent 70%
    );
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: shineMove 3s ease-in-out infinite;
}

@keyframes shineMove {
  0%, 100% {
    opacity: 0.6;
    transform: rotate(-20deg) translateX(0);
  }
  50% {
    opacity: 0.8;
    transform: rotate(-20deg) translateX(5px);
  }
}

/* ===================================================================
   CABEÇA - Integrada ao corpo
   =================================================================== */

.pukito-head {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  height: 90px;
  background: 
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.5) 0%, transparent 25%),
    radial-gradient(ellipse at center, #ff7ba8 0%, #ff6b9d 100%);
  border-radius: 50%;
  box-shadow: 
    0 10px 30px rgba(255, 107, 157, 0.5),
    inset 0 -5px 20px rgba(230, 62, 109, 0.4),
    inset 0 5px 20px rgba(255, 255, 255, 0.4);
  z-index: 10;
}

/* ===================================================================
   ROSTO - Olhos, Boca e Bochechas
   =================================================================== */

/* Olhos */
.pukito-eye {
  position: absolute;
  top: 30px;
  width: 22px;
  height: 26px;
  background: white;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 
    inset 0 2px 5px rgba(0, 0, 0, 0.1),
    0 2px 5px rgba(0, 0, 0, 0.2);
  animation: eyeBlink 5s ease-in-out infinite;
}

.pukito-eye--left {
  left: 20px;
}

.pukito-eye--right {
  right: 20px;
}

@keyframes eyeBlink {
  0%, 48%, 52%, 100% {
    transform: scaleY(1);
  }
  50% {
    transform: scaleY(0.1);
  }
}

/* Pupilas */
.pukito-pupil {
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 12px;
  background: 
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.8) 0%, transparent 40%),
    radial-gradient(ellipse, #2d3436 0%, #000000 100%);
  border-radius: 50%;
  animation: pupilMove 6s ease-in-out infinite;
}

@keyframes pupilMove {
  0%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  25% {
    transform: translateX(-40%) translateY(-2px);
  }
  50% {
    transform: translateX(-50%) translateY(2px);
  }
  75% {
    transform: translateX(-60%) translateY(-2px);
  }
}

/* Brilho nos olhos */
.pukito-eye::after {
  content: '';
  position: absolute;
  top: 6px;
  left: 6px;
  width: 6px;
  height: 6px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 5px rgba(255, 255, 255, 0.8);
}

/* Bochechas rosadas */
.pukito-cheek {
  position: absolute;
  top: 50px;
  width: 18px;
  height: 14px;
  background: 
    radial-gradient(
      ellipse,
      rgba(255, 182, 193, 0.7) 0%,
      rgba(255, 105, 180, 0.4) 100%
    );
  border-radius: 50%;
  animation: cheekBlush 3s ease-in-out infinite;
}

.pukito-cheek--left {
  left: 8px;
}

.pukito-cheek--right {
  right: 8px;
}

@keyframes cheekBlush {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 0.9;
    transform: scale(1.1);
  }
}

/* Boca - Expressões variadas */
.pukito-mouth {
  position: absolute;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 15px;
  border-radius: 0 0 30px 30px;
  background: 
    linear-gradient(180deg, rgba(230, 62, 109, 0.6) 0%, rgba(195, 36, 77, 0.8) 100%);
  box-shadow: 
    inset 0 -3px 5px rgba(0, 0, 0, 0.2);
  animation: mouthSmile 4s ease-in-out infinite;
  overflow: hidden;
}

@keyframes mouthSmile {
  0%, 100% {
    width: 30px;
    height: 15px;
    border-radius: 0 0 30px 30px;
  }
  20% {
    width: 35px;
    height: 18px;
    border-radius: 0 0 35px 35px;
  }
  40%, 60% {
    width: 30px;
    height: 15px;
    border-radius: 0 0 30px 30px;
  }
}

/* Língua */
.pukito-tongue {
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 8px;
  background: 
    radial-gradient(ellipse, #ff8fab 0%, #ff6b9d 100%);
  border-radius: 0 0 10px 10px;
  opacity: 0;
  animation: tongueOut 8s ease-in-out infinite;
}

@keyframes tongueOut {
  0%, 90%, 100% {
    opacity: 0;
    transform: translateX(-50%) translateY(0);
  }
  92%, 98% {
    opacity: 1;
    transform: translateX(-50%) translateY(3px);
  }
}

/* ===================================================================
   BRAÇOS - Articulados com movimento
   =================================================================== */

.pukito-arm {
  position: absolute;
  top: 35px;
  width: 40px;
  height: 50px;
  background: 
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.3) 0%, transparent 20%),
    linear-gradient(180deg, #ff6b9d 0%, #ff5582 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 
    0 5px 15px rgba(255, 107, 157, 0.3),
    inset 0 -3px 10px rgba(230, 62, 109, 0.4);
  transform-origin: top center;
}

.pukito-arm--left {
  left: -15px;
  animation: armWaveLeft 3s ease-in-out infinite;
  transform: rotate(-10deg);
}

.pukito-arm--right {
  right: -15px;
  animation: armWaveRight 3s ease-in-out infinite;
  transform: rotate(10deg);
}

@keyframes armWaveLeft {
  0%, 100% {
    transform: rotate(-10deg);
  }
  25% {
    transform: rotate(-20deg);
  }
  50% {
    transform: rotate(-5deg);
  }
  75% {
    transform: rotate(-15deg);
  }
}

@keyframes armWaveRight {
  0%, 100% {
    transform: rotate(10deg);
  }
  25% {
    transform: rotate(5deg);
  }
  50% {
    transform: rotate(15deg);
  }
  75% {
    transform: rotate(20deg);
  }
}

/* Mãos */
.pukito-hand {
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 28px;
  height: 28px;
  background: 
    radial-gradient(circle at 40% 40%, rgba(255, 255, 255, 0.4) 0%, transparent 30%),
    radial-gradient(ellipse, #ff7ba8 0%, #ff6b9d 100%);
  border-radius: 50%;
  box-shadow: 
    0 3px 10px rgba(255, 107, 157, 0.4),
    inset 0 -2px 8px rgba(230, 62, 109, 0.3);
}

/* Dedos sugeridos */
.pukito-hand::after {
  content: '';
  position: absolute;
  top: 5px;
  left: -5px;
  width: 10px;
  height: 10px;
  background: rgba(255, 107, 157, 0.6);
  border-radius: 50%;
}

.pukito-hand::before {
  content: '';
  position: absolute;
  top: 5px;
  right: -5px;
  width: 10px;
  height: 10px;
  background: rgba(255, 107, 157, 0.6);
  border-radius: 50%;
}

/* ===================================================================
   PERNAS E PÉS - Base de sustentação
   =================================================================== */

.pukito-leg {
  position: absolute;
  bottom: -40px;
  width: 35px;
  height: 45px;
  background: 
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.3) 0%, transparent 20%),
    linear-gradient(180deg, #ff6b9d 0%, #ff5582 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 50% 50%;
  box-shadow: 
    0 5px 15px rgba(255, 107, 157, 0.3),
    inset 0 -3px 10px rgba(230, 62, 109, 0.4);
}

.pukito-leg--left {
  left: 20px;
  animation: legWalkLeft 2s ease-in-out infinite;
}

.pukito-leg--right {
  right: 20px;
  animation: legWalkRight 2s ease-in-out infinite;
}

@keyframes legWalkLeft {
  0%, 100% {
    transform: translateY(0) rotate(-2deg);
  }
  50% {
    transform: translateY(3px) rotate(2deg);
  }
}

@keyframes legWalkRight {
  0%, 100% {
    transform: translateY(0) rotate(2deg);
  }
  50% {
    transform: translateY(3px) rotate(-2deg);
  }
}

/* Pés */
.pukito-foot {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  width: 45px;
  height: 22px;
  background: 
    radial-gradient(circle at 40% 40%, rgba(255, 255, 255, 0.4) 0%, transparent 40%),
    radial-gradient(ellipse, #ff7ba8 0%, #ff6b9d 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 
    0 5px 10px rgba(255, 107, 157, 0.4),
    inset 0 -2px 8px rgba(230, 62, 109, 0.3);
}

/* Dedos do pé */
.pukito-foot::after {
  content: '';
  position: absolute;
  top: -3px;
  left: 10px;
  width: 25px;
  height: 8px;
  background: rgba(255, 107, 157, 0.5);
  border-radius: 50%;
  box-shadow: 
    8px 0 0 rgba(255, 107, 157, 0.5),
    16px 0 0 rgba(255, 107, 157, 0.5);
}

/* ===================================================================
   ACESSÓRIOS E DETALHES
   =================================================================== */

/* Antena fofa no topo da cabeça */
.pukito-antenna {
  position: absolute;
  top: -25px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 20px;
  background: 
    linear-gradient(180deg, #ff6b9d 0%, #ff5582 100%);
  border-radius: 4px;
  animation: antennaWiggle 2s ease-in-out infinite;
  transform-origin: bottom center;
}

@keyframes antennaWiggle {
  0%, 100% {
    transform: translateX(-50%) rotate(0deg);
  }
  25% {
    transform: translateX(-50%) rotate(-10deg);
  }
  75% {
    transform: translateX(-50%) rotate(10deg);
  }
}

/* Bolinha na ponta da antena */
.pukito-antenna::after {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 12px;
  background: 
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.8) 0%, transparent 40%),
    radial-gradient(circle, #ffd700 0%, #ffb700 100%);
  border-radius: 50%;
  box-shadow: 
    0 0 10px rgba(255, 215, 0, 0.6),
    0 3px 8px rgba(255, 183, 0, 0.4);
  animation: antennaGlow 1.5s ease-in-out infinite;
}

@keyframes antennaGlow {
  0%, 100% {
    box-shadow: 
      0 0 10px rgba(255, 215, 0, 0.6),
      0 3px 8px rgba(255, 183, 0, 0.4);
  }
  50% {
    box-shadow: 
      0 0 20px rgba(255, 215, 0, 0.9),
      0 3px 12px rgba(255, 183, 0, 0.7);
  }
}

/* Barriguinha fofa */
.pukito-belly {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 50px;
  background: 
    radial-gradient(
      ellipse,
      rgba(255, 255, 255, 0.3) 0%,
      rgba(255, 255, 255, 0.1) 50%,
      transparent 100%
    );
  border-radius: 50%;
  animation: bellyJiggle 2s ease-in-out infinite;
}

@keyframes bellyJiggle {
  0%, 100% {
    transform: translateX(-50%) scale(1);
  }
  50% {
    transform: translateX(-50%) scale(1.05, 0.95);
  }
}

/* ===================================================================
   PARTÍCULAS DE FELICIDADE - Corações e Estrelas
   =================================================================== */

.pukito-particle {
  position: absolute;
  width: 15px;
  height: 15px;
  opacity: 0;
  pointer-events: none;
  animation: particleFloat 3s ease-in-out infinite;
}

.pukito-particle--heart {
  left: 20%;
  bottom: 50%;
  animation-delay: 0s;
}

.pukito-particle--heart::before {
  content: '💖';
  font-size: 15px;
}

.pukito-particle--star {
  right: 20%;
  bottom: 60%;
  animation-delay: 1.5s;
}

.pukito-particle--star::before {
  content: '✨';
  font-size: 15px;
}

@keyframes particleFloat {
  0% {
    opacity: 0;
    transform: translateY(0) scale(0.5);
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(-80px) scale(1);
  }
}

/* ===================================================================
   ESTADOS EMOCIONAIS - Happy, Sad, Hungry, Sleepy
   =================================================================== */

/* Feliz (padrão) */
.pukito-character--happy .pukito-mouth {
  animation: mouthSmile 4s ease-in-out infinite;
}

.pukito-character--happy .pukito-particle {
  animation: particleFloat 3s ease-in-out infinite;
}

/* Triste */
.pukito-character--sad .pukito-mouth {
  border-radius: 30px 30px 0 0;
  bottom: 22px;
  animation: none;
}

.pukito-character--sad .pukito-eye {
  animation: none;
  transform: scaleY(0.7);
}

/* Faminto */
.pukito-character--hungry .pukito-mouth {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  animation: mouthHungry 1s ease-in-out infinite;
}

@keyframes mouthHungry {
  0%, 100% {
    transform: translateX(-50%) scale(1);
  }
  50% {
    transform: translateX(-50%) scale(1.2);
  }
}

/* Sonolento */
.pukito-character--sleepy .pukito-eye {
  animation: eyeSleep 3s ease-in-out infinite;
}

@keyframes eyeSleep {
  0%, 100% {
    transform: scaleY(0.3);
  }
  50% {
    transform: scaleY(0.1);
  }
}

.pukito-character--sleepy .pukito-head {
  animation: headNod 2s ease-in-out infinite;
  transform-origin: bottom center;
}

@keyframes headNod {
  0%, 100% {
    transform: translateX(-50%) rotate(0deg);
  }
  50% {
    transform: translateX(-50%) rotate(-5deg);
  }
}

/* ===================================================================
   RESPONSIVIDADE
   =================================================================== */

@media (max-width: 768px) {
  .pukito-character {
    width: 150px;
    height: 170px;
    margin: 60px auto 50px;
  }
  
  .pukito-body {
    width: 100px;
    height: 110px;
  }
  
  .pukito-head {
    width: 75px;
    height: 75px;
    top: -25px;
  }
  
  .pukito-arm {
    width: 35px;
    height: 45px;
  }
  
  .pukito-leg {
    width: 30px;
    height: 40px;
  }
}

@media (max-width: 480px) {
  .pukito-character {
    width: 120px;
    height: 140px;
    margin: 50px auto 40px;
  }
  
  .pukito-body {
    width: 80px;
    height: 90px;
  }
  
  .pukito-head {
    width: 60px;
    height: 60px;
    top: -20px;
  }
  
  .pukito-arm {
    width: 28px;
    height: 36px;
  }
  
  .pukito-leg {
    width: 24px;
    height: 32px;
  }
}
