/* صحنه‌ی متحرک مشترک سایت و صفحه‌ی ورود پنل */
/* ================================================================ صحنه */
.scene { position: fixed; inset: 0; z-index: -2; overflow: hidden; background: #0b0820; }
.scene-svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.scene .layer { transition: transform .1s linear; will-change: transform; }
.sc-stars circle { animation: twinkle 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.sc-rays { transform-box: view-box; transform-origin: 800px 700px; animation: spin 140s linear infinite; }
.sc-glow { transform-box: fill-box; transform-origin: center; animation: breathe 7s ease-in-out infinite; }
.sc-sun { filter: drop-shadow(0 0 30px rgba(255, 220, 140, .9)); }
.sc-pattern { opacity: .07; }
.sc-haze-1 { animation: drift 38s ease-in-out infinite alternate; }
.sc-haze-2 { animation: drift 46s ease-in-out infinite alternate-reverse; }
.sc-haze-3 { animation: drift 30s ease-in-out infinite alternate; }
.sc-flock { transform-box: view-box; }
.sc-flock-1 { animation: fly 34s linear infinite; }
.sc-flock-2 { animation: fly2 46s linear infinite; animation-delay: -18s; }
.sc-tulip { transform-box: fill-box; transform-origin: 50% 100%; animation: sway 4.5s ease-in-out infinite; }
.sc-tulips g:nth-child(2n) .sc-tulip { animation-duration: 5.4s; animation-delay: -1.2s; }
.sc-tulips g:nth-child(3n) .sc-tulip { animation-duration: 3.9s; animation-delay: -2.1s; }

.embers { position: absolute; inset: 0; pointer-events: none; }
.embers span {
  position: absolute; bottom: -12px; border-radius: 50%;
  background: radial-gradient(circle, #fff6d5 0%, #fbbf24 45%, rgba(251, 146, 60, 0) 72%);
  box-shadow: 0 0 10px 2px rgba(251, 191, 36, .55);
  animation: rise-ember 14s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes twinkle { 0%, 100% { opacity: .25; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.2); } }
@keyframes breathe { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.08); opacity: 1; } }
@keyframes drift { from { transform: translateX(-90px); } to { transform: translateX(90px); } }
@keyframes fly { from { transform: translate(-200px, 330px); } 50% { transform: translate(800px, 270px); } to { transform: translate(1800px, 300px); } }
@keyframes fly2 { from { transform: translate(-150px, 420px); } 50% { transform: translate(800px, 380px); } to { transform: translate(1800px, 350px); } }
@keyframes sway { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(5deg); } }
@keyframes rise-ember { 0% { transform: translate(0, 0) scale(.6); opacity: 0; } 10% { opacity: 1; } 100% { transform: translate(var(--drift), -105vh) scale(1.1); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .scene *, .embers span { animation: none !important; } }
