/* ===== STYLES DES THÈMES ===== */

/* ==== BOUTON DE SWITCH ==== */
.theme-switch-container {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9999;
    transition: all 0.3s ease;
}

.theme-switch-button {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-radius: 30px;
    border: none;
    cursor: pointer;
    background: rgba(25, 25, 40, 0.8);
    backdrop-filter: blur(8px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    color: white;
    font-family: var(--font-primary);
    transition: all 0.3s ease;
}

.theme-switch-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.theme-icon {
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.theme-label {
    font-size: 14px;
    font-weight: 500;
}

/* Animation de transition entre thèmes */
.theme-transition-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    pointer-events: none;
    opacity: 0.8;
    transition: opacity 0.5s ease;
}

.theme-transition-overlay.fade-out {
    opacity: 0;
}

/* Animations de transition spécifiques */
.theme-transition-hacker {
    background-color: rgba(0, 20, 0, 0.9);
    background-image: linear-gradient(0deg, rgba(0, 255, 0, 0.1) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(0, 255, 0, 0.1) 1px, transparent 1px);
    background-size: 20px 20px;
    animation: glitch-transition 0.4s ease-out;
}

.theme-transition-retro {
    background-color: rgba(0, 0, 150, 0.9);
    background-image: radial-gradient(rgba(255, 255, 255, 0.2) 2px, transparent 2px);
    background-size: 15px 15px;
    animation: pixelate-transition 0.4s ease-out;
}

.theme-transition-corporate {
    background-color: rgba(255, 255, 255, 0.9);
    animation: fade-transition 0.4s ease-out;
}

/* Theme transition for default theme (original) */
.theme-transition-default {
    background-color: rgba(255, 255, 255, 0.9);
    animation: fade-transition 0.4s ease-out;
}

/* ==== THÈME HACKER (STYLE ANNÉES 2010 PLUS FROID) ==== */
.hacker {
    --bg-color: #000000;
    --text-color: #00ff41;
    --accent-color: #00ff41;
    --secondary-color: #008f11;
    --header-bg: rgba(0, 30, 0, 0.8);
    --panel-bg: rgba(0, 20, 0, 0.7);
    --panel-border: 1px solid rgba(0, 255, 65, 0.3);
    --skill-bar-bg: rgba(0, 50, 0, 0.5);
    --skill-level-bg: linear-gradient(90deg, #00ff41, #008f11);
    --matrix-opacity: 0.04;
    --header-height: 120px; /* Plus petit */
    font-family: 'IBM Plex Mono', monospace;
    cursor: default !important; /* Forcer le curseur visible */
}

/* Fond noir pour le thème hacker */
.hacker body {
    background-color: var(--bg-color) !important;
    color: var(--text-color) !important;
    font-family: 'Courier New', monospace !important;
}

/* Style des éléments dans le thème hacker */
.hacker h1, .hacker h2, .hacker h3, .hacker .name {
    color: var(--primary) !important;
    text-shadow: 0 0 5px rgba(0, 255, 65, 0.5) !important;
    font-family: 'Courier New', monospace !important;
}

.hacker .job-title {
    color: var(--secondary) !important;
    font-family: 'Courier New', monospace !important;
}

.hacker p, .hacker li {
    color: var(--text-color) !important;
    font-family: 'Courier New', monospace !important;
}

/* Ajuster la transparence de l'effet Matrix - augmentation de l'opacité */
.hacker .matrix-canvas {
    display: block !important;
    opacity: var(--matrix-opacity) !important;
    visibility: visible !important;
    z-index: 1 !important; /* Augmenté de -1 à 1 pour être au-dessus du fond */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none !important; /* S'assurer qu'on peut cliquer à travers */
}

/* Masquer le canvas WebGL dans le thème hacker */
.hacker #bg-canvas {
    opacity: 0 !important; 
    display: none !important; /* Forcer la disparition complète */
    visibility: hidden !important;
    z-index: -999 !important;
}

/* Boutons en style terminal pour le thème hacker */
.hacker button,
.hacker .button,
.hacker .theme-switch-button {
    background-color: rgba(0, 0, 0, 0.8) !important;
    color: var(--primary) !important;
    border: 1px solid var(--primary) !important;
    border-radius: 0 !important;
    font-family: 'Courier New', monospace !important;
    text-transform: uppercase !important;
    box-shadow: 0 0 10px rgba(0, 255, 65, 0.3) !important;
}

.hacker button:hover,
.hacker .button:hover,
.hacker .theme-switch-button:hover {
    background-color: rgba(0, 255, 65, 0.2) !important;
    box-shadow: 0 0 15px rgba(0, 255, 65, 0.5) !important;
}

/* Stylisation des conteneurs pour le thème hacker */
.hacker .glass-panel {
    background-color: rgba(13, 13, 13, 0.8) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid var(--primary) !important;
    box-shadow: 0 0 20px rgba(0, 255, 65, 0.3) !important;
}

/* Stylisation des scrollbars pour le thème hacker */
.hacker ::-webkit-scrollbar {
    width: 8px !important;
    height: 8px !important;
}

.hacker ::-webkit-scrollbar-track {
    background: #0d0d0d !important;
}

.hacker ::-webkit-scrollbar-thumb {
    background: var(--primary) !important;
    border-radius: 0 !important;
}

/* Animation de clignotement pour les éléments dans le thème hacker */
@keyframes hacker-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}

.hacker .blinking-cursor {
    animation: hacker-blink 1s infinite !important;
    display: inline-block !important;
}

/* Effets spécifiques au thème hacker */
.hacker .section-title, 
.hacker .name, 
.hacker .job-title {
    font-family: var(--font-mono) !important;
    font-weight: bold;
    color: var(--primary);
    letter-spacing: 1px;
    position: relative;
}

/* Style pour les paragraphes et textes */
.hacker .job-description, 
.hacker .project-description,
.hacker .about-text {
    color: var(--text-color);
    text-shadow: none;
    font-family: var(--font-mono) !important;
}

/* Style pour les lignes et séparateurs */
.hacker .section-line {
    background: var(--primary);
    height: 1px;
    box-shadow: none;
    opacity: 0.5;
}

/* Effet CRT pour le mode hacker */
.hacker::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(
        0deg,
        rgba(0, 0, 0, 0.1),
        rgba(0, 0, 0, 0.1) 1px,
        transparent 1px,
        transparent 2px
    );
    pointer-events: none;
    z-index: 9990;
    opacity: 0.3;
    animation: scan-lines 8s linear infinite;
}

/* Suppression du fond de 'pluie' matrix */
.hacker::after {
    display: none;
}

/* Effet de glitch pour le texte */
.hacker .glitch-effect {
    position: relative;
    animation: glitch 0.3s cubic-bezier(.25, .46, .45, .94) both infinite;
}

/* Styles pour les boutons */
.hacker button, 
.hacker .submit-button {
    background-color: var(--glass-bg);
    border: 1px solid var(--glass-border);
    color: var(--primary);
    text-shadow: none;
    box-shadow: none;
}

.hacker button:hover, 
.hacker .submit-button:hover {
    background-color: rgba(0, 255, 0, 0.1);
    box-shadow: 0 0 8px rgba(0, 255, 0, 0.2);
}

/* Style pour les barres de compétences */
.hacker .skill-bar {
    background-color: rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(0, 255, 0, 0.1);
}

.hacker .skill-level {
    background: var(--primary);
    box-shadow: none;
}

/* Styles pour les tags technologiques */
.hacker .job-tech-stack span,
.hacker .project-tech span {
    background-color: rgba(0, 0, 0, 0.7);
    border: 1px solid var(--glass-border);
    color: var(--primary);
    text-shadow: none;
}

/* Style pour les formulaires */
.hacker input, 
.hacker textarea {
    background-color: rgba(0, 0, 0, 0.8);
    border: 1px solid var(--glass-border);
    color: var(--primary);
    caret-color: var(--primary);
}

.hacker input:focus, 
.hacker textarea:focus {
    box-shadow: 0 0 5px rgba(0, 255, 0, 0.3);
    outline: none;
}

/* Animation de glitch pour le mode matrix */
@keyframes glitch {
    0% {
        transform: translate(0);
    }
    20% {
        transform: translate(-2px, 2px);
    }
    40% {
        transform: translate(2px, -2px);
    }
    60% {
        transform: translate(-2px, 0px);
    }
    80% {
        transform: translate(2px, -1px);
    }
    100% {
        transform: translate(0);
    }
}

@keyframes scan-lines {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 0 100%;
    }
}

@keyframes glitch-transition {
    0% {
        transform: scale(1.1);
        opacity: 0;
    }
    50% {
        transform: scale(1);
        opacity: 0.8;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

/* Correction du Mode Scanlines pour mode hacker */
.hacker-scan-line-effect {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(
        0deg,
        rgba(0, 0, 0, 0),
        rgba(0, 0, 0, 0) 3px,
        rgba(0, 255, 0, 0.02) 3px,
        rgba(0, 255, 0, 0.02) 4px
    );
    pointer-events: none;
    z-index: 9990;
    opacity: 0.3;
    mix-blend-mode: normal;
}

/* ==== THÈME RETRO 90s (STYLE PAGE WEB ANNÉES 90-95) ==== */
.retro {
    --bg-color: #c0c0c0;
    --primary-color: #000080;
    --secondary-color: #808080;
    --accent-color: #008080;
    --text-color: #000000;
    --text-secondary: #404040;
    --glass-bg: rgba(200, 200, 200, 0.85);
    --glass-border: rgba(128, 128, 128, 0.5);
    --terminal-bg: #000080;
    color: var(--text-color);
    background-color: var(--bg-color);
    /* Curseur par défaut pour tout le thème rétro */
    cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJTUUH5gsODQYqStjdBAAABOBJREFUWMPFlotTk2UYxn/ft9++fKBQoICEnMRDLo8zdFCzxbJmZnlp6ejmaCtXtbHVP9BazSzNdDqYZUvLpWJT13TlchgqKIccBEFOcljAx/ft/To4LBTmu9a7vb/nua/7fu7rvq9HiQgzWfc/HKe6JYW0BB//FEUxLDBiUrDW4xU2bvyQQspwLNFxDRFBKUXUwCul8k7MgaB49h5BRBARDAHbf3IynFnP3d4qqqJADMRoTWx5D9ev3+bTvRGgFVGjiEUHFJT8Hjz96QT9A6MYRoD0tAQOvv0i6zZUsO9IOlpgxIyi4TpaFFFRjnP7AXLzl7J95wlabjqZmprIe9vKqDzfxp7DWQAEolGCwQjGyIk5qsILOw+Jq+OhjIyOy+aXj8rBqk4JTTrk+RfL5HTNQ9FI4oVXZM2mr+TcxW7pHXgk2/dUSHQkImKM7bD98zcAwfCG6IkA3tH4+Y1dLAVtQm9vEEjG5LbQehdCbjtKhaHPjfZrTN0ygPDYs7d0lsQFQTRaK8AIoA14MG6jtXWA+PgQGKlMdhdht1dMh9XN+/cS8bgOTN6ajVf/YcBtEAhZsbvjeOzxG2Slx3Fq/zaGg1GSHAZoAwg+8MXhJIQqnJwzQaFzJxudh2NqDFfaYbr6Qnz9zeuszMshPTWBvv4gw14/yytKWVIcpru9hJ4eFycvxPHnlSCiwJU+jcgPJJKkbMrMyAMdpuDRdjbvS+b4+UpyMm3UXu2m6vwDmnt6WZbq461Nq9m6ZRNZhQu5f7+fdRXlNDSW0tm9loa6BdRejfDrUQMVKGbZ/ATUNHXgsA+RlupGdBu1NRdYUbaMjZtLRkOjBXRQ4XTE4bB5ABOtQ8TFTaC1h+ZGD7duKNq7wnhHA7jdJXgHU3EMFGJVbnTqNiAZpkaDZnIzLLQ0zSPZEU9aUoTWe1OULckmy3ELW9waEH3vWrIPBnDlFnN6x3qa6z2IApoaR/n58Bj+0JxRVUKc3xBGvhZWJ0MgZNDcMMjZs0MsKFzCtZPLGRvKIGQaRDQkJoYJVW/kxE+jFBarrpnfaiLMW9hFVk4JLa0l+IJzmHD1CbpL0D1TSW//EOh2XO4RNEF0+8yQSZ99h6xZCwQFrQ5a2gT/RJAvdztJSD1HQvIQ3hCMR/IJ+t0IijBxaJnAdDxIQ+Uazl8sx+EqoOhcNiUrTbZuEjCG6Lm/jrZOD0pZOPZjAhmpn5OfH6T+Ri5N7V5AfNNHY4S4aIRY1BqaGnrouHOB4uXZZKT0cP1SgIrVy0hL8lDXmEpYUlCGRkRw9zdSWjaMw9pIS0siIW0FQ4NU/F4XidVzf3mV33eYmC5aEomJwD09VNddYdHCXB4tbuHO7TlY7Qvp7lQsW/gQZSjChskcx3UiPod7bDF+v0HTDRdnTsBbH8ZTtOo+/lA9dXWCRn4zjYh6eqxiCiCiUKhYFtYa0QbDw15cCSH8owZ3O1ewbn0hyR1+nMPdZJe4qKs14vSjdJsxazcVOJZpShmmggXRCj3R8t8EmI3+BUCswOmfHQdP10KsM4wZ/r8WzEDi/wqwnIPT2z83pv/9fFTmJH7WMwA/PwA1tfqfB1AzW/5fdmAqxJymAmaVgs7OAM1NgZ+GR6L/YH8BsRUJYODw5kkAAAAASUVORK5CYII=") 10 10, auto !important;
}

/* Curseur pour les éléments interactifs (liens et boutons) */
.retro a, 
.retro button,
.retro .theme-switch-button,
.retro [role="button"],
.retro .clickable,
.retro input[type="submit"],
.retro input[type="button"] {
    cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJTUUH5gsODRk27afJXwAABTdJREFUSMftlU1oXFUUx3/n3vfefTOZmZeZqp2kST/SNE1bk0JLpaRYlCK1oFC7EBe6UCi4cCEUunEpbnTpQhFcKC50IRRc6KILodJSaKyW0KofaUia1KSfySQzk5l5896979x7XQxtJk0DunMv/C8X7jm/+3/nHO7VOMdD8+V2D+i+Bg+wHrYYe/PUk+8h8g5CERoDyOIKn3LalJaLEYOXsR9Qfj4vS9OpYHs4cFh9ZxFFTrfv0oi4BkGURWRXCrWjPRw4pL6lKZ+CbFxeF0ThfhApB05K99dANXa0hwOHVe8cDIi2P4jKxrVNXe2Y7ouh5NbCGh4rPj8Fy65sLK2i9m5LNxbvC1e9P13E1wkIVU67fVSk3dFSXRVYzaKp+xC/lfUdGyydK+MH5r6AS/vrCO6ycdsiNcwq4PY9YfJOdRzD8jqsrATfaQ0cItvlbNNsG4rLkCuFLGUXWCrNkPFL+FV+gGuFUWZLUywXZyiWclTWTxgvrvDL+DnmVsap1AwGrbUWCavKLwq5YrYDK5RX1fP0oUO8+NRBRHSC8e8CzLJ/UQmEyxe+ZzTzEcXCEt32E6jIE9VWsrJHPXkypZsEY+R6T35bm9bvf/j68Vnw3hdM9B574UMvk3/nw8lnPuHXO2fwCnN42VlntvCbm8lPu9f+YjLzM3dunyWXm9E2OlbFLUYR1Ynkk0efSTTEt23jXQW82NXpNVrSrbEkjI5OMpt77JHhvWr08gyZzZ5lduGE+u3Pd5nMnXWmslfcbH7G9bpj9fjx5wpG1zTJprboTj71YgFbSbSn8r9s5WKtCbHtWJZuJ1oNGnQEFUeNGkEiUaLRCMloBA1oASJCWWG9gBeGlHxLscbS29vDwQP72N65jY7OnRBLUgXqDdQZqDXgI4QaSiG0WBIGtbGkIxrPD7lbCjl94Se+Ona8dHPsRkkLCCCFsFwIKoJfEcLQEoYhQRjiByGeZwk8Qzm0BIHB80I8ryZLBSgAK9V4GsEHrjmrZ3/b1/b1u+/fhsaFtbRsJJ2CrtZ12lpatKrSWteXrg4iCmstfmigug3c6nFbTcaacPr3a/zwwffMzOYWQRoQmQXG6xU8AMwA43v27EkB7UBntSVr5zYB81Xbd20DVuprthFwGnj9HxFpnSYiA8DBDfcU8OdGIK3+O/4GKMgm/y5jWOsAAAAASUVORK5CYII=") 10 10, pointer !important;
}

/* Curseur de texte pour les champs de saisie */
.retro input[type="text"], 
.retro input[type="email"],
.retro input[type="password"],
.retro input[type="search"],
.retro input[type="tel"],
.retro input[type="url"],
.retro input:not([type]),
.retro textarea,
.retro [contenteditable="true"] {
    cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAgCAYAAAASYli2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJTUUH5gsODTwTtiiJRwAAA3VJREFUSMftlU1oXFUUx3/n3vfefTOZmZeZqp2kST/SNE1bk0JLpaRYlCK1oFC7EBe6UCi4cCEUunEpbnTpQhFcKC50IRRc6KILodJSaKyW0KofaUia1KSfySQzk5l5896979x7XQxtJk0DunMv/C8X7jm/+3/nHO7VOMdD8+V2D+i+Bg+wHrYYe/PUk+8h8g5CERoDyOIKn3LalJaLEYOXsR9Qfj4vS9OpYHs4cFh9ZxFFTrfv0oi4BkGURWRXCrWjPRw4pL6lKZ+CbFxeF0ThfhApB05K99dANXa0hwOHVe8cDIi2P4jKxrVNXe2Y7ouh5NbCGh4rPj8Fy65sLK2i9m5LNxbvC1e9P13E1wkIVU67fVSk3dFSXRVYzaKp+xC/lfUdGyydK+MH5r6AS/vrCO6ycdsiNcwq4PY9YfJOdRzD8jqsrATfaQ0cItvlbNNsG4rLkCuFLGUXWCrNkPFL+FV+gGuFUWZLUywXZyiWclTWTxgvrvDL+DnmVsap1AwGrbUWCavKLwq5YrYDK5RX1fP0oUO8+NRBRHSC8e8CzLJ/UQmEyxe+ZzTzEcXCEt32E6jIE9VWsrJHPXkypZsEY+R6T35bm9bvf/j68Vnw3hdM9B574UMvk3/nw8lnPuHXO2fwCnN42VlntvCbm8lPu9f+YjLzM3dunyWXm9E2OlbFLUYR1Ynkk0efSTTEt23jXQW82NXpNVrSrbEkjI5OMpt77JHhvWr08gyZzZ5lduGE+u3Pd5nMnXWmslfcbH7G9bpj9fjx5wpG1zTJprboTj71YgFbSbSn8r9s5WKtCbHtWJZuJ1oNGnQEFUeNGkEiUaLRCMloBA1oASJCWWG9gBeGlHxLscbS29vDwQP72N65jY7OnRBLUgXqDdQZqDXgI4QaSiG0WBIGtbGkIxrPD7lbCjl94Se+Ona8dHPsRkkLCCCFsFwIKoJfEcLQEoYhQRjiByGeZwk8Qzm0BIHB80I8ryZLBSgAK9V4GsEHrjmrZ3/b1/b1u+/fhsaFtbRsJJ2CrtZ12lpatKrSWteXrg4iCmstfmigug3c6nFbTcaacPr3a/zwwffMzOYWQRoQmQXG6xU8AMwA43v27EkB7UBntSVr5zYB81Xbd20DVuprthFwGnj9HxFpnSYiA8DBDfcU8OdGIK3+O/4GKMgm/y5jWOsAAAAASUVORK5CYII=") 10 10, text !important;
}

/* Curseur de sélection de texte */
.retro ::selection {
    background-color: #000080;
    color: white;
}

/* Curseur de redimensionnement horizontal */
.retro [style*="resize"] {
    cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAARdJREFUOI3t1D9Lw0AYBvDfXcxQsIPQtVvBTfo5OggiuHUS/A79Ai7iF9DJQdDZRRwEB7+AbutasMR2aS6JosUaTho7pBfulrt77nl+9+eeAwb4F4RhOK2Ueq6qBKABoJnJZJaUUk+qvkxEK7Ztc8MwarZtczab3SIirxuNQqHQSiaTt57nbZRKpRkielSNISJaIaLIdV22LIsdx+FisbhLRAddfv1wHGfLsqwvInpYWYuiCNlsdq5arW4DGAbQ7gP0gRa01jeWZa2Zpok2gNQ3QEQIguA5n8/vCCHei8XiPuoA8plFKeUZhkHlcvlYa30C4KLP/9FzLMYYfd+/jsPhMQCcw/MsEL0uyPTpE/Qx6QkCEAK4up1k1WMNPMAv4AMV0l+X1S4T6QAAAABJRU5ErkJggg==") 10 10, ew-resize !important;
}

/* Curseur de redimensionnement vertical */
.retro [style*="resize"] {
    cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAhCAYAAADv+OMSAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQtJREFUSInt1bFKA0EQBuDvxkIbixSJeIVdmkAewcpKsLCxsLD0CXwEC0Hs7H0EsbGxshIEIY1YWeURJKRIcbcWd4HFhFzuIGDhD8vuzs7Mzs7+uxS4QDPNSZIcJrH/Ax4xjCF+oxZ7LHBdmF+/A7vYyRjuYw/THMQ37OMbL3GJG+wVwI9xgz18xrqP2MVthN+j1wv4bwlHMfASnRDoRsArtHLgF+hH3UUE1GMML2MCjqL/KQFQD9fWI2AQA3XqeUfoDARbcR38jQKgE4OLOM0k8gTnYe0+T2ArOt9ymj7Cd5qZa+G5iESBcwXnD3jI7OlmzjnN2qbXUB/v2Ngcs7Tq3t5g/AAgaVxHtOqFGwAAAABJRU5ErkJggg==") 10 10, ns-resize !important;
}

/* Classe pour l'animation du clic Windows 95 */
.win95-click-animation {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
}

/* Style spécifique pour assurer que tout élément en mode rétro utilise les curseurs appropriés */
.retro * {
    cursor: inherit;
}

/* Style page web années 90 pour tous les éléments */
.retro * {
    font-family: "Times New Roman", serif !important;
    box-sizing: border-box;
}

/* Éléments centraux d'une page web années 90 */
.retro body {
    width: 800px;
    margin: 0 auto;
}

.retro .header {
    text-align: center;
    background-color: #000080;
    padding: 15px;
    margin-bottom: 20px;
    border: 2px solid #000000;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
}

.retro .header .name {
    color: #FFFF00;
    font-size: 36px;
    font-weight: bold;
    text-shadow: 2px 2px 2px #000000;
    margin: 0;
    letter-spacing: 2px;
}

.retro .job-title {
    color: #FFFFFF;
    font-size: 20px;
    margin-top: 5px;
}

.retro p, 
.retro li,
.retro .job-description, 
.retro .project-description {
    font-size: 14px;
    line-height: 1.5;
    color: #000000;
    text-shadow: none;
    text-align: justify;
}

.retro .section-title, 
.retro h2, 
.retro h3 {
    color: #000080;
    font-weight: bold;
    text-align: center;
    background-color: #c0c0c0;
    border: 1px solid #000000;
    padding: 5px;
    margin-top: 20px;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.retro .glass-panel {
    background-color: #FFFFCC;
    border: 2px solid #000000;
    box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
    margin-bottom: 15px;
    padding: 10px;
}

.retro .glass-panel::before {
    display: none;
}

.retro button, 
.retro .submit-button {
    background-color: #c0c0c0;
    border: 2px outset #c0c0c0;
    color: #000000;
    font-weight: bold;
    padding: 5px 10px;
    text-align: center;
    cursor: inherit;
    margin: 5px;
}

.retro button:active, 
.retro .submit-button:active {
    border-style: inset;
    background-color: #a0a0a0;
}

.retro .section-line {
    height: 2px;
    background-color: #FF00FF;
    border: none;
    margin: 15px 0;
}

.retro .job-tech-stack span,
.retro .project-tech span {
    background-color: #008080;
    color: #FFFFFF;
    padding: 2px 5px;
    margin: 2px;
    display: inline-block;
    font-size: 12px;
    border: 1px solid #000000;
}

.retro a, 
.retro a:visited {
    color: #0000FF !important;
    text-decoration: underline !important;
    font-weight: bold;
    cursor: inherit;
}

.retro a:hover {
    color: #FF00FF !important;
}

.retro img {
    border: 2px solid #000000;
    padding: 2px;
    background-color: #FFFFFF;
    display: block;
    margin: 0 auto;
}

/* Créer un compteur de visites rétro */
.retro-visitor-count {
    text-align: center;
    margin: 20px auto;
    padding: 5px;
    background-color: #FFFFFF;
    border: 1px solid #000000;
    width: 200px;
    font-size: 12px;
}

/* Bannière animée rétro "Under Construction" */
.retro-construction {
    text-align: center;
    margin: 20px auto;
    width: 100%;
}

.retro-construction img {
    display: inline-block;
    margin: 0 5px;
}

/* Icônes clignotantes style années 90 */
.retro .blink {
    animation: retroBlink 1s step-end infinite;
}

@keyframes retroBlink {
    50% { opacity: 0; }
}

/* Création d'une mise en page table typique des années 90 */
.retro .retro-table-layout {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

.retro .retro-table-layout td {
    border: 1px solid #000000;
    padding: 5px;
    vertical-align: top;
}

.retro .retro-table-layout td.sidebar {
    width: 150px;
    background-color: #c0c0c0;
}

.retro-counter {
    text-align: center;
    margin: 10px auto;
    font-size: 12px;
    color: #FF0000;
    font-weight: bold;
}

@media (max-width: 768px) {
    .retro body {
        width: 100%;
    }
}

/* ==== THÈME ENTREPRISE ==== */
.corporate {
    --bg-color: #ffffff;
    --primary-color: #1a3a6e;
    --secondary-color: #3d5a80;
    --accent-color: #2b59c3;
    --text-color: #333333;
    --text-secondary: #666666;
    --glass-bg: rgba(255, 255, 255, 0.85);
    --glass-border: rgba(200, 200, 220, 0.5);
    --terminal-bg: #1a3a6e;
    color: var(--text-color);
    background-color: var(--bg-color);
    cursor: default !important;
}

/* Styles spécifiques au thème entreprise */
.corporate .section-title, 
.corporate .name, 
.corporate .job-title {
    font-family: 'Segoe UI', Arial, sans-serif !important;
    color: #0052cc;
    text-shadow: none;
    letter-spacing: 0;
    position: relative;
    z-index: 10;
}

.corporate .section {
    padding-top: 30px !important;
    margin-bottom: 40px !important;
    position: relative;
}

.corporate .section-header {
    position: relative;
    z-index: 10;
    margin-bottom: 60px !important;
}

.corporate .glass-panel {
    background-color: white;
    border-radius: 5px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    border: 1px solid #e0e0e0;
    position: relative;
    z-index: 5;
    margin-top: 20px;
}

.corporate .glass-panel::before {
    opacity: 0;
}

.corporate .section-line {
    background: linear-gradient(90deg, transparent, var(--primary-color), transparent);
    height: 1px;
}

.corporate button, 
.corporate .submit-button {
    background-color: var(--primary-color);
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    transition: all 0.2s ease;
}

.corporate button:hover, 
.corporate .submit-button:hover {
    background-color: var(--secondary-color);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Effet de fade pour le mode entreprise */
.fade-in-effect {
    animation: fade-in 0.6s ease-in-out both;
}

@keyframes fade-in {
    0% {
        opacity: 0.5;
    }
    100% {
        opacity: 1;
    }
}

@keyframes fade-transition {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0.8;
    }
    100% {
        opacity: 0;
    }
}

/* Ajuster spécifiquement le positionnement dans la section compétences */
.corporate .skills-container {
    margin-top: 30px;
}

/* Ajuster spécifiquement le timeline pour éviter le chevauchement */
.corporate .timeline {
    margin-top: 40px;
}

/* Ajuster les projets pour éviter le chevauchement */
.corporate .projects-grid {
    margin-top: 30px;
}

/* ==== MEDIA QUERIES ==== */
@media (max-width: 768px) {
    .theme-switch-container {
        bottom: 15px;
        right: 15px;
    }
    
    .theme-switch-button {
        padding: 8px 12px;
    }
    
    .theme-label {
        display: none;
    }
    
    .theme-icon {
        font-size: 18px;
    }
}

/* Arrière-plans animés - uniquement pour le thème principal */
.hacker #bg-canvas,
.retro #bg-canvas,
.corporate #bg-canvas {
    opacity: 0 !important; 
    display: none !important; /* Forcer la disparition complète */
    visibility: hidden !important;
    z-index: -999 !important;
}

/* S'assurer que le fond animé reste visible pour le thème original */
body:not(.hacker):not(.retro):not(.corporate) #bg-canvas {
    opacity: 1 !important;
    display: block !important;
    visibility: visible !important;
}

/* Supprimer toutes les autres règles body.X que j'ai ajoutées */

/* Règles pour forcer le curseur visible dans tous les thèmes */
.hacker *, .corporate * {
    cursor: default !important;
}

.hacker body, .corporate body,
.hacker html, .corporate html {
    cursor: default !important;
}

/* S'assurer que l'effet matrix a toujours une opacité adaptée */
.hacker .matrix-canvas {
    opacity: var(--matrix-opacity) !important;
}

/* THEME CORPORATE */
.corporate {
    cursor: default !important;
} 