.safe-area {
  padding-left: max(1rem, env(safe-area-inset-left));
  padding-right: max(1rem, env(safe-area-inset-right));
}
.bg-body {
  background: linear-gradient(to bottom, #f9fafb 0%, #fff 100%);
  color: #111827;
}
.brand-dot {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: .5rem;
  background: linear-gradient(135deg, #3b82f6, #10b981);
}
.btn-icon { padding: .375rem .5rem; }
.icon { width: 1.1rem; height: 1.1rem; }
.sticky-sidebar {
  position: sticky;
  top: 6rem;
}
.image-card .card-badge {
  position: absolute;
  top: .5rem;
  left: .5rem;
  backdrop-filter: blur(6px);
}

.image-card .card-dl {
  position: absolute;
  right: .5rem;
  bottom: .5rem;
background: #0f6efd;
  --bs-btn-color: #000000;
}
.thumb {
  width: 200px;
  height: 200px;
  border-radius: .75rem;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
}
.thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
.thumb:hover .thumb-img { transform: scale(1.03); }
.copy-toast {
  position: fixed;
  left: 50%;
  bottom: 1.25rem;
  transform: translateX(-50%) translateY(10px);
  background: rgba(0,0,0,.82);
  color: #fff;
  font-size: .75rem;
  padding: .5rem .75rem;
  border-radius: .5rem;
  opacity: 0;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 1055;
}
.copy-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.card img.card-img-top {
  display: block;
  width: 100%;
  height: auto;
}

.card {
  border-radius: 1rem;
}