/* Shared decoration for image/video generation placeholders. */
.generation-loading-surface.generation-loading-surface {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.generation-loading-surface.generation-loading-surface::before {
    content: "";
    position: absolute;
    inset: -55%;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(ellipse at 18% 22%, color-mix(in srgb, var(--brand-purple) 26%, transparent), transparent 50%),
        radial-gradient(ellipse at 80% 78%, color-mix(in srgb, var(--brand-blue) 28%, transparent), transparent 52%),
        radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 48%);
    animation: generation-gradient-flow-r3 4s ease-in-out -1s infinite alternate;
}

@keyframes generation-gradient-flow-r3 {
    from { transform: translate3d(-24%, -18%, 0) scale(1); opacity: 0.75; }
    to { transform: translate3d(24%, 18%, 0) scale(1.08); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .generation-loading-surface.generation-loading-surface::before { animation: none; }
}
