:root{--primary:#884898;--primary-dark:#5a2f66;--accent:#ab5cc2;--bg-color:#fff;--dot-color:#e0e0e0;--surface:#fff;--text-primary:rgba(0,0,0,.87);--text-secondary:rgba(0,0,0,.6);--divider:rgba(0,0,0,.12);--nav-bg:rgba(255,255,255,.95);--nav-text:rgba(0,0,0,.87);--shadow-1:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);--shadow-2:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);--shadow-4:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22);--scrollbar-bg:var(--bg-color);--scrollbar-thumb:#bdbdbd;--scrollbar-thumb-hover:var(--primary)}body.dark-theme{--bg-color:#121212;--dot-color:#2a2a2a;--surface:#1e1e1e;--text-primary:rgba(255,255,255,.87);--text-secondary:rgba(255,255,255,.6);--divider:rgba(255,255,255,.12);--nav-bg:rgba(30,30,30,.95);--nav-text:rgba(255,255,255,.87);--primary:#a361b3;--scrollbar-bg:var(--bg-color);--scrollbar-thumb:#616161;--scrollbar-thumb-hover:var(--primary)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Roboto',sans-serif;color:var(--text-primary);line-height:1.5;scroll-behavior:smooth;transition:background-color .8s ease,color .8s ease;background-color:var(--bg-color);background-image:radial-gradient(var(--dot-color) 1.5px,transparent 1.5px);background-size:20px 20px}.text-center{text-align:center}.mt-2{margin-top:32px}.bg-light{background-color:var(--surface);transition:background-color .8s ease}html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-bg)}::-webkit-scrollbar{width:12px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-bg)}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:20px;border:3px solid var(--scrollbar-bg);transition:background-color .3s ease}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.md-appbar{background-color:var(--nav-bg);color:var(--nav-text);box-shadow:var(--shadow-2);position:fixed;top:0;width:100%;z-index:100;transition:background-color .8s ease,color .8s ease;backdrop-filter:blur(4px)}.nav-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:12px 24px}.nav-content .logo{display:flex;align-items:center;gap:12px;font-size:1.25rem;font-weight:500;color:var(--primary)}.nav-content .logo img{height:67px}.nav-links a{color:var(--nav-text);text-decoration:none;margin-right:24px;font-weight:500;text-transform:uppercase;font-size:.875rem}#lang-switch{background:transparent;color:var(--nav-text);border:1px solid var(--divider);padding:4px;border-radius:4px;cursor:pointer}#lang-switch option{color:#000}.hero{height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 24px 0 24px;background-color:transparent}.hero h1{font-size:2.5rem;font-weight:300;letter-spacing:-.5px;margin-bottom:16px}.skills-subtitle{width:80vw;max-width:1400px;margin:0 auto 24px auto;display:flex;justify-content:center}.mindmap-viewport{position:relative;width:100%;height:300px;overflow:hidden;cursor:default;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 15%,black 85%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 15%,black 85%,transparent 100%)}.mindmap-track{display:flex;width:max-content;height:100%}.mindmap-section{position:relative;width:2400px;height:300px;flex-shrink:0}.mindmap-lines{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.mindmap-lines line{stroke:var(--divider);stroke-width:2px;stroke-dasharray:4;transition:stroke .8s ease}.skill-chip{position:absolute;z-index:2;background-color:var(--surface);color:var(--text-primary);padding:6px 12px;border-radius:16px;box-shadow:var(--shadow-1);font-size:.8rem;font-weight:500;transform:translate(-50%,-50%);transition:box-shadow .3s,color .3s,background-color .3s ease,transform .3s;user-select:none}.skill-chip:hover{box-shadow:var(--shadow-4);color:#fff;background-color:var(--primary);transform:translate(-50%,-50%) scale(1.15);z-index:3}.chip-flag{background-color:var(--accent);color:#fff;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:4px;margin-right:6px;text-transform:uppercase;vertical-align:middle;display:inline-block;line-height:1}#timeline{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:100px 24px 60px 24px;box-sizing:border-box}.timeline-container{position:relative;width:100%;margin:20px 0;padding:50px 0;overflow-x:auto;cursor:grab;user-select:none}.timeline-container:active{cursor:grabbing}.timeline-axis{position:absolute;top:200px;left:0;right:40px;height:3px;background-color:var(--primary);z-index:1}.timeline-axis::after{content:'';position:absolute;right:-15px;top:50%;transform:translateY(-50%);border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:16px solid var(--primary)}.timeline-wrapper{display:flex;justify-content:flex-start;align-items:flex-start;position:relative;z-index:2;min-width:1100px;padding:0 60px;gap:40px;transition:gap .4s ease}.timeline-node-group{display:flex;flex-direction:column;align-items:center;position:relative;width:250px;flex-shrink:0;transition:width .4s cubic-bezier(.25,.8,.25,1),margin .4s cubic-bezier(.25,.8,.25,1)}.timeline-node-group.is-expanded{margin:0 20px}.timeline-node-group.wide{width:250px}.timeline-node-group.wide.is-expanded{width:520px;margin:0 30px}.timeline-dot{width:16px;height:16px;background-color:var(--primary);border:3px solid var(--surface);border-radius:50%;z-index:3;box-shadow:var(--shadow-1);flex-shrink:0}.timeline-stem{width:2px;height:35px;border-left:2px dashed var(--primary)}.timeline-node{width:100%}.timeline-node.top{margin-bottom:0;width:250px}.implementation-container{display:none;opacity:0;transition:opacity .4s ease}.timeline-node-group.is-expanded .implementation-container{display:flex;opacity:1}.timeline-node-group.is-expanded .timeline-node.bottom{display:block;opacity:1}.timeline-branch-wrapper{flex-direction:column;align-items:center;width:100%}.timeline-branch-stem{width:2px;height:20px;border-left:2px dashed var(--primary)}.timeline-branch-horizontal{width:50%;height:20px;border-top:2px dashed var(--primary);border-left:2px dashed var(--primary);border-right:2px dashed var(--primary)}.timeline-cards-row{display:flex;gap:16px;width:100%;justify-content:center}.timeline-cards-row .md-card{flex:1;max-width:250px}.md-card.company-card{border:2px solid transparent;transition:border-color .3s ease,box-shadow .3s ease}.timeline-node-group.is-expanded .md-card.company-card{border-color:var(--primary);box-shadow:var(--shadow-4)}.md-btn{display:inline-block;padding:10px 16px;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.75px;border-radius:4px;cursor:pointer;text-decoration:none;transition:background-color .3s,box-shadow .3s,transform .2s;border:none}.md-btn-primary{background-color:var(--primary);color:#fff;box-shadow:var(--shadow-1)}.md-btn-primary:hover{background-color:var(--primary-dark);box-shadow:var(--shadow-2);transform:translateY(-2px)}.md-btn:disabled,.md-btn-primary:disabled{background-color:var(--primary);opacity:.55;color:#fff;box-shadow:var(--shadow-1);cursor:not-allowed;border:2px dashed var(--primary-dark)}.md-btn-primary:disabled:hover{transform:none;box-shadow:var(--shadow-1)}.section{padding:80px 24px;max-width:1400px;margin:0 auto}.section-title{font-size:2.125rem;font-weight:400;margin-bottom:40px;text-align:center}#contact{border:2px solid var(--primary);border-radius:12px;box-shadow:var(--shadow-4);padding:60px 24px;margin-top:40px;margin-bottom:40px;background:var(--surface);position:relative;overflow:hidden;max-width:1200px}#contact::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--primary),var(--accent))}#contact .section-title{color:var(--primary);font-weight:500;margin-bottom:16px}#contact p{font-size:1.1rem;color:var(--text-primary)}.md-card{background:var(--surface);border-radius:8px;box-shadow:var(--shadow-1);transition:box-shadow .3s,transform .3s;overflow:hidden;cursor:pointer;width:100%}.md-card:hover{box-shadow:var(--shadow-4);transform:translateY(-4px)}.md-card-content{padding:14px}.md-card-content h3{font-size:1.05rem;font-weight:500;margin-bottom:6px}.md-card-content p{color:var(--text-secondary);font-size:.825rem;line-height:1.4}.md-card-img{height:110px;width:100%;background-color:var(--surface);border-bottom:1px solid var(--divider)}.img-project-1{background-image:url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=600&q=80');background-size:cover;background-position:center}.img-project-2{background-image:url('https://images.unsplash.com/photo-1461749280684-dccba630e2f6?auto=format&fit=crop&w=600&q=80');background-size:cover;background-position:center}.img-project-3{background-image:url('https://images.unsplash.com/photo-1451187580459-43490279c0fa?auto=format&fit=crop&w=600&q=80');background-size:cover;background-position:center}.img-project-4{background-image:url('https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&w=600&q=80');background-size:cover;background-position:center}.brand-logo{background-size:contain;background-position:center;background-repeat:no-repeat;background-color:#fff}.logo-decathlon{background-image:url('https://www.danstapub.com/wp-content/uploads/2024/03/Wolff_Olins_Decathlon_Press_02_Logo_1920x1280.jpg')}.logo-wiiisdom{background-image:url('https://mms.businesswire.com/media/20231003449511/fr/1902671/22/Logo-Wiiisdom-1200x90.jpg')}.logo-imsa{background-image:url('https://www.ellesbougent.com/documents/partenaires/247/bm_imsa.logo.jpg')}.md-footer{background-color:var(--surface);padding:24px;text-align:center;color:var(--text-secondary);font-size:.875rem;box-shadow:0 -1px 3px rgba(0,0,0,.12)}@media(max-width:900px){.timeline-container{overflow-x:hidden;padding:0;cursor:default}.timeline-axis{left:20px;top:0;bottom:0;width:3px;height:100%}.timeline-axis::after{right:auto;left:-6px;bottom:-15px;top:auto;border-left:8px solid transparent;border-right:8px solid transparent;border-top:16px solid var(--primary)}.timeline-wrapper{flex-direction:column;min-width:auto;padding:0 0 0 50px;gap:30px}.timeline-node-group,.timeline-node-group.wide{width:100%;margin:0!important}.timeline-node.top{width:100%}.timeline-cards-row{flex-direction:column}.timeline-branch-wrapper,.timeline-branch-stem,.timeline-branch-horizontal{display:none}.timeline-node-group.is-expanded .timeline-cards-row{display:flex}.timeline-stem{display:none}.timeline-dot{position:absolute;left:-38px;top:20px}}@media(max-width:600px){.hero h1{font-size:2rem}.nav-links a{display:none}}.md-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;backdrop-filter:blur(5px)}.md-modal.active{opacity:1;visibility:visible}.md-modal-surface{background-color:var(--surface);width:80vw;height:80vh;max-width:none;border-radius:8px;box-shadow:var(--shadow-4);overflow-y:auto;position:relative;transform:scale(.9);transition:transform .3s cubic-bezier(.25,.8,.25,1)}.md-modal.active .md-modal-surface{transform:scale(1)}.md-modal-close{position:absolute;top:16px;right:16px;background:rgba(0,0,0,.5);color:#fff;border:none;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;transition:background .3s}.md-modal-close:hover{background:rgba(0,0,0,.8)}.md-modal-header{height:200px;width:100%;background-size:cover;background-position:center;border-bottom:1px solid var(--divider)}.md-modal-header.modal-brand{background-size:contain;background-repeat:no-repeat;background-color:#fff}.md-modal-content{padding:24px}.md-modal-content h3{font-size:1.5rem;margin-bottom:16px;color:var(--primary)}.md-modal-content p,.md-modal-content ul{color:var(--text-secondary);font-size:1rem;margin-bottom:16px}}