/* Shared timing; no width/height animation for page content. */
:root{--rs-ease:cubic-bezier(.22,1,.36,1);--rs-motion-fast:160ms;--rs-motion-enter:280ms}
.rs-motion-managed{animation:none!important}
#router-view.rs-motion-rendering *{transition:none!important}
/* A moving bento owns its subtree until it settles; do not also tween its controls' layout. */
#router-view .rs-motion-owning *,#router-view .rs-motion-owning *::before,#router-view .rs-motion-owning *::after{animation:none!important;transition:none!important}
#router-view :is(button,a),.rs-popup button,dialog button{transition-timing-function:var(--rs-ease)!important}
#router-view .exp-card{animation:none!important}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}#router-view *,.rs-popup *{scroll-behavior:auto!important}}

#router-view tbody{animation:none!important}

.rs-route-pending{position:fixed;right:16px;bottom:16px;z-index:90;max-width:calc(100vw - 32px);box-sizing:border-box;padding:8px 12px;border:1px solid #e5dfd5;border-radius:16px;background:#faf8f5;color:#68615a;font:400 14px/1.4 Outfit,system-ui,sans-serif;pointer-events:none}

/* Do not flash a status message for a cached or fast read. */
#router-view .rs-route-loading{opacity:0;animation:rs-delayed-loading 120ms ease-out 220ms forwards!important}
@keyframes rs-delayed-loading{to{opacity:1}}
@media(prefers-reduced-motion:reduce){#router-view .rs-route-loading{animation:rs-delayed-loading 1ms linear 220ms forwards!important}}

/* Page continuity uses live bento transforms; snapshots belong only to popup exit. */
::view-transition{pointer-events:none}
@keyframes rs-route-out{from{opacity:1}to{opacity:0}}
@keyframes rs-route-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* Keep the header visually fixed while its live controls remain clickable. */
::view-transition-group(rs-navigation){animation:none}
::view-transition-old(rs-navigation){animation:none;opacity:0}
::view-transition-new(rs-navigation){animation:none;opacity:1;mix-blend-mode:normal}

.rs-popup-card.rs-motion-managed,dialog.rs-popup.rs-motion-managed{animation:none!important;transition:none!important}

/* Popup exit only: freeze the page snapshot, morph the popup back into its source. */
html[data-rs-popup-transition]::view-transition-group(root),html[data-rs-popup-transition]::view-transition-old(root),html[data-rs-popup-transition]::view-transition-new(root){animation:none!important}
html[data-rs-popup-transition]::view-transition-old(root){opacity:0!important}
html[data-rs-popup-transition]::view-transition-new(root){opacity:1!important;mix-blend-mode:normal}
::view-transition-group(rs-popup-anchor){animation-duration:320ms;animation-timing-function:cubic-bezier(.4,0,.2,1)}
::view-transition-old(rs-popup-anchor){animation:rs-route-out 130ms ease-out both;mix-blend-mode:normal}
::view-transition-new(rs-popup-anchor){animation:rs-route-in 220ms ease-out 70ms both;mix-blend-mode:normal}

/* Mobile navigation updates immediately; no page snapshots or capsule expansion. */
@media(max-width:1050px){
 .orbital-nav .orbital-node,.orbital-nav .orbital-node__panel,.orbital-nav .orbital-node__trigger,.orbital-nav .orbital-node__indicator,.orbital-nav .orbital-node__subtab{transition:none!important}
 .orbital-nav__viewport{scroll-behavior:auto!important}
}

/* Phone/tablet page navigation has no CSS entrance, pulse, or delayed reveal. */
@media(max-width:1050px){
 #app,#app *,#app *::before,#app *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 #router-view .rs-route-loading{opacity:1!important}
}

@media(max-width:1050px){
 #app{overflow-x:clip}
 .rs-mobile-route-shell{min-height:220px;padding:20px 8px}
 .rs-mobile-route-shell h1{font:600 24px Outfit,system-ui,sans-serif;margin:0 0 12px;color:#1c1917}
 .rs-mobile-route-shell p{font:400 15px Outfit,system-ui,sans-serif;color:#78716c;margin:0}
}
