/* TV "ambient" slideshow on the Recap page — see static/js/ambient.js.
   Full-screen photos with no chrome. Only opacity and transform ever animate,
   so the whole thing stays on the GPU compositor (smooth on TV hardware). */
.ambient{
  position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;
  display:none;overflow:hidden;background:#000;cursor:none;
}
.ambient.on{display:block}
.ambient.show-cursor{cursor:default}

.amb-slide{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;opacity:0;will-change:opacity}

/* soft, rich blur of the photo behind photos shown whole (portrait / 4:3).
   Blurred once in JS at quarter size, so it costs nothing per frame. */
.amb-fill{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;display:none}
.is-contain .amb-fill{display:block}

.amb-photo{
  position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;
  object-fit:cover;will-change:transform;
}
/* shown whole: sized in JS, centred here, lifted off the blur with a soft shadow */
.is-contain .amb-photo{top:0;right:0;bottom:0;left:0;margin:auto;box-shadow:0 0 90px rgba(0,0,0,.55)}

/* pause glyph (OK on the remote) */
.amb-pause{position:absolute;right:4vw;bottom:6vh;z-index:4;display:flex;opacity:0;transition:opacity .4s ease;pointer-events:none}
.amb-pause.show{opacity:1}
.amb-pause i{
  display:block;width:.6vw;height:2.4vw;margin-left:.6vw;border-radius:.2vw;
  background:rgba(255,255,255,.9);box-shadow:0 0 1.2vw rgba(0,0,0,.55);
}
