/* SIORA V4.2 — handoff-only calibration. Existing visual design and durations retained. */
.app{--v4-ease:cubic-bezier(.22,.72,.22,1)}
.app .hero,.app .nebula,.app .foreground-spatial-v690,.app .guardian-takeover-rings,.app .guardian-rings-front{transition:transform .30s var(--v4-ease),opacity .30s var(--v4-ease)}
.app .pod{transition:opacity .14s ease,transform .16s var(--v4-ease)}
.app .pod.v4-selected{opacity:1}.app .pod.v4-muted{opacity:.68}
.app.v41-transition-budget .hero,.app.v41-transition-budget .workspace{will-change:transform,opacity}
.app[data-siora-transition="core_ack"] .front-ai-core[data-v4-ack="1"] .v3-point{animation:v41-core-ack .18s ease-out!important}
.app[data-siora-transition="core_ack"] .front-ai-core[data-v4-ack="1"] .e-a,.app[data-siora-transition="core_ack"] .front-ai-core[data-v4-ack="1"] .e-b{transform:scale(.96);opacity:.9}
.app.v4-entering .hero{transform:scale(.986);opacity:.92}
.app.v4-entering .guardian-takeover-rings,.app.v4-entering .guardian-rings-front,.app.v4-entering .foreground-spatial-v690{opacity:.24}
.app.v4-entering .nebula{opacity:.88}
/* Workspace starts while recession is still active; duration/visual curve unchanged. */
.app .workspace{transform-origin:50% 48%;animation:v41-workspace-in .24s var(--v4-ease) both}
.app.workspace-open .hero{pointer-events:none;transform:scale(.986);opacity:.48}
.app.workspace-open .foreground-spatial-v690,.app.workspace-open .guardian-takeover-rings,.app.workspace-open .guardian-rings-front{opacity:.08!important;animation-play-state:paused!important}
.app.workspace-open .front-ai-core{opacity:.10!important;animation-play-state:paused!important}
.app.workspace-open .pod{opacity:.08!important;pointer-events:none}
.app.workspace-open .nebula{opacity:.72}
.app.v4-exiting .workspace{animation:v41-workspace-out .26s var(--v4-ease) both}
.app.v4-exiting .hero{opacity:.74;transform:scale(.993)}
@keyframes v41-core-ack{0%{scale:.88}48%{scale:1.42}100%{scale:1}}
@keyframes v41-workspace-in{from{opacity:0;transform:scale(.987)}to{opacity:1;transform:scale(1)}}
@keyframes v41-workspace-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.99)}}
@media(max-width:760px){.app.v4-entering .hero{transform:scale(.993)}.app .workspace{animation-duration:.18s}.app.v4-exiting .workspace{animation-duration:.20s}.app.workspace-open .guardian-takeover-rings,.app.workspace-open .guardian-rings-front{opacity:.04!important}}
@media(prefers-reduced-motion:reduce){.app .hero,.app .nebula,.app .foreground-spatial-v690,.app .guardian-takeover-rings,.app .guardian-rings-front{transition:opacity .16s ease!important;transform:none!important}.app .workspace{animation:v41-workspace-fade .16s ease both!important}.app.v4-exiting .workspace{animation:v41-workspace-fade-out .16s ease both!important}@keyframes v41-workspace-fade{from{opacity:0}to{opacity:1}}@keyframes v41-workspace-fade-out{from{opacity:1}to{opacity:0}}}
/* No transition-time filter/blur is introduced here. */
