/* Smooth Zoom Animation Optimizations */

.leaflet-container {
  transform-style: preserve-3d;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.leaflet-zoom-animated {
  will-change: transform;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

.leaflet-tile-container {
  will-change: transform;
}

.leaflet-interactive,
.leaflet-marker-icon,
.leaflet-image-layer {
  transition: opacity 0.35s ease, stroke-opacity 0.35s ease, fill-opacity 0.35s ease, stroke 0.35s ease, fill 0.35s ease, stroke-width 0.35s ease, filter 0.35s ease, transform 0.25s ease-out;
  will-change: transform, opacity;
}

/* Improve rendering performance */
.leaflet-tile {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  transform: translateZ(0);
}

/* Smooth panning */
.leaflet-container .leaflet-control-container {
  will-change: transform;
}

/* Reduce repaints during animation */
.leaflet-marker-pane,
.leaflet-tile-pane,
.leaflet-overlay-pane,
.leaflet-shadow-pane {
  will-change: transform;
}