/* ======================================================================== *//* === STYLES FUSIONNÉS & CORRIGÉS DE TOUTES LES PAGES TUTOPURTOUS === *//* ======================================================================== *//* ---------------------------------- *//* 1. VARIABLES & RESET GLOBAL *//* ---------------------------------- */:root {    /* Couleurs de base (Palette Sombre/Néon) */    --primary-color: #00ffaa; /* Vert néon */    --secondary-color: #00aaff; /* Bleu néon (pour usage secondaire si nécessaire) */    --background-dark: #0d0d0d; /* Fond principal */    --background-med: #1a1a1a; /* Fond du footer / cartes de catégorie */    --background-light: #2b2b2b; /* Fond des sections d'articles et cartes de contenu */        --text-light: #e0e0e0; /* Texte principal (titres, logo) */    --text-med: #aaaaaa; /* Texte secondaire (paragraphes, liens non actifs) */        --border-color: #2b2b2b;    --shadow-color: rgba(0, 255, 170, 0.2);        /* Fonts */    --font-body: 'Inter', sans-serif;    --font-code: 'Fira Code', monospace;        /* Séquence d'Obfuscation (conservée pour la compatibilité) */    --a: var(--primary-color);    --b: #030303;     --c: #101010;     --d: var(--text-light);     --e: var(--text-med);    --f: rgba(255, 255, 255, 0.07); /* Border/Separator */    --g: var(--font-body);        /* Autres */    --transition-fast: all 0.3s ease-in-out;    --border-radius-md: 0.75rem;}* {    margin: 0;    padding: 0;    box-sizing: border-box;    -webkit-user-select: none;    -moz-user-select: none;    -ms-user-select: none;    user-select: none;}::selection { background: transparent; color: inherit; }::-moz-selection { background: transparent; color: inherit; }html {    scroll-behavior: smooth;    height: 100%;}body {    background-color: var(--background-dark);     color: var(--text-light);    font-family: var(--font-body);    line-height: 1.6;    -webkit-font-smoothing: antialiased;    -moz-osx-font-smoothing: grayscale;    display: flex;    flex-direction: column;    min-height: 100vh;    position: relative;    overflow-x: hidden;}main {    flex-grow: 1;}/* Styles globaux pour le contenu article/légal */h1, h2, h3 { font-family: var(--font-body); font-weight: 900; color: var(--text-light); }p, li { color: var(--text-med); }strong { color: var(--primary-color); font-weight: 700; }a {    text-decoration: none;    color: var(--primary-color);    transition: var(--transition-fast);}a:hover {    text-shadow: 0 0 5px var(--primary-color);}:focus-visible {    outline: 3px solid var(--primary-color);    outline-offset: 2px;}.container {    max-width: 1280px;    margin-left: auto;    margin-right: auto;    padding-left: 1.5rem;    padding-right: 1.5rem;}/* ---------------------------------- *//* 2. STYLES DU FICHIER D'ACCUEIL INITIAL (classes obfusquées) *//* ---------------------------------- */#h { position:fixed;top:0;left:0;width:100%;height:100%;background:var(--b);z-index:1000;display:flex;justify-content:center;align-items:center;transition:opacity .8s ease,visibility .8s ease; }#h.i { opacity:0;visibility:hidden; }.j { animation:k 1.5s infinite ease-in-out; }@keyframes k{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.05);opacity:.8;}}#l { position:fixed;top:0;left:0;height:3px;background:var(--a);width:0%;z-index:1000; }#m, #n { position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transition:transform .2s ease-out,opacity .2s ease; }#m { width:8px;height:8px;background-color:var(--a); }.o #n { transform:scale(1.5); }/* Classes CSS principales obfusquées */.q{ background-color:rgba(3,3,3,.6);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--f); }.r{ padding:2rem;border-bottom:1px solid var(--f); }.s{ display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;font-size:1.25rem;font-weight:700;cursor:pointer;list-style:none;}.s::after{content:'\f067';font-family:'Font Awesome 6 Free';font-weight:900;transition:transform .3s ease;}.t{ padding-bottom:1.5rem;color:var(--e);max-width:90%; }.u { background:var(--c);border:1px solid var(--f);position:relative;overflow:hidden;transition:transform .4s ease,box-shadow .4s ease; }.u:hover { transform:translateY(-8px);box-shadow:0 0 40px -15px rgba(0,255,170,.2); }.u .v { position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle 300px at var(--w, 50%) var(--x, 50%),rgba(255,255,255,.05),transparent 80%); }.y { opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1); }.y.z { opacity:1;transform:translateY(0); }.aa { display:inline-block;opacity:0;transform:translateY(40px) rotate(5deg);animation:ab 1s forwards cubic-bezier(.16,1,.3,1); }@keyframes ab{to{opacity:1;transform:translateY(0) rotate(0deg);}}/* Classes utilitaires complexes (Tailwind remplacé) */.ac{display:flex;align-items:center;gap:0.75rem;}.ad{font-size:1.5rem;font-weight:900;}.ae{font-size:1.5rem;font-weight:700;}.af{padding-top:8rem;padding-bottom:10rem;}.ag{max-width:56rem;margin-left:auto;margin-right:auto;}.ah{font-size:3rem;font-weight:900;letter-spacing:-0.05em;}.ai{font-size:4.5rem;font-weight:900;letter-spacing:-0.05em;}.aj{max-width:48rem;}.ak{font-size:1.125rem;}.al{margin-bottom:3rem;}.am{padding-top:3rem;padding-bottom:3rem;}.an{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;}.ao{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;}.ap{font-size:1.875rem;font-weight:700;}.aq{font-size:2.25rem;font-weight:700;}.ar{border-right:1px solid var(--f);padding-right:1rem;}.as{padding:1.5rem 2.5rem;border-radius:0.5rem;font-size:1.125rem;}.at{font-size:2.25rem;margin-bottom:1.5rem;}.au{font-size:1.5rem;font-weight:700;margin-bottom:0.75rem;}.av{padding-top:6rem;padding-bottom:6rem;}.aw{margin-top:4rem;padding-top:3rem;padding-bottom:3rem;border-top:1px solid var(--f);}/* Media Queries pour l'obfuscation responsive */@media (min-width: 768px) {    .an{grid-template-columns:repeat(4,minmax(0,1fr));}    .ah{font-size:5rem;}}@media (min-width: 1024px) {    .al{max-width:50%;text-align:left;}}/* ---------------------------------- *//* 3. STYLES DU HEADER & FOOTER COMMONS *//* ---------------------------------- */.main-header {    background-color: rgba(13, 13, 13, 0.7);    backdrop-filter: blur(16px);    -webkit-backdrop-filter: blur(16px);    border-bottom: 1px solid var(--border-color);    position: sticky;    top: 0;    z-index: 50;    flex-shrink: 0;}.main-header .container {    display: flex;    justify-content: space-between;    align-items: center;    height: 4.5rem; }.logo-title { font-family: var(--font-body); font-weight: 900; }.main-nav a:hover {    color: var(--primary-color);    text-shadow: 0 0 8px rgba(0, 255, 170, 0.5);}.highlight { color: var(--primary-color); }/* Animation de "machine à écrire" pour le logo de la page catégorie */.logo-tagline {    display: inline-block;    overflow: hidden;    white-space: nowrap;    border-right: 2px solid var(--text-med);    animation: typing 1.5s steps(2) forwards, blink-caret .75s step-end infinite;}@keyframes typing { from { width: 0 } to { width: 1.25em } }@keyframes blink-caret { from, to { border-color: transparent } 50% { border-color: var(--text-med); } }/* Navigation Mobile (Pages article/légal) */.mobile-menu-btn { display: block; background: none; border: none; cursor: pointer; padding: 0.5rem; z-index: 1000; color: var(--primary-color); font-size: 1.5rem; }.menu-icon { font-weight: 700; }.nav-open .menu-icon { transform: rotate(90deg); }.main-nav {    position: fixed; top: 4.5rem; left: 0; width: 100%; height: calc(100vh - 4.5rem);     background-color: var(--background-dark); transform: translateX(-100%);     transition: transform 0.3s ease-in-out; overflow-y: auto; visibility: hidden;}.nav-open .main-nav { transform: translateX(0); visibility: visible; }.main-nav .nav-list { list-style: none; }.main-nav .nav-list a {    display: block; padding: 1.25rem 1.5rem; font-size: 1rem; font-weight: 500;     border-bottom: 1px solid var(--border-color); transition: var(--transition-fast);     color: var(--text-light);}.main-nav .nav-list a:hover { background-color: var(--background-med); color: var(--primary-color); }/* Footer */.main-footer {    padding: 3rem 1rem;    background-color: var(--background-med);     border-top: 1px solid var(--border-color);    flex-shrink: 0;}.footer-copyright {    text-align: center;    font-size: 0.9rem;    color: var(--text-med);}/* ---------------------------------- *//* 4. STYLES DES CARTES D'ARTICLES (Catégories) *//* ---------------------------------- */.article-card {    background-color: var(--background-med);    border: 1px solid var(--border-color);    position: relative;    overflow: hidden;    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;}.article-card:hover {    transform: translateY(-8px);    border-color: var(--primary-color);    box-shadow: 0 10px 30px -10px var(--shadow-color);}.article-card::before {    content: '';    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    border-radius: inherit;    box-shadow: inset 0 0 10px rgba(0, 255, 170, 0.1);    transition: box-shadow 0.3s ease;}.article-card::after {    content: '';    position: absolute;    left: -100%;    top: 0;    width: 100%;    height: 100%;    background: linear-gradient(90deg, transparent, rgba(0, 255, 170, 0.05), transparent);    transition: left 0.6s ease;    z-index: 1;}.article-card:hover::after {    left: 100%;}.article-card h3 {    font-family: var(--font-body);    font-weight: 700;    color: var(--primary-color);    text-shadow: 0 0 5px rgba(0, 255, 170, 0.5);}.article-card p {    font-family: var(--font-body);    font-size: 0.9rem;    color: var(--text-med);}/* ---------------------------------- *//* 5. STYLES DES PAGES ARTICLES (Contenu) *//* ---------------------------------- */.page-header {    padding: 8rem 0;    text-align: center;    background-color: transparent;}/* Contenu des articles */.article-content, .legal-content-section, .content-section {    background-color: var(--background-med);     border: 1px solid var(--border-color);    border-radius: var(--border-radius-md);    box-shadow: 0 0 15px rgba(0, 0, 0, 0.8);    padding: 2.5rem;    margin-top: 2.5rem;    max-width: 800px;    margin-left: auto;    margin-right: auto;}.article-content h1, .content-section h1 {    font-size: clamp(2.5rem, 5vw, 3rem);    font-weight: 700;    color: var(--primary-color);    margin-bottom: 2rem;    line-height: 1.2;}.article-content h2, .content-section h2 {    font-size: 1.75rem;    font-weight: 700;    color: var(--text-light);    margin-top: 2.5rem;    margin-bottom: 1rem;    border-bottom: 1px solid var(--border-color);    padding-bottom: 0.5rem;}.article-content h3, .content-section h3 {    font-size: 1.25rem;    font-weight: 700;    color: var(--primary-color);    margin-top: 1.5rem;    margin-bottom: 0.5rem;}.article-content p, .article-content li, .content-section p, .content-section li {    color: var(--text-med);    font-size: 1rem;    margin-bottom: 1rem;}.article-content .breadcrumb, .content-section .breadcrumb {    font-size: 0.9rem;    color: var(--text-med);    margin-bottom: 2rem;    text-align: left;}.article-content .breadcrumb a, .content-section .breadcrumb a {    color: var(--primary-color);    text-decoration: underline;}/* Blocs de Code (adapté du sombre au sombre) */.code-block {    background-color: var(--background-dark);     color: var(--text-light);    padding: 1rem;    border-radius: 0.5rem;    overflow-x: auto;    font-family: var(--font-code);    font-size: 0.875rem;    border: 1px solid var(--border-color);}/* Cartes de Concepts (adapté du clair au sombre) */.concept-card, .lang-card {    background-color: var(--background-light);     border: 1px solid var(--border-color);    border-radius: 0.5rem;    padding: 1.5rem;    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;}.concept-card:hover, .lang-card:hover {    transform: translateY(-3px);    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);    border-color: var(--primary-color);}.concept-card h3, .lang-card h3 {    color: var(--text-light); }.concept-card p, .lang-card p {    color: var(--text-med);}.lang-icon {    font-size: 2.5rem;    min-width: 2.5rem;}/* Concepts spécifiques (Cybersécurité / Légal) */.concept-item { /* Styles des articles légaux/cybersécurité */    display: flex; align-items: flex-start; margin-bottom: 1rem; background-color: var(--background-light);     padding: 1rem; border: 1px solid var(--border-color); border-radius: var(--border-radius-md);     box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);}.concept-item i { font-size: 1.5rem; margin-right: 1rem; color: var(--primary-color); flex-shrink: 0; }.concept-item div { flex-grow: 1; }.info-box { /* Boîte d'information Verte */    background-color: rgba(0, 255, 170, 0.1); border-left: 4px solid var(--primary-color); padding: 1rem;     margin-top: 2rem; margin-bottom: 2rem; color: var(--primary-color);}.callout { /* Boîte d'appel Jaune */    background-color: rgba(255, 255, 0, 0.1); border-left: 4px solid yellow; padding: 1rem;     margin-top: 2rem; font-style: italic; color: yellow;}.security-tip-card { /* Carte de conseil Verte */    background-color: rgba(0, 255, 170, 0.1); border-left: 4px solid var(--primary-color); padding: 1rem 1.5rem;     border-radius: 0.5rem; margin-bottom: 1rem; color: var(--primary-color);}.warning-card { /* Carte d'avertissement Rouge */    background-color: rgba(255, 0, 0, 0.1); border-left: 4px solid red; padding: 1rem 1.5rem;     border-radius: 0.5rem; margin-bottom: 1rem; color: red;}/* Styles pour le tableau d'urgence */.hero {    background: var(--background-med);    color: var(--text-light);    padding: 2.5rem;    border-radius: var(--border-radius-md);    text-align: center;    margin-bottom: 2.5rem;    border: 1px solid var(--border-color);    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);}.hero h1 {    font-size: clamp(2rem, 5vw, 3rem);    margin-bottom: 0.5rem;    font-weight: 700;    color: var(--primary-color);}.content-section {    background-color: var(--background-med);    border-radius: var(--border-radius-md);    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);    padding: 2.5rem;    margin-top: 2.5rem;}.table-custom {    width: 100%;    border-collapse: collapse;}.table-custom th, .table-custom td {    padding: 0.75rem;    border-bottom: 1px solid var(--border-color);    text-align: left;}.table-custom th {    background-color: var(--background-med);    color: var(--primary-color);    font-weight: 700;}.table-custom tbody tr:hover {    background-color: rgba(255, 255, 255, 0.05);}.table-custom tbody tr:nth-child(even) {    background-color: rgba(0, 0, 0, 0.1);}.btn-quick {    background-color: var(--primary-color);    color: var(--background-dark);    font-weight: 700;    padding: 0.75rem 1.5rem;    border-radius: 9999px;    transition: var(--transition-fast);    border: none;}.btn-quick:hover {    background-color: #00e797;    transform: translateY(-2px);}/* Styles Responsive du tableau d'urgence */@media (max-width: 768px) {    .table-custom thead { display: none; }    .table-custom, .table-custom tbody, .table-custom tr, .table-custom td {        display: block; width: 100%;    }    .table-custom tr {        margin-bottom: 1rem; border: 1px solid var(--border-color); border-radius: 0.5rem; overflow: hidden;    }    .table-custom td {        text-align: right; padding-left: 50%; position: relative; word-wrap: break-word; white-space: normal; border: none;    }    .table-custom td::before {        content: attr(data-label); left: 0; width: 45%; padding-left: 0.75rem;        font-weight: 700; text-align: left; color: var(--primary-color);    }    .table-custom td:last-child { border-bottom: none; }}/* Styles Desktop (>= 1024px) */@media (min-width: 1024px) {    /* Styles pour la navigation des pages de contenu */    .mobile-menu-btn { display: none; }    .main-nav {        position: static; width: auto; height: auto; background: none;         transform: none; transition: none; overflow-y: visible; visibility: visible;    }    .main-nav .nav-list { display: flex; gap: 0.5rem; }    .main-nav .nav-list a {        padding: 0.5rem 0.75rem; border-bottom: none; border-radius: 0.375rem;         color: var(--text-med);    }    .main-nav .nav-list a:hover { color: var(--primary-color); background-color: transparent; }}