/* Highlight bloom is composited over the sharp photograph, never over page copy.
   Customer-uploaded artwork and the colour-critical design studio are excluded. */
:root {
  --photo-saturation: 1.6;
  --photo-contrast: 1.06;
  --photo-exposure: 1.025;
}

:is(.product-image, .product-main-image, .material-reference-image, .world-cutout,
    .identity-panels, .menu-art-card) img,
.editorial-panel > img,
.cutout > img,
.world-backdrop {
  filter: saturate(var(--photo-saturation)) contrast(var(--photo-contrast))
    url("#otlas-photo-bloom") brightness(var(--photo-exposure));
}

/* The 3D deck keeps its existing contact shadow and gains the same soft light. */
.deck-hero .hero-scene canvas,
.collection-deck .hero-scene canvas {
  filter: saturate(var(--photo-saturation)) contrast(var(--photo-contrast))
    url("#otlas-photo-bloom") brightness(var(--photo-exposure))
    drop-shadow(16px 25px 18px #292a2522);
}

/* No animated blur or permanent compositing hints: scrolling stays lightweight. */
@media (max-width: 700px) {
  :is(.product-image, .product-main-image, .material-reference-image, .world-cutout,
      .identity-panels, .menu-art-card) img,
  .editorial-panel > img,
  .cutout > img,
  .world-backdrop {
    filter: saturate(var(--photo-saturation)) contrast(var(--photo-contrast))
      url("#otlas-photo-bloom-mobile") brightness(var(--photo-exposure));
  }
  .deck-hero .hero-scene canvas,
  .collection-deck .hero-scene canvas {
    filter: saturate(var(--photo-saturation)) contrast(var(--photo-contrast))
      brightness(var(--photo-exposure)) drop-shadow(12px 20px 14px #292a2522);
  }
}

.photo-bloom-definitions {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}
