/* Keep the published Map composition; refine only motion and redundant chrome. */
.app-shell{grid-template-rows:auto auto 1fr}
.progress{grid-template-columns:minmax(0,1fr) 48px}
.screen{min-height:calc(100svh - 106px);animation:enter 320ms cubic-bezier(.16,1,.3,1) both}
.screen.is-leaving{animation:reading-leave 130ms cubic-bezier(.4,0,1,1) both;pointer-events:none}
@keyframes reading-leave{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}
.preview-bar-foot{justify-content:flex-end}
.preview-bar-foot>strong{font-weight:500;font-variant-numeric:tabular-nums}
.pattern-line{animation:none!important}
.pattern-origin{transform-box:fill-box;transform-origin:center}
.pattern-cursor{opacity:0;transform-box:view-box;transform-origin:0 0;pointer-events:none}
.system-reading .relationship-row{animation:none!important}
@media(max-width:760px){
 .progress{grid-template-columns:minmax(0,1fr) 42px}
 .screen{min-height:calc(100svh - 108px)}
}
@media(prefers-reduced-motion:reduce){
 html:not([data-map-motion="full"]) .app-shell .screen{animation-duration:320ms!important;animation-iteration-count:1!important}
 html:not([data-map-motion="full"]) .app-shell .screen.is-leaving{animation-duration:130ms!important}
}
