diff --git a/src/components/AnimatedBackground.tsx b/src/components/AnimatedBackground.tsx
new file mode 100644
index 0000000..4695887
--- /dev/null
+++ b/src/components/AnimatedBackground.tsx
@@ -0,0 +1,190 @@
+import { useQuery } from '@tanstack/react-query'
+import { brandingApi } from '../api/branding'
+
+export default function AnimatedBackground() {
+ const { data: animationSettings } = useQuery({
+ queryKey: ['animation-enabled'],
+ queryFn: brandingApi.getAnimationEnabled,
+ staleTime: 1000 * 60 * 5, // 5 minutes
+ retry: false,
+ })
+
+ // Don't render if animation is disabled
+ if (animationSettings && !animationSettings.enabled) {
+ return null
+ }
+
+ return (
+ <>
+ {/* SVG Filter for glow effect */}
+
+
+ {/* Animated wave gradients */}
+
+
+
+ >
+ )
+}
diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx
index a6263e9..8ab2c62 100644
--- a/src/components/layout/Layout.tsx
+++ b/src/components/layout/Layout.tsx
@@ -6,6 +6,7 @@ import { useAuthStore } from '../../store/auth'
import LanguageSwitcher from '../LanguageSwitcher'
import PromoDiscountBadge from '../PromoDiscountBadge'
import TicketNotificationBell from '../TicketNotificationBell'
+import AnimatedBackground from '../AnimatedBackground'
import { contestsApi } from '../../api/contests'
import { pollsApi } from '../../api/polls'
import { brandingApi } from '../../api/branding'
@@ -270,6 +271,9 @@ export default function Layout({ children }: LayoutProps) {
return (
+ {/* Animated Background */}
+
+
{/* Header */}