diff --git a/server/src/index.js b/server/src/index.js
index a09caa3..f45d9b6 100644
--- a/server/src/index.js
+++ b/server/src/index.js
@@ -50,7 +50,6 @@ app.use(
styleSrc: ["'self'", "'unsafe-inline'", 'https://fonts.googleapis.com'],
fontSrc: ['https://fonts.gstatic.com'],
imgSrc: ["'self'", 'data:', 'blob:'],
- mediaSrc: ["'self'"],
connectSrc: ["'self'"],
frameSrc: ["'self'", 'https://www.google.com', 'https://maps.google.com'],
frameAncestors: ["'none'"],
diff --git a/web/public/assets/hero-player.mp4 b/web/public/assets/hero-player.mp4
deleted file mode 100644
index 8bff239..0000000
Binary files a/web/public/assets/hero-player.mp4 and /dev/null differ
diff --git a/web/src/components/HeroPlayerVideo.jsx b/web/src/components/HeroPlayerVideo.jsx
deleted file mode 100644
index 0da7220..0000000
--- a/web/src/components/HeroPlayerVideo.jsx
+++ /dev/null
@@ -1,24 +0,0 @@
-// Purely decorative real video of a basketball player dribbling, animated
-// behind the hero stats row. Desaturated to black & white at runtime via
-// CSS (no source video processing available in this environment). Source:
-// Pexels stock footage (free commercial license, no attribution required,
-// anonymous player) — see web/public/assets/hero-player.mp4.
-export default function HeroPlayerVideo({ className = '' }) {
- const reduceMotion =
- typeof window !== 'undefined' &&
- window.matchMedia('(prefers-reduced-motion: reduce)').matches;
-
- return (
-
- );
-}
diff --git a/web/src/pages/Home.jsx b/web/src/pages/Home.jsx
index ba37460..c9abb92 100644
--- a/web/src/pages/Home.jsx
+++ b/web/src/pages/Home.jsx
@@ -7,7 +7,6 @@ import Modal from '../components/Modal.jsx';
import PastEventCard from '../components/PastEventCard.jsx';
import { AdhesionForm, AdhesionModal } from '../components/AdhesionForm.jsx';
import { associationSettings } from '../lib/siteSettings.js';
-import HeroPlayerVideo from '../components/HeroPlayerVideo.jsx';
export function InscriptionModal({ rencontre, onClose, onDone }) {
const { user, login } = useAuth();
@@ -266,16 +265,13 @@ export default function Home() {
-
-
-
- {[[String(members.length), 'entreprises membres'], [String(passees.length), 'rencontres organisées'], ['30 ans', 'de partenariat']].map(([n, l]) => (
-
- ))}
-
+
+ {[[String(members.length), 'entreprises membres'], [String(passees.length), 'rencontres organisées'], ['30 ans', 'de partenariat']].map(([n, l]) => (
+
+ ))}
diff --git a/web/src/styles.css b/web/src/styles.css
index b622bec..c7c3c9e 100644
--- a/web/src/styles.css
+++ b/web/src/styles.css
@@ -43,25 +43,6 @@ input:focus, textarea:focus, select:focus { outline: none; border-color: var(--r
.marquee-fade { width: 40px; }
}
-/* Hero stats background: a real video of a basketball player dribbling,
- behind the "entreprises membres / rencontres organisées / X ans" row.
- Pexels stock footage (free commercial license, no attribution required,
- anonymous player), desaturated at runtime via CSS. */
-.hero-stats-wrap { overflow: visible; }
-.hero-stats-video {
- position: absolute; right: -20px; bottom: -34px;
- width: 420px; height: 130px;
- object-fit: cover; object-position: 60% 35%;
- pointer-events: none;
- filter: grayscale(1) contrast(1.05) brightness(1.05);
- opacity: .22;
- /* Fades the video out over the stat text (left) and lets it show only
- over the clear whitespace (right), so it never degrades the existing
- text contrast. */
- mask-image: linear-gradient(100deg, transparent 0%, transparent 26%, black 52%, black 100%);
- -webkit-mask-image: linear-gradient(100deg, transparent 0%, transparent 26%, black 52%, black 100%);
-}
-
.container { max-width: 1180px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }
.serif { font-family: var(--serif); }
@@ -267,7 +248,6 @@ input:focus, textarea:focus, select:focus { outline: none; border-color: var(--r
@media (max-width: 960px) {
.grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr !important; }
.hero-grid { grid-template-columns: 1fr !important; }
- .hero-stats-video { width: 260px; height: 100px; right: -10px; bottom: -10px; }
}
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@@ -294,7 +274,6 @@ input:focus, textarea:focus, select:focus { outline: none; border-color: var(--r
@media (max-width: 640px) {
.container { padding-left: 20px; padding-right: 20px; }
- .hero-stats-video { display: none; }
.admin-nav { grid-template-columns: 1fr; gap: 20px; }
.admin-sidebar-footer { align-items: stretch; flex-direction: column; }
.admin-sidebar-action { width: 100%; }