2026-07-07 23:56:56 +04:00
|
|
|
(function() {
|
2026-07-21 12:42:02 -04:00
|
|
|
// 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');
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-07 23:56:56 +04:00
|
|
|
// 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');
|
|
|
|
|
}
|
|
|
|
|
})();
|