/* Réinitialisation et styles de base */ :root { --accent-color: #1abc9c; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Open Sans', sans-serif; background-color: #121212; color: #e9ecef; margin: 0; padding: 0; } /* Liens globaux */ a { text-decoration: none; color: var(--accent-color); position: relative; transition: color 0.3s ease; } a:hover { color: #16a085; } a::after { content: ''; position: absolute; width: 100%; height: 2px; bottom: -2px; left: 0; background-color: var(--accent-color); transform: scaleX(0); transition: transform 0.3s ease; } a:hover::after { transform: scaleX(1); } /* Header et Navigation */ header { background-color: #1e1e1e; padding: 20px 0; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transition: transform 0.3s ease; } header.scroll-up { transform: translateY(0); } header.scroll-down { transform: translateY(-100%); } nav { display: flex; justify-content: space-between; align-items: center; width: 95%; max-width: 1200px; margin: 0 auto; } nav h1 { font-size: 24px; color: #e9ecef; transition: transform 0.3s ease; } nav h1:hover { transform: scale(1.05); } nav ul { display: flex; list-style: none; margin: 0 auto; gap: 2rem; } nav ul li { margin-left: 0; position: relative; } nav ul li a { color: #e9ecef; font-weight: 500; padding: 5px 0; position: relative; transition: color 0.3s ease; } nav ul li a:hover { color: var(--accent-color); } nav ul li a::after { content: ''; position: absolute; width: 100%; height: 2px; bottom: -2px; left: 0; background-color: var(--accent-color); transform: scaleX(0); transition: transform 0.3s ease; } nav ul li a:hover::after { transform: scaleX(1); } #settings-icon { margin-left: 0; transition: transform 0.3s ease; } /* Titres globaux */ h2 { font-size: 36px; color: var(--accent-color); text-align: center; margin-bottom: 20px; transition: transform 0.3s ease; } h2:hover { transform: scale(1.02); } h3 { font-size: 24px; color: var(--accent-color); margin-top: 20px; transition: transform 0.3s ease; } h3:hover { transform: translateX(5px); } /* Boutons avec animation améliorée */ .btn { display: inline-block; margin-top: 20px; padding: 10px 20px; background-color: var(--accent-color); color: #121212 !important; text-decoration: none; font-weight: 600; border-radius: 5px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .btn::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 50%; transform: translate(-50%, -50%); transition: width 0.8s ease, height 0.6s ease; } .btn:hover::before { width: 600px; height: 300px; } .btn:hover { color: #121212 !important; transform: scale(1.1) translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.3); } .btn:active { transform: scale(0.95); } /* Sections de contenu */ section { width: 90%; max-width: 800px; margin: 100px auto; text-align: center; } .skill p { opacity: 0; transform: translateY(20px); animation: fadeInUp 0.6s ease forwards; } .skill:hover p { opacity: 1; transform: translateX(20px); } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } section p { font-size: 18px; color: #e9ecef; line-height: 1.6; margin-top: 10px; } /* Pied de page */ footer { background-color: #1e1e1e; text-align: center; padding: 20px; margin-top: 100px; color: #e9ecef; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transition: transform 0.3s ease; } footer:hover { transform: translateY(-5px); } footer p { color: #e9ecef; font-size: 14px; transition: opacity 0.3s ease; } footer:hover p { opacity: 0.8; } #scroll-to-top { position: fixed; bottom: 20px; right: 20px; background-color: #2d2d2d; color: #e9ecef; border: none; border-radius: 50%; width: 50px; height: 50px; text-align: center; line-height: 50px; font-size: 20px; cursor: pointer; display: none; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } #scroll-to-top:hover { background-color: #3d3d3d; transform: scale(1.1) translateY(-5px); box-shadow: 0 5px 15px rgba(0,0,0,0.3); } /* Sélecteur de couleur avec animations */ .color-picker { position: absolute; top: 60px; right: 20px; background-color: #2d2d2d; padding: 15px; border-radius: 5px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4); z-index: 1000; color: #e9ecef; transform-origin: top right; transition: transform 0.3s ease, opacity 0.3s ease; } .color-picker.hidden { transform: scale(0.95); opacity: 0; } .color-picker span { display: block; color: #e9ecef; margin-bottom: 10px; transition: transform 0.3s ease; } .color-picker label { display: flex; align-items: center; margin: 8px 0; color: #e9ecef; cursor: pointer; transition: transform 0.3s ease; padding: 4px 0; } .color-picker label:hover { transform: translateX(5px); } .color-picker input[type="radio"] { appearance: none; -webkit-appearance: none; -moz-appearance: none; width: 16px; height: 16px; border: 2px solid #e9ecef; border-radius: 50%; margin-right: 10px; position: relative; cursor: pointer; } .color-picker input[type="radio"]:checked { background-color: var(--accent-color); border-color: var(--accent-color); } .color-picker input[type="radio"]:checked::after { content: ''; position: absolute; width: 8px; height: 8px; background-color: #2d2d2d; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -50%); } /* Icône des paramètres améliorée */ #settings-icon { background: none; border: none; color: #e9ecef; font-size: 24px; cursor: pointer; padding: 5px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } #settings-icon:hover { transform: rotate(90deg) scale(1.1); text-shadow: 0 0 10px rgba(255,255,255,0.5); } /* Style pour les éléments utilisant la couleur d'accentuation */ a:hover, .project-card:hover, h2, h3 { color: var(--accent-color); transition: all 0.3s ease; } .btn, .btn:hover { color: #121212 !important; } .strong_word { color: var(--accent-color); transition: transform 0.3s ease; } .strong_word:hover { transform: scale(1.1); } .project-card, .skill-item { border-color: #2d2d2d; transition: all 0.3s ease; } .nav-controls { display: flex; align-items: center; gap: 0.5rem; } .language-selector-container { position: relative; } #language-selector { background-color: #2d2d2d; color: #e9ecef; border: none; padding: 8px 25px 8px 12px; border-radius: 5px; font-size: 14px; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); appearance: none; -webkit-appearance: none; -moz-appearance: none; } #language-selector:hover { background-color: #3d3d3d; transform: scale(1.05); } .language-selector-container::after { content: '▼'; font-size: 10px; color: #e9ecef; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); pointer-events: none; transition: transform 0.3s ease; } .language-selector-container:hover::after { transform: translateY(-50%) rotate(180deg); }