html { scrollbar-gutter: stable; }
/* Fallback for browsers without scrollbar-gutter support */
@supports not (scrollbar-gutter: stable) {
  html { overflow-y: scroll; }
}
body { box-sizing: border-box; min-height: 100vh; }
.camera-preview {
  background: linear-gradient(45deg, #f0f0f0 25%, transparent 25%),
              linear-gradient(-45deg, #f0f0f0 25%, transparent 25%),
              linear-gradient(45deg, transparent 75%, #f0f0f0 75%),
              linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);
  background-size: 20px 20px;
  background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
}
.fade-in { animation: fadeIn 0.5s ease-in; }
@keyframes fadeIn { from {opacity: 0; transform: translateY(20px);} to {opacity:1; transform:translateY(0);} }
.slide-in { animation: slideIn 0.3s ease-out; }
@keyframes slideIn { from { transform: translateX(-100%);} to { transform: translateX(0);} }
/* Utility overrides for mobile */
@media (max-width: 640px) {
  .mobile-hidden { display: none; }
}