diff --git a/apps/business/src/components/BackgroundOrbs.module.css b/apps/business/src/components/BackgroundOrbs.module.css
new file mode 100644
index 0000000..04d33bd
--- /dev/null
+++ b/apps/business/src/components/BackgroundOrbs.module.css
@@ -0,0 +1,134 @@
+.bgOrbs {
+ position: fixed;
+ inset: 0;
+ pointer-events: none;
+ z-index: 0;
+ overflow: hidden;
+}
+
+.bgOrbs::after {
+ content: '';
+ position: absolute;
+ inset: 0;
+ background: radial-gradient(circle at 50% 50%, transparent 30%, rgba(255, 255, 255, 0.2) 100%);
+ backdrop-filter: blur(1px);
+}
+
+.orb1,
+.orb2,
+.orb3,
+.orb4 {
+ position: absolute;
+ border-radius: 50%;
+ filter: blur(100px);
+ will-change: transform;
+}
+
+.orb1 {
+ width: 560px;
+ height: 560px;
+ background: radial-gradient(
+ circle,
+ color-mix(in srgb, var(--primary-light) 55%, #ffffff) 0%,
+ color-mix(in srgb, var(--primary) 30%, #ffffff) 55%,
+ transparent 72%
+ );
+ opacity: 0.55;
+ top: -140px;
+ right: -120px;
+ animation: floatOrb1 18s ease-in-out infinite;
+}
+
+.orb2 {
+ width: 480px;
+ height: 480px;
+ background: radial-gradient(
+ circle,
+ color-mix(in srgb, var(--primary) 28%, #ffffff) 0%,
+ color-mix(in srgb, var(--primary) 38%, #ffffff) 50%,
+ transparent 70%
+ );
+ opacity: 0.42;
+ bottom: -100px;
+ left: 15%;
+ animation: floatOrb2 22s ease-in-out infinite;
+}
+
+.orb3 {
+ width: 380px;
+ height: 380px;
+ background: radial-gradient(
+ circle,
+ color-mix(in srgb, var(--page-accent) 30%, #ffffff) 0%,
+ color-mix(in srgb, var(--page-accent) 48%, #ffffff) 55%,
+ transparent 72%
+ );
+ opacity: 0.42;
+ top: 38%;
+ left: -100px;
+ animation: floatOrb3 20s ease-in-out infinite;
+}
+
+.orb4 {
+ width: 320px;
+ height: 320px;
+ background: radial-gradient(
+ circle,
+ color-mix(in srgb, var(--primary-light) 45%, var(--page-accent)) 0%,
+ color-mix(in srgb, var(--page-accent) 32%, var(--primary-light)) 50%,
+ transparent 70%
+ );
+ opacity: 0.38;
+ top: 12%;
+ right: 28%;
+ animation: floatOrb4 24s ease-in-out infinite;
+}
+
+@keyframes floatOrb1 {
+ 0%,
+ 100% {
+ transform: translate(0, 0) scale(1);
+ }
+ 50% {
+ transform: translate(-30px, 25px) scale(1.06);
+ }
+}
+
+@keyframes floatOrb2 {
+ 0%,
+ 100% {
+ transform: translate(0, 0) scale(1);
+ }
+ 50% {
+ transform: translate(35px, -20px) scale(1.05);
+ }
+}
+
+@keyframes floatOrb3 {
+ 0%,
+ 100% {
+ transform: translate(0, 0) scale(1);
+ }
+ 50% {
+ transform: translate(20px, 30px) scale(1.08);
+ }
+}
+
+@keyframes floatOrb4 {
+ 0%,
+ 100% {
+ transform: translate(0, 0) scale(1);
+ }
+ 50% {
+ transform: translate(-25px, -15px) scale(1.04);
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .orb1,
+ .orb2,
+ .orb3,
+ .orb4 {
+ animation: none;
+ }
+}
diff --git a/apps/business/src/components/BackgroundOrbs.tsx b/apps/business/src/components/BackgroundOrbs.tsx
new file mode 100644
index 0000000..7a2f9b2
--- /dev/null
+++ b/apps/business/src/components/BackgroundOrbs.tsx
@@ -0,0 +1,12 @@
+import styles from './BackgroundOrbs.module.css'
+
+export function BackgroundOrbs() {
+ return (
+
+ )
+}
diff --git a/apps/business/src/components/PageLayout.tsx b/apps/business/src/components/PageLayout.tsx
index 6fbc899..ec33c9f 100644
--- a/apps/business/src/components/PageLayout.tsx
+++ b/apps/business/src/components/PageLayout.tsx
@@ -4,6 +4,7 @@ import { DraftCartProvider } from '../context/DraftCartContext'
import { useT } from '../i18n/useT'
import { Sidebar } from './Sidebar'
import { Header } from './Header'
+import { BackgroundOrbs } from './BackgroundOrbs'
import styles from './PageLayout.module.css'
const NAV_EXPAND_QUERY = '(min-width: 1281px)'
@@ -45,6 +46,7 @@ export function PageLayout() {
return (
+
{navOpen ? (