diff --git a/services/web/app/views/user/login.pug b/services/web/app/views/user/login.pug
index a6425d077b..1d4b35651f 100644
--- a/services/web/app/views/user/login.pug
+++ b/services/web/app/views/user/login.pug
@@ -9,7 +9,7 @@ block content
.container
.row
.col-12
- .text-center.mb-4
+ .lumiere-logo-center.mb-4
img.verso-login-logo(
src=buildImgPath('ol-brand/verso-logo.svg')
alt='Verso'
diff --git a/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx b/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx
index 39617178c2..e76c6ba989 100644
--- a/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx
+++ b/services/web/frontend/js/features/project-list/components/project-list-lumiere.tsx
@@ -1,4 +1,4 @@
-import { memo, useCallback, useEffect, useRef } from 'react'
+import React, { memo, useCallback, useEffect, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { useProjectListContext } from '../context/project-list-context'
import { Project } from '../../../../../types/project/dashboard/api'
@@ -28,6 +28,46 @@ import { CompileAndDownloadProjectPDFButtonTooltip } from './table/cells/action-
import { ArchiveProjectButtonTooltip } from './table/cells/action-buttons/archive-project-button'
import { TrashProjectButtonTooltip } from './table/cells/action-buttons/trash-project-button'
+// ── Tile zoom ─────────────────────────────────────────────────────────────────
+
+type ZoomLevel = 0.75 | 1 | 1.35
+const ZOOM_OPTIONS: { value: ZoomLevel; label: string }[] = [
+ { value: 0.75, label: 'S' },
+ { value: 1, label: 'M' },
+ { value: 1.35, label: 'L' },
+]
+const ZOOM_STORAGE_KEY = 'lumiere-card-scale'
+
+function useLumiereCardScale(): [ZoomLevel, (z: ZoomLevel) => void] {
+ const [scale, setScale] = useState