@view-transition{navigation:auto}
/* UI stays anchored; the floor plan and its people travel as one scene. */
html{view-transition-name:none;overflow-x:clip}
body main{view-transition-name:flow-page}
.info-action-rail{view-transition-name:flow-rail}
::view-transition{pointer-events:none}
::view-transition-group(flow-page),::view-transition-group(flow-rail){animation:none}
::view-transition-old(flow-page),::view-transition-old(flow-rail){animation:flow-ui-out 220ms ease-out both;mix-blend-mode:normal}
::view-transition-new(flow-page),::view-transition-new(flow-rail){animation:flow-ui-in 340ms ease-out 100ms both;mix-blend-mode:normal}
::view-transition-group(flow-scene){animation-duration:920ms;animation-timing-function:cubic-bezier(.22,.72,.24,1);z-index:2}
::view-transition-image-pair(flow-scene){overflow:visible;isolation:isolate}
::view-transition-old(flow-scene),::view-transition-new(flow-scene){width:100%;height:100%;object-fit:contain;mix-blend-mode:normal;transform-origin:50% 60%;backface-visibility:hidden}
::view-transition-old(flow-scene){animation:flow-model-exit 920ms cubic-bezier(.22,.72,.24,1) both}
::view-transition-new(flow-scene){animation:flow-model-enter 920ms cubic-bezier(.22,.72,.24,1) both}
@keyframes flow-model-exit{0%{transform:translateX(0) scale(1);opacity:1}35%{transform:translateX(calc(-24% * var(--flow-direction,1))) scale(.96);opacity:.42}100%{transform:translateX(calc(-65% * var(--flow-direction,1))) scale(.88);opacity:0}}
@keyframes flow-model-enter{0%{transform:translateX(calc(70% * var(--flow-direction,1))) scale(.88);opacity:0}25%{transform:translateX(calc(48% * var(--flow-direction,1))) scale(.91);opacity:.08}100%{transform:translateX(0) scale(1);opacity:1}}
@keyframes flow-ui-out{from{opacity:1}to{opacity:0}}
@keyframes flow-ui-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
