/* Small displacements, consistent deceleration, no scroll locking or persistent layers. */
.fm-pending{
  --fm-rise:16px;--fm-scale:1;--fm-x:0px;
  opacity:0;translate:var(--fm-x) var(--fm-rise);scale:var(--fm-scale);
}
.fm-pending[data-motion-kind=heading]{--fm-rise:20px}
.fm-pending[data-motion-kind=media]{--fm-rise:20px;--fm-scale:.984}
.fm-pending[data-motion-kind=tile]{--fm-rise:12px;--fm-scale:.97}
.fm-pending[data-motion-kind=detail]{--fm-rise:7px}
.fm-pending[data-motion-kind=window]{--fm-rise:24px;--fm-scale:.97}
.fm-pending[data-motion-kind=collage]{--fm-rise:22px;--fm-scale:.94}
.fm-word{display:inline-block}
.fm-pending[data-motion-kind=word]{--fm-rise:.48em}
.fm-pending[data-motion-kind=label]{--fm-rise:9px}
.fm-pending[data-motion-kind=badge]{--fm-rise:6px;--fm-scale:.94}
.fm-pending[data-motion-kind=symbol]{--fm-rise:5px;--fm-scale:.78}
.fm-pending[data-motion-kind=arrow]{--fm-rise:0px;--fm-x:-6px}
.fm-pending.about-photo-left{--fm-x:-14px}
.fm-pending.about-photo-right{--fm-x:14px}
.fm-pending.fm-enter{
  animation:fm-arrive var(--fm-duration,540ms) cubic-bezier(.22,1,.36,1) var(--fm-delay,0ms) both;
}
.fm-pending.fm-enter[data-motion-kind=symbol]{animation-name:fm-symbol-in}
@keyframes fm-symbol-in{
  0%{opacity:0;translate:0 5px;scale:.78;rotate:-7deg}
  72%{opacity:1;translate:0 -1px;scale:1.035;rotate:1deg}
  100%{opacity:1;translate:0 0;scale:1;rotate:0deg}
}
@keyframes fm-arrive{
  from{opacity:0;translate:var(--fm-x) var(--fm-rise);scale:var(--fm-scale)}
  to{opacity:1;translate:0 0;scale:1}
}
.contact-dialog[open]{animation:fm-dialog-in 260ms cubic-bezier(.22,1,.36,1) both}
.contact-dialog[open]::backdrop{animation:fm-backdrop-in 180ms ease-out both}
@keyframes fm-dialog-in{from{opacity:0;translate:0 10px;scale:.985}to{opacity:1;translate:0 0;scale:1}}
@keyframes fm-backdrop-in{from{opacity:0}to{opacity:1}}
/* Existing rotational and responsive transforms remain untouched by translate/scale. */
@media(max-width:1023px){
  .fm-pending{--fm-rise:12px}
  .fm-pending[data-motion-kind=heading]{--fm-rise:16px}
  .fm-pending[data-motion-kind=media]{--fm-rise:14px}
}
@media(prefers-reduced-motion:reduce){
  .fm-pending,.fm-pending.fm-enter{animation:none!important;opacity:1!important;translate:none!important;scale:none!important;rotate:none!important}
}
@media print{
  .fm-pending,.fm-pending.fm-enter{animation:none!important;opacity:1!important;translate:none!important;scale:none!important;rotate:none!important}
}
