/* Polices Stitch "Digital Atelier" : Manrope (titres/UI) + Newsreader (corps éditorial). Voir docs-site-interne/REFONTE-VISUELLE.md. -- Les `@import url(...)` vers Google Fonts étaient strippés en production par la chaîne PostCSS + Tailwind de Next 15 (diagnostic confirmé 2026-04-22 via DevTools Network sur Chrome desktop et mobile). Depuis : - Manrope et Newsreader passent par `next/font/google` (voir `app/fonts.ts`) avec les variables CSS `--font-manrope` et `--font-newsreader`. - Material Symbols Outlined est chargée via `` injecté directement dans le `` par `app/layout.tsx` (contourne le pipeline PostCSS strippant, conserve le CDN Google pour une icon-font). */ @tailwind base; @tailwind components; @tailwind utilities; /* Site en "light-only" (arbitrage validé dans REFONTE-VISUELLE.md). Le bloc @media (prefers-color-scheme: dark) hérité du template Next a été retiré le 2026-04-22 : il rendait la couleur du texte dépendante du thème système du device, provoquant un rendu différent entre desktop clair et mobile sombre. */ :root { --background: #ffffff; --foreground: #191c1d; /* on-surface Stitch : jamais #000 pur */ } /* Icônes Material Symbols : utilitaire name. Sans la règle font-family explicite, le span affiche littéralement le nom de l'icône (ex. "psychology") dans la font par défaut — l'import Google Fonts ne la pose pas automatiquement sur la classe, c'est au site de le faire. */ .material-symbols-outlined { font-family: 'Material Symbols Outlined'; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; display: inline-block; line-height: 1; text-transform: none; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; font-feature-settings: 'liga'; -webkit-font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; } html { overflow-x: hidden; max-width: 100%; } body { /* Couleur et fond fixés en clair, pas de dépendance au thème système. Font par défaut : Newsreader (corps éditorial Stitch). Les éléments avec `font-headline` passeront en Manrope, ceux sans classe explicite hériteront de Newsreader au lieu d'Arial. */ color: #191c1d; background: var(--background); font-family: var(--font-newsreader), Georgia, serif; max-width: 100%; min-width: 0; overflow-x: hidden; } @keyframes fade-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fade-in 0.5s ease-out; } @keyframes blink { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } .wait-animation .dot-1 { animation: blink 1s infinite 0s; } .wait-animation .dot-2 { animation: blink 1s infinite 0.2s; } .wait-animation .dot-3 { animation: blink 1s infinite 0.4s; } .bg-wallpaper { background-image: url('./assets/images/wallpapersite_resultat.webp'); background-size: cover; background-position: center; background-repeat: no-repeat; min-height: 100vh; /* 100% plutôt que 100vw évite le débordement horizontal (barre de scroll) au zoom */ width: 100%; min-width: 0; left: 0; right: 0; } @media (max-width: 768px) { .bg-wallpaper { /* Ne pas utiliser 200vw : double la largeur de page et déstabilise le zoom / dézoom */ width: 100%; min-width: 0; } } html, body { width: 100%; height: 100%; margin: 0; padding: 0; } .container { width: 100%; height: 100%; position: relative; } /* Gestion du footer */ footer { text-align: center; padding: 16px; background-color: rgba(255, 255, 255, 0.5); backdrop-filter: blur(10px); border-radius: 8px; } /* Responsive footer */ @media (max-width: 768px) { footer { padding: 12px; } } @media (max-width: 768px) { .max-w-7xl { max-width: 100%; } } @media (prefers-reduced-motion: reduce) { .mobile-drawer-root, .mobile-drawer-panel { transition: none !important; } }