@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap);@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.header{background:#1a1a1a;box-shadow:0 2px 10px #0000001a;left:0;position:fixed;right:0;top:0;z-index:1000}.header-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.header-controls{align-items:center;display:flex;gap:1rem}.theme-toggle{background:none;border:none;color:var(--text-color);cursor:pointer;font-size:1.2rem;padding:.5rem;transition:color .3s ease}.theme-toggle:hover{color:var(--primary-color)}.logo{color:#fff;font-size:1.5rem;font-weight:700;text-decoration:none}.logo-icon{display:block;height:60px;width:auto}.logo:hover{color:#0984e3}.nav-menu{display:flex;gap:2rem}.nav-menu a{color:#fff;font-weight:500;position:relative;text-decoration:none;transition:color .3s ease}.nav-menu a:hover{color:#0984e3}.nav-menu a:after{background-color:#0984e3;bottom:-5px;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:0}.nav-menu a:hover:after{width:100%}.menu-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:6px;padding:.5rem;z-index:1001}.menu-toggle span{background-color:#fff;display:block;height:2px;transition:all .3s ease;width:25px}@media (max-width:768px){.menu-toggle{display:flex}.nav-menu{background:#1a1a1a;box-shadow:0 4px 6px #0000001a;flex-direction:column;gap:1rem;left:0;opacity:0;padding:1rem;position:fixed;right:0;top:70px;transform:translateY(-100%);transition:all .3s ease;visibility:hidden}.nav-menu.active{opacity:1;transform:translateY(0);visibility:visible}.menu-toggle.active span:first-child{transform:translateY(8px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-menu a{padding:.5rem 0;text-align:center;width:100%}.nav-menu a:after{display:none}}.hero{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;min-height:100vh;overflow:hidden;padding:2rem;position:relative}.hero:before{background:radial-gradient(circle at 50% 50%,#ffffff1a 0,#fff0 100%);bottom:0;content:"";left:0;opacity:.5;position:absolute;right:0;top:0;z-index:0}.hero-container{margin:0 auto;max-width:1200px;position:relative;z-index:1}.hero-content{animation:fadeInUp 1s ease-out;max-width:800px}.hero-title{color:#2d3436;font-size:3.5rem;font-weight:800;line-height:1.2;margin-bottom:1rem}.hero-subtitle{color:#0984e3;display:block;font-size:1.5rem;font-weight:500;margin-top:.5rem}.hero-description{color:#636e72;font-size:1.2rem;line-height:1.6;margin-bottom:2rem}.hero-cta{display:flex;gap:1rem;margin-bottom:2rem}.cta-button{border-radius:50px;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.cta-button.primary{background:#0984e3;color:#fff}.cta-button.primary:hover{background:#0873c4;transform:translateY(-2px)}.cta-button.secondary{background:#0000;border:2px solid #0984e3;color:#0984e3}.cta-button.secondary:hover{background:#0984e3;color:#fff;transform:translateY(-2px)}.hero-social{display:flex;gap:1.5rem}.hero-social a{color:#2d3436;font-size:1.5rem;transition:all .3s ease}.hero-social a:hover{color:#0984e3;transform:translateY(-3px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}.hero-description{font-size:1rem}.hero-cta{flex-direction:column}.cta-button{text-align:center}}.skills{background-color:#f5f6fa;padding:6rem 2rem}.skills-container{margin:0 auto;max-width:1200px}.skills-grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:repeat(2,1fr);margin-top:3rem}.skill-category{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:2rem;transition:transform .3s ease}.skill-category:hover{transform:translateY(-5px)}.category-title{border-bottom:2px solid #0984e3;color:#2d3436;font-size:1.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.skills-list{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));justify-items:center}.skill-item{align-items:center;display:flex;flex-direction:column;gap:.5rem;transition:transform .3s ease}.skill-item:hover{transform:translateY(-5px)}.skill-icon{height:50px;object-fit:contain;width:50px}.skill-name{color:#2d3436;font-size:.9rem;font-weight:500;text-align:center}.skill-info{display:flex;justify-content:space-between;margin-bottom:.5rem}.skill-percentage{color:#0984e3;font-weight:600}.skill-bar{background:#f1f2f6;border-radius:4px;height:8px;overflow:hidden;width:100%}.skill-progress{background:linear-gradient(90deg,#0984e3,#00b894);border-radius:4px;height:100%;position:relative;transition:width 1s ease-in-out}.skill-progress:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#ffffff1a,#fff3 50%,#ffffff1a);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (max-width:968px){.skills-grid{grid-template-columns:1fr}}@media (max-width:576px){.skills{padding:4rem 1rem}.skill-category{padding:1.5rem}.category-title{font-size:1.3rem}.skills-list{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(60px,1fr))}.skill-icon{height:40px;width:40px}}.experience{background-color:#fff;padding:6rem 2rem}.experience-container{margin:0 auto;max-width:1200px}.timeline{padding:2rem 0;position:relative}.timeline:before{background:#0984e3;content:"";height:100%;left:50%;position:absolute;transform:translateX(-50%);width:2px}.timeline-item{margin-bottom:3rem;position:relative;width:100%}.timeline-item:nth-child(odd) .timeline-content{margin-left:auto;padding-left:3rem}.timeline-item:nth-child(2n) .timeline-content{margin-right:auto;padding-right:3rem;text-align:right}.timeline-content{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:2rem;position:relative;transition:transform .3s ease;width:45%}.timeline-content:hover{transform:translateY(-5px)}.timeline-content:before{background:#0984e3;border-radius:50%;content:"";height:20px;position:absolute;top:20px;width:20px}.timeline-item:nth-child(odd) .timeline-content:before{right:-40px}.timeline-item:nth-child(2n) .timeline-content:before{left:-40px}.timeline-header{margin-bottom:1rem}.timeline-title{color:#2d3436;font-size:1.5rem;margin-bottom:.5rem}.timeline-period{color:#0984e3;font-weight:500}.timeline-company{margin-bottom:1rem}.company-name{color:#636e72;display:block;font-weight:500}.company-location{color:#636e72;font-size:.9rem}.timeline-description{color:#636e72;line-height:1.6;margin-bottom:1rem}.timeline-technologies{display:flex;flex-wrap:wrap;gap:.5rem}.technology-tag{background:#f1f2f6;border-radius:15px;color:#0984e3;font-size:.9rem;font-weight:500;padding:.3rem .8rem}@media (max-width:768px){.timeline:before{left:30px}.timeline-item:nth-child(2n) .timeline-content,.timeline-item:nth-child(odd) .timeline-content{margin-left:60px;padding-left:2rem;padding-right:2rem;text-align:left;width:calc(100% - 60px)}.timeline-item:nth-child(2n) .timeline-content:before,.timeline-item:nth-child(odd) .timeline-content:before{left:-40px}}@media (max-width:576px){.experience{padding:4rem 1rem}.timeline-content{padding:1.5rem}.timeline-title{font-size:1.3rem}}.education{background-color:#f5f6fa;padding:6rem 2rem}.education-container{margin:0 auto;max-width:1200px}.education-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:3rem}.education-card{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;overflow:hidden;padding:2rem;position:relative;transition:all .3s ease}.education-card:before{background:#0984e3;content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s ease;width:4px}.education-card:hover{transform:translateY(-5px)}.education-card:hover:before{width:8px}.education-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.education-degree{color:#2d3436;font-size:1.5rem;font-weight:600;margin:0}.education-status{border-radius:15px;font-size:.9rem;font-weight:500;padding:.3rem .8rem}.education-status.en.cours{background:#e3f2fd;color:#0984e3}.education-status.terminé{background:#e8f5e9;color:#00b894}.education-details{margin-bottom:1.5rem}.education-location,.education-period,.education-school{align-items:center;color:#636e72;display:flex;margin-bottom:.5rem}.education-location i,.education-period i,.education-school i{color:#0984e3;margin-right:.5rem;width:20px}.education-description{color:#636e72;line-height:1.6;margin:0}@media (max-width:768px){.education-grid{grid-template-columns:1fr}}@media (max-width:576px){.education{padding:4rem 1rem}.education-card{padding:1.5rem}.education-degree{font-size:1.3rem}}.projects{background-color:#f5f6fa;padding:6rem 2rem}.projects-container{margin:0 auto;max-width:1200px}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:3rem}.project-card{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-5px)}.project-image{border-bottom:1px solid #eee;height:200px;object-fit:cover;width:100%}.project-content{padding:1.5rem}.project-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:1rem}.project-title{color:#2d3436;font-size:1.5rem;font-weight:600;margin:0}.toggle-description{background:none;border:none;color:#0984e3;cursor:pointer;font-size:1.2rem;padding:.5rem;transition:transform .3s ease}.toggle-description.active{transform:rotate(180deg)}.project-description{color:#636e72;line-height:1.6;margin-bottom:1.5rem;max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease-out}.project-description.active{margin-top:1rem;max-height:500px;opacity:1;transition:max-height .3s ease-in,opacity .3s ease-in}.project-technologies{display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-start;margin-bottom:1.5rem}.tech-icon{height:30px;object-fit:contain;transition:transform .3s ease;width:30px}.tech-icon:hover{transform:translateY(-3px)}.project-links{display:flex;gap:1rem}.project-link{align-items:center;border-radius:5px;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem;text-decoration:none;transition:all .3s ease}.project-link.github{background:#2d3436;color:#fff}.project-link.github:hover{background:#1e272e}.project-link.demo{background:#0984e3;color:#fff}.project-link.demo:hover{background:#0873c4}.project-link i{font-size:1.1rem}@media (max-width:768px){.projects{padding:4rem 1rem}.projects-grid{grid-template-columns:1fr}.project-content{padding:1.5rem}.project-title{font-size:1.3rem}.tech-icon{height:25px;width:25px}.project-image{height:180px}}.contact{background-color:#fff;padding:6rem 2rem}.contact-container{margin:0 auto;max-width:1200px}.contact-content{margin-top:4.2rem}.contact-info{display:flex;gap:4rem;justify-content:center}.contact-column{display:flex;flex-direction:column;gap:2rem}.contact-item{align-items:flex-start;background:#f5f6fa;border-radius:10px;display:flex;gap:1rem;min-width:300px;padding:1.5rem;transition:transform .3s ease}.contact-item:hover{transform:translateY(-5px)}.contact-item i{color:#0984e3;font-size:1.5rem;width:24px}.contact-item h3{color:#2d3436;font-size:1.1rem;margin-bottom:.5rem}.contact-item a,.contact-item p{color:#636e72;text-decoration:none;transition:color .3s ease}.contact-item a:hover{color:#0984e3}.contact-form{background:#f5f6fa;border-radius:10px;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#2d3436;display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group textarea{background:#fff;border:2px solid #e1e1e1;border-radius:5px;padding:.8rem;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#0984e3;outline:none}.submit-button{background:#0984e3;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:600;padding:1rem 2rem;transition:all .3s ease;width:100%}.submit-button:hover{background:#0873c4;transform:translateY(-2px)}@media (max-width:768px){.contact-info{flex-direction:column;gap:2rem}.contact-column{width:100%}.contact-item{min-width:auto}}@media (max-width:576px){.contact{padding:4rem 1rem}.contact-form{padding:1.5rem}.contact-item{padding:1rem}}.footer{background-color:#2d3436;color:#fff;padding:1.5rem 1rem}.footer-container{margin:0 auto;max-width:1200px}.footer-content{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:repeat(3,1fr);margin-bottom:3rem}.footer-social{display:flex;gap:1.5rem;justify-content:center}.footer-social a{color:#fff;font-size:1.5rem;transition:all .3s ease}.footer-social a:hover{color:#0984e3;transform:translateY(-3px)}.footer-links{align-items:center;display:flex;flex-direction:column;gap:1rem}.footer-links a{color:#fff;text-decoration:none;transition:color .3s ease}.footer-links a:hover{color:#0984e3}.footer-info{text-align:center}.footer-info p{margin:.5rem 0}.footer-info p:first-child{font-size:1.2rem;font-weight:600}.footer-bottom{border-top:1px solid #ffffff1a;padding-top:2rem;text-align:center}.footer-bottom p{color:#ffffffb3;font-size:.9rem}@media (max-width:768px){.footer-content{gap:2rem;grid-template-columns:1fr}.footer-social{order:1}.footer-links{order:2}.footer-info{order:3}}@media (max-width:576px){.footer{padding:3rem 1rem 1.5rem}.footer-social{gap:1rem}.footer-social a{font-size:1.3rem}}*{box-sizing:border-box;margin:0;padding:0}:root{--primary-color:#0984e3;--secondary-color:#00b894;--text-color:#2d3436;--text-light:#636e72;--background-light:#f5f6fa;--white:#fff;--background-color:#fff;--card-bg:#fff;--card-shadow:0 4px 6px #0000001a}html{scroll-behavior:smooth}body{background-color:#fff;background-color:var(--background-color);color:#2d3436;color:var(--text-color);font-family:Inter,sans-serif;margin:0;padding:0;transition:background-color .3s ease,color .3s ease}.app{display:flex;flex-direction:column;min-height:100vh}main{flex:1 1;padding-top:80px}.section-title{color:#2d3436;color:var(--text-color);font-size:2.5rem;margin-bottom:2rem;text-align:center}.card{background-color:#fff;background-color:var(--card-bg);border-radius:8px;padding:1.5rem;transition:all .3s ease}.card,.card:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--card-shadow)}.card:hover{transform:translateY(-5px)}a{color:#0984e3;color:var(--primary-color);text-decoration:none;transition:color .3s ease}a:hover{color:#00b894;color:var(--secondary-color)}button{background-color:#0984e3;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s ease}button:hover{background-color:#00b894;background-color:var(--secondary-color)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1200px){.section-title{font-size:2.2rem}}@media (max-width:768px){.section-title{font-size:2rem}}@media (max-width:576px){.section-title{font-size:1.8rem}}
/*# sourceMappingURL=main.899c31de.css.map*/