/* Warm window-glass light above photography (1), below later poster type (2),
   products (3) and copy (5). Load after style.css; no animation owns a clock. */
.atmosphere{
  position:absolute;
  inset:0;
  z-index:2;
  overflow:hidden;
  contain:strict;
  pointer-events:none;
  opacity:var(--atmosphere-opacity,.44);
  mix-blend-mode:soft-light;
}
.atmosphere-canvas{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  visibility:hidden;
  pointer-events:none;
}
.atmosphere::before,.atmosphere::after{
  content:"";
  position:absolute;
  pointer-events:none;
  mask-image:linear-gradient(90deg,rgba(0,0,0,var(--atmosphere-left,.16)),#000 52%,rgba(0,0,0,var(--atmosphere-right,1)));
}
.atmosphere::before{
  inset:-14%;
  /* Long feathered ribbons, with an off-frame elliptical reflection edge. */
  background:
    radial-gradient(ellipse 125% 48% at 22% 112%,transparent 39%,#f3e9d62e 48%,#f3e9d669 52%,transparent 62%),
    linear-gradient(112deg,transparent 9%,#261f1d24 19%,transparent 31%,#f3e9d61a 39%,#f3e9d666 45%,#f3e9d621 52%,transparent 60%,#261f1d29 73%,transparent 89%),
    linear-gradient(73deg,transparent 18%,#f3e9d624 40%,#b1142d08 53%,transparent 75%);
  transform:translate3d(var(--atmosphere-x,0%),var(--atmosphere-y,-2.6%),0) rotate(var(--atmosphere-turn,-3deg));
  transform-origin:50% 50%;
}
.atmosphere::after{
  inset:0;
  /* Fixed 8px grain tile, no SVG filters, image requests or moving noise. */
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23f3e9d6' fill-opacity='.14' d='M0 0h1v1H0zM4 1h1v1H4zM2 4h1v1H2zM7 5h1v1H7zM4 7h1v1H4z'/%3E%3Cpath fill='%23261f1d' fill-opacity='.12' d='M2 1h1v1H2zM6 2h1v1H6zM0 5h1v1H0zM5 6h1v1H5zM2 7h1v1H2z'/%3E%3C/svg%3E");
}
.atmosphere[data-atmosphere-mode="webgl"] .atmosphere-canvas{visibility:visible}
.atmosphere[data-atmosphere-mode="webgl"]::before,
.atmosphere[data-atmosphere-mode="webgl"]::after{visibility:hidden}
.atmosphere[data-atmosphere-mobile="true"]::before,
.atmosphere[data-atmosphere-mobile="true"]::after{
  mask-image:linear-gradient(180deg,#0000001a 25%,#00000059 43%,#000 72%);
}
.atmosphere[data-atmosphere-mode="disposed"]{visibility:hidden}
@media (prefers-reduced-motion:reduce){
  .atmosphere,.atmosphere::before,.atmosphere::after{animation:none;transition:none}
}
