.generation-ambient-background{position:absolute;inset:0;overflow:hidden;pointer-events:none;isolation:isolate;background:#0b0f15}
.generation-ambient-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:blur(28px) saturate(.8);opacity:.2;transform:scale(1.25);animation:generation-photo-breathe 7s ease-in-out infinite;will-change:transform,opacity}
.generation-ambient-light{position:absolute;inset:-35% -25% 5%;filter:blur(28px);transform-origin:50% 30%;will-change:transform,opacity}
.generation-ambient-light.is-blue{background:radial-gradient(ellipse at 35% 22%,#285cf1c9,transparent 65%);animation:generation-light-blue 12s ease-in-out infinite}
.generation-ambient-light.is-green{background:radial-gradient(ellipse at 70% 28%,#10b896b8,transparent 65%);animation:generation-light-green 12s ease-in-out infinite}
.generation-ambient-light.is-violet{background:radial-gradient(ellipse at 45% 40%,#7753dba3,transparent 66%);animation:generation-light-violet 12s ease-in-out infinite}
.generation-ambient-shade{position:absolute;inset:0;background:linear-gradient(180deg,#080b1200 5%,#090c1433 45%,#090c14cc 78%,#090c14f5 100%)}
@keyframes generation-light-blue{0%,100%{opacity:.95;transform:translate(-6%,-3%) scale(1)}33%{opacity:.18;transform:translate(8%,5%) scale(1.12)}66%{opacity:.4;transform:translate(0,-4%) scale(1.04)}}
@keyframes generation-light-green{0%,100%{opacity:.12;transform:translate(10%,1%) scale(1.03)}33%{opacity:1;transform:translate(-8%,10%) scale(1.16)}66%{opacity:.15;transform:translate(4%,-2%) scale(1)}}
@keyframes generation-light-violet{0%,100%{opacity:.08;transform:translate(0,9%) scale(1)}33%{opacity:.25;transform:translate(6%,0) scale(1.1)}66%{opacity:.95;transform:translate(-5%,3%) scale(1.15)}}
@keyframes generation-photo-breathe{0%,100%{opacity:.04;transform:scale(1.25)}50%{opacity:.55;transform:scale(1.32)}}
.generation-ambient-background[data-motion=paused] :is(.generation-ambient-photo,.generation-ambient-light){animation-play-state:paused}
.generation-ambient-background[data-motion=static] :is(.generation-ambient-photo,.generation-ambient-light){animation:none;will-change:auto}
.generation-ambient-background[data-motion=static] .is-blue{opacity:.7}.generation-ambient-background[data-motion=static] .is-green{opacity:.35}.generation-ambient-background[data-motion=static] .is-violet{opacity:.15}
@media(prefers-reduced-motion:reduce){.generation-ambient-background :is(.generation-ambient-photo,.generation-ambient-light){animation:none;will-change:auto}.generation-ambient-background .is-blue{opacity:.7}.generation-ambient-background .is-green{opacity:.35}.generation-ambient-background .is-violet{opacity:.15}}
.generation-art.generation-ambient-wait{width:100%;aspect-ratio:auto;min-height:300px;background:#0b0f15;border:1px solid #ffffff0c;justify-content:flex-end;gap:9px;padding:24px 18px;color:#f0f2f5}
.generation-art.generation-ambient-wait b{position:relative;font-size:14px;font-weight:500;letter-spacing:.04em}
.generation-art.generation-ambient-wait small{position:relative;font-size:12px;color:#b5becb;opacity:1}
.cm-image>.generation-ambient-wait{padding:12px;min-height:0}
.native-generation-stage.is-generating.generation-ambient-wait,
.native-skill-app .native-generation-inline .native-generation-stage.is-generating.generation-ambient-wait{height:clamp(320px,49dvh,410px);min-height:320px;max-height:none;aspect-ratio:auto;background:#0b0f15;border:1px solid #ffffff0c}
.native-generation-stage.generation-ambient-wait>.native-generation-estimate,
.native-skill-app .native-generation-stage.generation-ambient-wait>.native-generation-estimate{inset:auto 0 0;height:140px;padding:14px 16px 24px;gap:10px;background:none}
.native-skill-app .native-generation-stage.generation-ambient-wait .native-generation-time-label{font-size:12px;letter-spacing:.08em;color:#b5becb}
.native-skill-app .native-generation-stage.generation-ambient-wait .native-generation-time-value strong{font-size:36px;font-weight:300;letter-spacing:-1px;color:#f0f2f5}
.native-skill-app .native-generation-stage.generation-ambient-wait .native-generation-time-value>span{color:#c1c8d1}
.native-skill-app .native-generation-stage.generation-ambient-wait .native-generation-estimate small{font-size:11px;color:#a8b2c0;max-width:270px}

/* App waiting backgrounds reach under the safe area; controls keep their own insets. */
html:has(.native-generation-stage.generation-ambient-wait){scrollbar-gutter:auto;scrollbar-width:none}
.native-generation-stage.generation-ambient-wait>.generation-ambient-background{position:fixed;inset:0;z-index:-1}
.native-generation-stage.is-generating.generation-ambient-wait,
.native-skill-app .native-generation-inline .native-generation-stage.is-generating.generation-ambient-wait{overflow:visible;border:0;border-radius:0;background:transparent}
.native-generation-screen:has(.generation-ambient-background){background:transparent}
.native-skill-header:has(.generation-ambient-background),
.native-generation-screen:not(.native-generation-inline):has(.generation-ambient-background){isolation:isolate}
.native-generation-screen:has(.generation-ambient-background)>.native-generation-header,
.native-generation-screen:has(.generation-ambient-background)>.native-generation-main>:not(.generation-ambient-wait),
.native-task-page:has(.generation-ambient-background)>.native-task-footer{position:relative;z-index:1}
.studio-shell.native-skill-app[class] .native-skill-header:has(.generation-ambient-background){background:transparent!important}
.studio-shell.native-skill-app:has(.generation-ambient-background)::before,
.native-task-page:has(.generation-ambient-background)::before{display:none}
