*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;
  background: var(--tg-theme-bg-color, #ffffff);
  color: var(--tg-theme-text-color, #000000);
  -webkit-font-smoothing: antialiased;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.skeleton {
  background: var(--tg-theme-secondary-bg-color, #e0e0e0);
  border-radius: 8px;
  animation: shimmer 1.5s infinite;
  background-size: 200% 100%;
  background-image: linear-gradient(
    90deg,
    var(--tg-theme-secondary-bg-color, #e0e0e0) 25%,
    var(--tg-theme-bg-color, #f5f5f5) 50%,
    var(--tg-theme-secondary-bg-color, #e0e0e0) 75%
  );
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
