/* Global reset and layout helpers */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  max-width: 100%;
  overflow-x: hidden; /* prevent horizontal scroll on small screens */
}

img,
video,
canvas,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}

body {
  background-color: #f8fafc; /* matches bg-slate-50 */
  color: #0f172a; /* matches text-slate-900 base */
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
}

.shimmer {
  position: relative;
  overflow: hidden;
  background: #e2e8f0; /* slate-200 */
}

.shimmer::after {
  content: '';
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    rgba(226, 232, 240, 0) 0%,
    rgba(248, 250, 252, 0.75) 45%,
    rgba(226, 232, 240, 0) 100%
  );
  animation: shimmer 1.35s infinite;
}

@keyframes shimmer {
  100% {
    transform: translateX(100%);
  }
}
