/* AppStage is already positioned, isolated and clipped. Stay below ContentLayer.
   The host persists when no pose is mounted, so it can carry the same Home
   focus/zoom transition as the wallpaper. A newly mounted Home pose therefore
   arrives already riding the returning background motion instead of appearing
   pinned above it. */
#hgCatLayer {
  position: absolute;
  inset: 0;
  z-index: calc(var(--hg-z-background, 0) + 1);
  overflow: hidden;
  contain: layout paint;
  pointer-events: none !important;
  user-select: none;
  transform-origin: 50% 50%;
  transform: scale(var(--hg-background-scale));
  filter:
    blur(var(--hg-background-blur))
    brightness(var(--hg-background-brightness));
  transition:
    filter var(--hg-motion-room) var(--hg-ease-soft),
    transform var(--hg-motion-room) var(--hg-ease-soft),
    opacity var(--hg-motion-normal) var(--hg-ease-standard);
  opacity: .42;
}
#hgCatLayer * { pointer-events: none !important; }

/* Mirror the accepted Home wallpaper endpoint. The controller/pose do not know
   about these visual shell transforms; this is purely CatLayer/App Shell glue. */
.hg-app-stage[data-room="home"] #hgCatLayer {
  transform: scale(1.005);
  filter: brightness(1.01);
  opacity: .96;
}
