.weather-chip {
  gap: 6px;
  background: rgba(255, 255, 255, .82);
}
.weather-chip.is-rainy {
  background: rgba(218, 235, 248, .92);
  border-color: #9cbdd2;
  color: #31556d;
}
.pet-layer {
  position: absolute;
  inset: 145px 0 10px;
  z-index: 7;
  pointer-events: none;
  overflow: hidden;
}
.pet-sprite {
  position: absolute;
  width: 74px;
  height: 68px;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
  transition: left 3.8s ease-in-out, top 3.8s ease-in-out, transform .25s ease;
  filter: drop-shadow(0 5px 4px rgba(44, 58, 34, .18));
}
.pet-sprite:hover { transform: scale(1.08); }
.pet-sprite svg { width: 100%; height: 100%; overflow: visible; }
.pet-name-tag {
  position: absolute;
  left: 50%;
  top: 58px;
  transform: translateX(-50%);
  white-space: nowrap;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: #4b493f;
  font-size: .68rem;
  box-shadow: 0 2px 7px rgba(0,0,0,.08);
}
.pet-accessory { font-size: 17px; position: absolute; left: 48%; top: 4px; z-index: 2; }
.pet-heart {
  position: absolute;
  left: 50%;
  top: -3px;
  opacity: 0;
  font-size: 20px;
  transform: translateX(-50%);
}
.pet-sprite.is-reacting .pet-heart { animation: petHeart 1.1s ease-out; }
.pet-sprite.react-tail_chase { animation: petSpin .8s ease-in-out; }
.pet-sprite.react-belly { animation: petBelly 1.1s ease; }
.pet-sprite.react-patrol { animation: petPatrol 1.2s ease-in-out; }
.pet-sprite.react-stretch { animation: petStretch 1s ease; transform-origin: bottom; }
.pet-sprite.react-roll { animation: petRoll 1s ease-in-out; }
.pet-sprite.react-paw { animation: petPaw .85s ease-in-out; }
.pet-sprite.react-happy_jump { animation: petJump .9s ease-in-out; }
.pet-sprite.react-groom { animation: petGroom 1.2s ease; }
.pet-sprite.react-sparkle { animation: petSparkle 1.1s ease; }
@keyframes petHeart { 0% { opacity:0; transform:translate(-50%,8px) scale(.6); } 35% {opacity:1;} 100% {opacity:0; transform:translate(-50%,-35px) scale(1.25);} }
@keyframes petSpin { to { transform: rotate(360deg); } }
@keyframes petBelly { 45% { transform: rotate(8deg) scaleY(.55); } 70% { transform: rotate(-8deg) scaleY(.7); } }
@keyframes petPatrol { 30% { transform: translateX(70px) scaleX(.9); } 65% { transform: translateX(-55px) scaleX(-1); } }
@keyframes petStretch { 50% { transform: scaleX(1.3) scaleY(.72); } }
@keyframes petRoll { to { transform: rotate(-360deg); } }
@keyframes petPaw { 50% { transform: translateY(-10px) rotate(-9deg); } }
@keyframes petJump { 35%,75% { transform: translateY(-24px); } 55% { transform: translateY(0); } }
@keyframes petGroom { 30%,70% { transform: rotate(7deg) scale(.95); } 50% { transform: rotate(-7deg) scale(.95); } }
@keyframes petSparkle { 35% { filter: drop-shadow(0 0 12px #f0c8ff); transform: scale(1.18); } }

.rain-layer, .cloud-layer {
  position: absolute;
  inset: 0;
  z-index: 5;
  overflow: hidden;
  pointer-events: none;
}
.rain-drop {
  position: absolute;
  top: -24px;
  width: 2px;
  height: 18px;
  border-radius: 2px;
  background: linear-gradient(transparent, rgba(190,225,248,.78));
  animation: gardenRain 1.05s linear infinite;
}
@keyframes gardenRain { to { transform: translate(-42px, 520px); } }

.pet-modal-card { max-width: 760px; }
.pet-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.pet-tab {
  border:1px solid #cfbfaf; background:#fffaf2; color:#55483d;
  border-radius:999px; padding:8px 14px; cursor:pointer;
}
.pet-tab.is-active { background:#6f8c5d; border-color:#6f8c5d; color:#fff; }
.pet-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.pet-card {
  display:grid; grid-template-columns:68px 1fr; gap:12px; align-items:center;
  border:1px solid #ded2c5; background:#fffdfa; border-radius:16px; padding:13px;
}
.pet-card.is-equipped { border-color:#7f9b6a; box-shadow:0 0 0 2px rgba(127,155,106,.14); }
.pet-avatar {
  width:64px; height:64px; border-radius:50%; display:grid; place-items:center;
  font-size:34px; background:var(--pet-bg,#eee2d1);
}
.pet-card h4 { margin:0 0 3px; color:#453c34; }
.pet-card p { margin:0; font-size:.82rem; color:#74685d; line-height:1.45; }
.pet-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; font-size:.76rem; }
.pet-meta span { background:#f3eee7; border-radius:999px; padding:3px 7px; }
.pet-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.pet-mini-btn {
  border:1px solid #8ca077; color:#516944; background:#fff; border-radius:8px;
  padding:6px 9px; font-size:.78rem; cursor:pointer;
}
.pet-mini-btn.primary { background:#6f8c5d; color:#fff; border-color:#6f8c5d; }
.pet-mini-btn:disabled { opacity:.5; cursor:default; }
.pet-select { max-width:150px; border:1px solid #cfc3b7; border-radius:8px; padding:6px; font-size:.78rem; }
.rarity-seasonal { color:#79549c; }
.leader-card { border:1px solid #dfd5ca; border-radius:14px; overflow:hidden; }
.leader-me { background:#f3f8ed; padding:12px 14px; color:#48603e; margin-bottom:12px; border-radius:12px; }
.leader-row {
  display:grid; grid-template-columns:50px 1fr auto; gap:10px; padding:10px 14px;
  border-bottom:1px solid #eee7df; align-items:center;
}
.leader-row:last-child { border-bottom:0; }
.leader-rank { font-weight:700; color:#796b5e; }
.leader-score { font-variant-numeric:tabular-nums; font-weight:700; color:#506b43; }
.empty-pets { grid-column:1/-1; padding:28px; text-align:center; color:#786d62; }

@media (max-width: 700px) {
  .pet-grid { grid-template-columns:1fr; }
  .pet-layer { inset:150px 0 6px; }
  .pet-sprite { width:64px; height:60px; }
  .pet-name-tag { top:51px; }
}
@media (prefers-reduced-motion: reduce) {
  .pet-sprite, .rain-drop { animation:none !important; transition:none !important; }
}

