/* These planes share the photograph's camera; only the small subject patches change. */
.pc-plane {
  position:absolute; left:0; top:0; width:100%; height:100%; z-index:0;
  pointer-events:none; transform:scale(1); transform-origin:50% 50%;
  transition:transform 1.4s var(--ease);
}
.breakfast-scene .pc-plane { transform-origin:50% 100%; }
.life-scene:hover .scene-photo .pc-plane { transform:scale(1.025); }
.pc-patch {
  position:absolute; pointer-events:none; background-repeat:no-repeat;
  background-position:0 0; background-size:100% 100%;
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
}
.pc-patch--bunny {
  /* The compositor supplies only the moving arms and a fixed old-arm cleanup. */
  -webkit-mask-image:none; mask-image:none;
}
.pc-patch--bunny canvas { display:block; width:100%; height:100%; }
.pc-patch--dog {
  /* Occlusion lives inside the SVG, in exact original-photograph coordinates. */
  overflow:visible;
}
.pc-tail-stage { display:block; width:100%; height:100%; overflow:visible; }
.pc-foreground { position:absolute; pointer-events:none; }
.pc-foreground svg { display:block; width:100%; height:100%; }
.pc-hit {
  position:absolute; z-index:2; display:block; min-width:44px; min-height:44px;
  padding:0; border:0; border-radius:44%; background:none; box-shadow:none;
  appearance:none; -webkit-appearance:none; color:var(--cream);
  cursor:var(--sd-control-cursor,pointer); pointer-events:auto; touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.pc-hit:focus-visible { outline:2px dashed var(--cream); outline-offset:3px; }
.pc-zzzs { position:absolute; pointer-events:none; color:#fff4d8; }
.pc-zzzs svg { display:block; width:100%; height:100%; overflow:visible; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 1px 1px #14241766); }
.pc-z { opacity:0; }
@media (prefers-reduced-motion:reduce) {
  .pc-plane { transition:none!important; }
}
@media (forced-colors:active) {
  .pc-hit:focus-visible { outline:2px solid Highlight; outline-offset:3px; }
  .pc-zzzs { color:CanvasText; }
  .pc-zzzs svg { filter:none; }
}
