(function() { // Marqueur JS actif : les états initiaux cachés des animations // (reveal, loader) ne s'appliquent que si JavaScript tourne. document.documentElement.classList.add('js'); // Cérémonie d'entrée : première visite de la session seulement, // jamais si l'utilisateur préfère réduire les animations. if (!sessionStorage.getItem('oki-intro') && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) { document.documentElement.classList.add('intro-pending'); } // Récupérer le thème stocké ou détecter le thème système const storedTheme = localStorage.getItem('oki-theme'); const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; let theme = storedTheme; // Si pas de préférence stockée, utiliser le thème système if (!storedTheme) { theme = systemPrefersDark ? 'dark' : 'light'; } // Appliquer le thème immédiatement if (theme === 'light') { document.documentElement.classList.add('light-theme'); } })();