/* Reset et optimisation mobile */ * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; } :root { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; line-height: 1.5; font-weight: 400; color: rgba(255, 255, 255, 0.87); font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; /* Empêcher le zoom sur les inputs pour iOS */ font-size: 16px; /* Couleurs néon violet */ --neon-violet: rgba(138, 43, 226, 1); /* Blueviolet */ --neon-violet-light: rgba(186, 85, 211, 1); /* Medium Orchid */ --neon-violet-glow: rgba(138, 43, 226, 0.6); } html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow-x: hidden; /* Désactiver le scroll bounce sur iOS */ overscroll-behavior: none; -webkit-overflow-scrolling: touch; /* Ne pas forcer de background pour permettre aux pages d'avoir leur propre style */ background-color: transparent !important; } body { position: fixed; width: 100%; height: 100%; } /* Effet de hover sur toute la page - Curseur personnalisé violet */ body::before { content: ''; position: fixed; width: 40px; height: 40px; border: 2px solid var(--neon-violet-glow); border-radius: 50%; pointer-events: none; z-index: 9999; transition: transform 0.2s ease, opacity 0.2s ease; opacity: 0; box-shadow: 0 0 10px var(--neon-violet-glow); } body:hover::before { opacity: 1; } /* Effet de gradient violet qui suit le curseur */ body::after { content: ''; position: fixed; width: 300px; height: 300px; background: radial-gradient(circle, rgba(138, 43, 226, 0.15) 0%, transparent 70%); pointer-events: none; z-index: 1; opacity: 0; transition: opacity 0.3s ease; } @media (hover: hover) { body:hover::after { opacity: 1; } } #root { width: 100%; height: 100%; overflow: auto; /* Ne pas forcer de background sur root non plus */ background-color: transparent !important; position: relative; } /* Effet de particules/grille au hover avec teinte violette */ #root::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(rgba(186, 85, 211, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(186, 85, 211, 0.05) 1px, transparent 1px); background-size: 50px 50px; pointer-events: none; opacity: 0; transition: opacity 0.5s ease; z-index: 0; } @media (hover: hover) { #root:hover::before { opacity: 1; } } a { font-weight: 500; color: #646cff; text-decoration: inherit; -webkit-tap-highlight-color: transparent; } a:active { opacity: 0.7; } h1 { font-size: clamp(1.8rem, 5vw, 3.2rem); line-height: 1.1; } h2 { font-size: clamp(1.5rem, 4vw, 2.5rem); } p { font-size: clamp(0.9rem, 2.5vw, 1.1rem); } button { border-radius: 8px; border: 1px solid transparent; padding: 0.8em 1.5em; font-size: 1em; font-weight: 500; font-family: inherit; background-color: var(--surface); cursor: pointer; transition: all 0.2s; -webkit-tap-highlight-color: transparent; touch-action: manipulation; } button:active { transform: scale(0.95); opacity: 0.8; } /* Désactiver le hover sur mobile */ @media (hover: none) { button:hover { border-color: transparent; } /* Désactiver les effets de hover sur mobile */ body::before, body::after, #root::before { display: none; } } .home-container2 { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: calc(100vh - 60px); padding: 2rem; gap: 2rem; position: relative; z-index: 2; } /* Container plein écran pour la vidéo */ .home-container-fullscreen { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; overflow: hidden; cursor: pointer; z-index: 1000; background-color: #000; } /* Vidéo en plein écran */ .home-video-fullscreen { position: absolute; top: 50%; left: 50%; min-width: 100%; min-height: 100%; width: auto; height: auto; transform: translate(-50%, -50%); object-fit: cover; z-index: 0; } /* Effet au hover (desktop uniquement) */ @media (hover: hover) { .home-container-fullscreen:hover { opacity: 0.95; } .home-container-fullscreen:hover .home-video-fullscreen { filter: brightness(1.1); } } /* Effet au clic */ .home-container-fullscreen:active { opacity: 0.9; } /* Optimisation mobile */ @media (max-width: 768px) { .home-video-fullscreen { object-fit: cover; } }