)}
diff --git a/apps/desktop/src/pages/AuthPage.tsx b/apps/desktop/src/pages/AuthPage.tsx
index fc62a93..fd0890c 100644
--- a/apps/desktop/src/pages/AuthPage.tsx
+++ b/apps/desktop/src/pages/AuthPage.tsx
@@ -84,112 +84,109 @@ export function AuthPage() {
[mode, email, username, inviteCode, i18n, t],
);
- // Already signed in? Bounce to chats. Guards take it from here.
if (session) return ;
return (
-
-
-
-
- );
-}
-
-// ---------------------------------------------------------------------------
-// Layout
-// ---------------------------------------------------------------------------
-
-function Shell({ children }: { children: React.ReactNode }) {
- return (
-
-
-
- {children}
+
+
+
+
+
);
}
-function BackgroundStage() {
+// ---------------------------------------------------------------------------
+// Shell background — ambient blobs spread across the full viewport. Anchored
+// to percentages so they stay in the same relative position regardless of
+// monitor width (works as well on 1440 as on 3440 ultrawide).
+// ---------------------------------------------------------------------------
+
+function ShellBackground() {
return (
-
-
-
-
-
-
-
-
+
+
+
+
+
+
);
}
-function BrandPanel() {
+// ---------------------------------------------------------------------------
+// Brand section — edge-to-edge panel on the left. Inner content constrained
+// so it stays readable on ultrawide screens; ambient background fills the rest.
+// ---------------------------------------------------------------------------
+
+function BrandSection() {
const { t } = useTranslation(['auth', 'common']);
return (
-
-