*{box-sizing:border-box;margin:0;padding:0}
html{height:100%;height:100dvh;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:system-ui,-apple-system,sans-serif;background:#1a1226;display:flex;align-items:center;justify-content:center;height:100%;height:100dvh;overflow:hidden}
#app{width:100%;max-width:390px;height:100dvh;position:absolute;top:0;left:50%;transform:translateX(-50%);overflow:hidden;border-radius:0;background:#1a1226;-webkit-tap-highlight-color:transparent}
@media(min-width:430px){#app{height:auto;top:50%;transform:translate(-50%,-50%);aspect-ratio:9/19.5;max-height:96dvh;border-radius:20px;box-shadow:0 0 40px rgba(0,0,0,0.5)}}
#room{width:100%;height:100%;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}
#top-bar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:10px 14px 6px;padding-top:calc(10px + env(safe-area-inset-top, 0px));background:linear-gradient(to bottom,rgba(212,232,240,0.95),rgba(212,232,240,0))}
#action-row{position:absolute;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;gap:6px;padding:6px 8px 8px;padding-bottom:calc(8px + env(safe-area-inset-bottom, 0px));background:linear-gradient(to top,rgba(245,232,232,0.95) 60%,rgba(245,232,232,0))}
.act-btn{flex:1;max-width:72px;height:52px;border-radius:12px;border:none;background:rgba(255,255,255,0.92);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:background 0.15s,transform 0.1s;box-shadow:0 2px 8px rgba(0,0,0,0.12)}
.act-btn:hover{background:#fff}
.act-btn:active{transform:scale(0.92)}
.act-btn .ico{font-size:16px;line-height:1}
.act-btn .lbl{font-size:9px;color:#666;white-space:nowrap}
.act-btn.hi{background:rgba(127,119,221,0.2);box-shadow:0 2px 8px rgba(127,119,221,0.25)}
.drawer{position:absolute;bottom:calc(66px + env(safe-area-inset-bottom, 0px));left:0;right:0;z-index:20;background:rgba(255,255,255,0.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:16px 16px 0 0;transform:translateY(calc(100% + 66px + env(safe-area-inset-bottom, 0px)));transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);padding:0 16px;max-height:calc(100% - 66px - env(safe-area-inset-bottom, 0px));overflow-y:auto;-webkit-overflow-scrolling:touch}
.drawer.open{transform:translateY(0)}
body.loading .drawer{transform:translateY(calc(100% + 66px + env(safe-area-inset-bottom, 0px))) !important;transition:none !important}
.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:14px 0 10px;padding-top:calc(14px + env(safe-area-inset-top, 0px));position:sticky;top:0;background:rgba(255,255,255,0.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1}
.drawer-header span{font-size:14px;font-weight:600;color:#333}
.drawer-header button{border:none;background:none;cursor:pointer;font-size:18px;color:#888;padding:4px}
.drawer-pad{padding-bottom:16px}
.stat-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.stat-label{font-size:12px;color:#888;width:56px;flex-shrink:0}
.bar-bg{flex:1;height:7px;background:#f0f0f0;border-radius:4px;overflow:hidden}
.bar-fill{height:100%;border-radius:4px;transition:width 0.4s}
.stat-val{font-size:12px;color:#888;width:26px;text-align:right}
.xp-bar-bg{width:100%;height:5px;background:rgba(255,255,255,0.3);border-radius:3px;overflow:hidden;margin-top:3px}
.xp-bar-fill{height:100%;border-radius:3px;background:#7F77DD;transition:width 0.4s}
.section-title{font-size:12px;font-weight:500;color:#333;margin:12px 0 8px}
.lang-row{display:flex;gap:8px}
.g-btn{flex:1;padding:6px;border-radius:20px;border:0.5px solid #ccc;background:transparent;font-size:12px;color:#888;cursor:pointer;transition:all 0.2s}
.settings-menu-btn{display:block;width:100%;padding:10px 14px;margin-bottom:4px;border:1px solid #e8e0e8;border-radius:10px;background:#fff;font-size:13px;color:#555;text-align:left;cursor:pointer;transition:all 0.2s}
.settings-menu-btn:hover{background:#f8f0ff;border-color:#d0c0d8}
.settings-back-btn{display:inline-block;padding:6px 12px;margin-bottom:10px;border:none;background:transparent;font-size:12px;color:#7F77DD;cursor:pointer;font-weight:600}
.settings-back-btn:hover{color:#5a50bb}
@keyframes levelUpBounce{
  0%{transform:scale(0.3) translateY(30px);opacity:0}
  8%{transform:scale(1.3) translateY(-10px);opacity:1}
  15%{transform:scale(0.95) translateY(0);opacity:1}
  22%{transform:scale(1.1) translateY(-5px);opacity:1}
  30%{transform:scale(1.0) translateY(0);opacity:1}
  85%{transform:scale(1.0) translateY(0);opacity:1}
  100%{transform:scale(1.0) translateY(-20px);opacity:0}
}
@keyframes levelUpStars{
  0%,100%{text-shadow:0 0 12px rgba(255,180,0,0.6),0 2px 4px rgba(0,0,0,0.3)}
  50%{text-shadow:0 0 24px rgba(255,220,0,0.9),0 0 40px rgba(255,180,0,0.4),0 2px 4px rgba(0,0,0,0.3)}
}
.levelup-playing{animation:levelUpBounce 5s ease-out forwards}
.levelup-glow{animation:levelUpStars 0.4s ease-in-out infinite}
.progress-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f0e8f0}
.progress-row.current{background:#f8f0ff;border-radius:8px;padding:6px 8px}
.progress-row.completed{opacity:0.6}
.progress-lvl{font-size:11px;font-weight:600;color:#7F77DD;min-width:36px}
.progress-name{font-size:12px;color:#555;flex:1}
.progress-bar-bg{width:60px;height:6px;background:#e8e0e8;border-radius:3px;overflow:hidden}
.progress-bar-fill{height:100%;border-radius:3px;background:#7F77DD;transition:width 0.4s}
.progress-status{font-size:10px;color:#aaa;min-width:24px;text-align:right}
.g-btn.active{background:#7F77DD;border-color:#7F77DD;color:#fff;font-weight:500}
.notify{position:absolute;top:44px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,0.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:0.5px solid #ddd;border-radius:8px;padding:7px 14px;font-size:13px;color:#333;z-index:30;opacity:0;transition:opacity 0.3s;pointer-events:none}
.notify.show{opacity:1}


/* ===== Original base/polish CSS extracted from index-reskin.html ===== */

/* ============ POLISH LAYER ============ */
body { background: radial-gradient(ellipse at 30% 20%, #FFE8EC 0%, #F5E8E8 45%, #F0DEDE 100%); }
#app { box-shadow: 0 2px 12px rgba(140,80,100,0.12), 0 20px 60px rgba(80,40,60,0.18); }
#top-bar {
  padding: 8px 10px 6px !important;
  padding-top: calc(8px + env(safe-area-inset-top, 0px)) !important;
  background: linear-gradient(to bottom, rgba(255,250,252,0.95), rgba(255,240,245,0.7) 70%, rgba(245,232,232,0)) !important;
}
#pet-name-label {
  font-size: 13px !important;
  background: linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.72) 100%);
  padding: 5px 10px;
  border-radius: 999px;
  box-shadow: 0 1px 4px rgba(140,80,100,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
  letter-spacing: 0.2px;
}
#pet-name-label::before { content: "🐾 "; font-size: 10px; }
#top-bar > div:nth-child(2) {
  background: linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.7) 100%);
  padding: 5px 10px;
  border-radius: 999px;
  box-shadow: 0 1px 4px rgba(140,80,100,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
.xp-bar-bg { background: rgba(0,0,0,0.08) !important; box-shadow: inset 0 1px 2px rgba(0,0,0,0.12); height: 7px !important; border-radius: 4px !important; }
.xp-bar-fill {
  background: linear-gradient(90deg, #FFB6C1 0%, #B19CE8 50%, #7F77DD 100%) !important;
  box-shadow: 0 0 8px rgba(127,119,221,0.5), inset 0 1px 0 rgba(255,255,255,0.5);
  position: relative; overflow: hidden; border-radius: 4px !important;
}
.xp-bar-fill::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.7), transparent);
  transform: translateX(-100%); animation: xpShimmer 2.6s ease-in-out infinite;
}
@keyframes xpShimmer { 0%,40% { transform: translateX(-100%); } 70%,100% { transform: translateX(250%); } }
#settings-cog-btn { transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
#settings-cog-btn:hover { transform: rotate(90deg) scale(1.1); }
#settings-cog-btn:active { transform: rotate(180deg) scale(0.9); }
#stats-bar {
  padding: 6px 12px 10px !important;
  gap: 8px !important;
  background: linear-gradient(to top, rgba(250,240,243,0.95) 60%, rgba(245,232,232,0)) !important;
}
#stats-bar > div {
  background: rgba(255,255,255,0.7);
  padding: 4px 8px !important;
  border-radius: 999px;
  box-shadow: 0 1px 3px rgba(140,80,100,0.1), inset 0 1px 0 rgba(255,255,255,0.8);
  gap: 5px !important;
}
#stats-bar > div > div {
  height: 6px !important;
  background: rgba(0,0,0,0.08) !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.12);
}
#sbar-hunger { background: linear-gradient(90deg, #FFC870, #EF9F27) !important; box-shadow: 0 0 6px rgba(239,159,39,0.4); }
#sbar-clean  { background: linear-gradient(90deg, #7EB8F0, #378ADD) !important; box-shadow: 0 0 6px rgba(55,138,221,0.4); }
#sbar-happy  { background: linear-gradient(90deg, #FF8080, #FF4444) !important; box-shadow: 0 0 6px rgba(255,68,68,0.4); }
.stat-pulse { animation: statPulse 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes statPulse { 0%,100% { transform: scale(1); } 40% { transform: scale(1.35, 0.75); } 70% { transform: scale(0.92, 1.08); } }
#action-row {
  padding: 8px 10px 10px !important;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  gap: 7px !important;
  background: linear-gradient(to top, rgba(250,235,238,0.98) 50%, rgba(245,232,232,0)) !important;
}
.act-btn {
  height: 76px !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, #fff 0%, #FFF0F3 100%) !important;
  box-shadow: 0 3px 0 rgba(200,140,160,0.3), 0 4px 10px rgba(160,90,110,0.15), inset 0 1px 0 rgba(255,255,255,0.9) !important;
  transition: transform 0.08s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.1s !important;
  position: relative;
  overflow: visible !important;
}
.act-btn::before {
  content: ''; position: absolute; inset: 2px 2px 50% 2px;
  border-radius: 16px 16px 8px 8px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7), rgba(255,255,255,0));
  pointer-events: none;
}
.act-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 0 rgba(200,140,160,0.3), 0 7px 14px rgba(160,90,110,0.2) !important; }
.act-btn:active { transform: translateY(3px) scale(0.96) !important; box-shadow: 0 0 0 rgba(200,140,160,0.3), 0 1px 3px rgba(160,90,110,0.2) !important; }
.act-btn .ico { font-size: 19px !important; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.12)); }
.act-btn .lbl { font-size: 10px !important; color: #8A5A6E !important; font-weight: 600; letter-spacing: 0.2px; }
.act-btn.hi {
  background: linear-gradient(180deg, #EDE6FF 0%, #DCD0FA 100%) !important;
  box-shadow: 0 3px 0 rgba(127,119,221,0.45), 0 4px 12px rgba(127,119,221,0.35), inset 0 1px 0 rgba(255,255,255,0.9) !important;
}
#rank-btn .ico { animation: trophyWiggle 4s ease-in-out infinite; transform-origin: center bottom; }
@keyframes trophyWiggle { 0%,70%,100% { transform: rotate(0); } 78% { transform: rotate(-12deg); } 85% { transform: rotate(10deg); } 92% { transform: rotate(-5deg); } }
.drawer {
  border-radius: 22px 22px 0 0 !important;
  background: rgba(255,252,253,0.98) !important;
  box-shadow: 0 -4px 24px rgba(140,80,100,0.15) !important;
}
.drawer-header { padding: 16px 0 12px !important; }
.drawer-header span {
  font-size: 15px !important;
  font-weight: 700 !important;
  background: linear-gradient(135deg, #7F77DD 0%, #E88AA0 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0.3px;
}
.drawer-header button {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  line-height: 1; padding: 0;
  border-radius: 50% !important;
  background: #F5ECF0 !important;
  color: #A07888 !important;
  font-size: 14px !important;
  transition: transform 0.15s, background 0.15s !important;
}
.drawer-header button:hover { background: #EEDDE5 !important; transform: rotate(90deg); }
.settings-menu-btn {
  border-radius: 14px !important;
  border: 1px solid #F0E0E8 !important;
  padding: 12px 14px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #6A4A58 !important;
  background: linear-gradient(135deg, #fff 0%, #FFF8FA 100%) !important;
  box-shadow: 0 1px 2px rgba(140,80,100,0.06);
  transition: transform 0.12s, box-shadow 0.15s, border-color 0.15s !important;
}
.settings-menu-btn:hover {
  background: linear-gradient(135deg, #FFF5FA 0%, #FFECF3 100%) !important;
  border-color: #E8C8D8 !important;
  transform: translateX(3px);
  box-shadow: 0 2px 6px rgba(200,140,160,0.15);
}
.settings-menu-btn:active { transform: translateX(3px) scale(0.98); }
.g-btn { border-radius: 999px !important; font-weight: 500 !important; transition: all 0.2s !important; }
.g-btn.active {
  background: linear-gradient(135deg, #7F77DD 0%, #A088E5 100%) !important;
  box-shadow: 0 2px 6px rgba(127,119,221,0.35), inset 0 1px 0 rgba(255,255,255,0.3);
}
.notify {
  border-radius: 999px !important;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(255,248,250,0.98)) !important;
  box-shadow: 0 4px 16px rgba(140,80,100,0.2), 0 0 0 1px rgba(232,200,216,0.4) !important;
  padding: 8px 16px !important;
  font-weight: 500 !important;
  color: #6A4A58 !important;
  border: none !important;
  top: 48px !important;
}
.notify.show { animation: notifyIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes notifyIn { 0% { transform: translateX(-50%) translateY(-20px) scale(0.8); opacity: 0; } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 1; } }
#speech-bubble {
  border-radius: 22px !important;
  background: linear-gradient(135deg, #fff, #FFF5F8) !important;
  box-shadow: 0 3px 14px rgba(140,80,100,0.18), 0 0 0 1px rgba(240,220,228,0.6) !important;
  border: none !important;
  font-weight: 600 !important;
  color: #6A4A58 !important;
  animation: speechBob 2.4s ease-in-out infinite;
}
@keyframes speechBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
#levelup-text {
  font-size: 32px !important;
  background: linear-gradient(135deg, #FFD700 0%, #FF9A5A 50%, #FF6FA0 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none !important;
  filter: drop-shadow(0 0 20px rgba(255,180,100,0.6)) drop-shadow(0 2px 6px rgba(255,100,140,0.4));
}
#unlock-popup {
  border-radius: 22px !important;
  background: linear-gradient(135deg, #fff 0%, #FFF2F7 100%) !important;
  box-shadow: 0 8px 32px rgba(140,80,120,0.25), 0 0 0 1px rgba(232,200,216,0.4) !important;
  padding: 24px 32px !important;
  animation: unlockPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes unlockPop { 0% { transform: translate(-50%,-50%) scale(0.5) rotate(-8deg); opacity: 0; } 60% { transform: translate(-50%,-50%) scale(1.08) rotate(2deg); opacity: 1; } 100% { transform: translate(-50%,-50%) scale(1) rotate(0); opacity: 1; } }
#confetti-canvas { position: absolute; inset: 0; pointer-events: none; z-index: 50; }
.tap-ripple { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(255,182,193,0.7), rgba(255,182,193,0)); pointer-events: none; animation: rippleOut 0.6s ease-out forwards; z-index: 40; }
@keyframes rippleOut { 0% { transform: translate(-50%,-50%) scale(0); opacity: 0.9; } 100% { transform: translate(-50%,-50%) scale(3); opacity: 0; } }
.sparkle { position: absolute; pointer-events: none; font-size: 16px; animation: sparkleFloat 1.1s ease-out forwards; z-index: 41; }
@keyframes sparkleFloat { 0% { transform: translate(-50%,-50%) scale(0.4) rotate(0); opacity: 0; } 20% { opacity: 1; } 100% { transform: translate(-50%, calc(-50% - 60px)) scale(1.1) rotate(180deg); opacity: 0; } }
.section-title { font-size: 12px !important; font-weight: 700 !important; color: #7A5A6A !important; letter-spacing: 0.4px; text-transform: uppercase; }


/* v1.37.2.4: universal tap feedback + level progress link */
button,
.g-btn,
.act-btn,
.settings-menu-btn,
.settings-back-btn,
.wardrobe-card,
.weapon-card,
[role="button"],
.tap-feedback {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
button:not(:disabled),
.g-btn:not(:disabled),
.act-btn:not(:disabled),
.settings-menu-btn:not(:disabled),
.settings-back-btn:not(:disabled),
.wardrobe-card,
.weapon-card,
[role="button"]:not([aria-disabled="true"]),
.tap-feedback:not(:disabled) {
  cursor: pointer;
  transition: transform 0.08s ease, opacity 0.08s ease, filter 0.08s ease, background-color 0.12s ease, box-shadow 0.12s ease;
}
button:not(:disabled):active,
.g-btn:not(:disabled):active,
.act-btn:not(:disabled):active,
.settings-menu-btn:not(:disabled):active,
.settings-back-btn:not(:disabled):active,
.wardrobe-card:active,
.weapon-card:active,
[role="button"]:not([aria-disabled="true"]):active,
.tap-feedback:not(:disabled):active {
  transform: translateY(1px) scale(0.97);
  opacity: 0.84;
  filter: brightness(0.96);
}
button:disabled,
.g-btn:disabled,
.act-btn:disabled,
[aria-disabled="true"],
.disabled {
  cursor: not-allowed !important;
  transform: none !important;
  filter: none !important;
}
.reskin-name-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}
.level-progress-link {
  margin-left: 12px;
  border: 0;
  background: transparent;
  color: #7F77DD;
  font-size: 11px;
  line-height: 1.1;
  font-weight: 850;
  padding: 2px 6px;
  border-radius: 999px;
}
.level-progress-link:active {
  background: rgba(127,119,221,0.12);
}

.level-progress-inline-link {
  border: 0 !important;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1.2px;
  -webkit-tap-highlight-color: transparent;
}
.level-progress-inline-link:active {
  background: #ffd6e3 !important;
}
.leaderboard-extra-card {
  border: 1px solid #F0D8B8;
  background: #FFF8F0;
  border-radius: 14px;
  padding: 9px 10px;
  margin: 0 0 10px;
  display: grid;
  gap: 8px;
}
.leaderboard-selector-row {
  display: grid;
  grid-template-columns: 68px 1fr;
  align-items: center;
  gap: 8px;
}
.leaderboard-selector-label {
  color: #8A6A4A;
  font-size: 12px;
  font-weight: 850;
}
.leaderboard-select {
  width: 100%;
  border: 1px solid #E7D4BD;
  background: #fff;
  color: #6F5540;
  border-radius: 999px;
  padding: 7px 28px 7px 10px;
  font-size: 12px;
  font-weight: 400;
  outline: none;
}
@media (max-width: 360px) {
  .leaderboard-selector-row { grid-template-columns: 1fr; gap: 5px; }
}
