.desk { transition:transform 520ms cubic-bezier(.2,.75,.22,1); }
.desk.camera-focused {
  transform-origin:var(--camera-origin-x) var(--camera-origin-y);
  transform:translate(var(--camera-shift-x),var(--camera-shift-y)) scale(var(--camera-scale,1.3));
}
.physical-dialog[open] { animation:none; }
.physical-dialog[open]::backdrop { animation:camera-backdrop-in 520ms ease-out both; }
.physical-dialog.physical-closing::backdrop { animation:camera-backdrop-out 300ms ease-in both; }
@keyframes camera-backdrop-in {
  from { background:transparent; backdrop-filter:blur(0); }
  to { background:#20251e66; backdrop-filter:blur(1.5px); }
}
@keyframes camera-backdrop-out {
  from { background:#20251e66; backdrop-filter:blur(1.5px); }
  to { background:transparent; backdrop-filter:blur(0); }
}
.physical-dialog > .dialog-inner { perspective:1400px; }
.physical-dialog section[id$="-room"] { transform-origin:50% 50%; }
.physical-closing { pointer-events:none; }
.physical-pressed { translate:0 1.5px; scale:.97; filter:brightness(.87); }
@media(prefers-reduced-motion:reduce) {
 .desk { transition:none; }
 .physical-dialog[open]::backdrop,.physical-dialog.physical-closing::backdrop { animation:none; }
 .physical-pressed { translate:none; scale:none; }
}
