:root{--primary-color: #140C45;--secondary-color: #1D1456;--accent-color: #A99BE9;--text-color: #F5F5F7;--text-secondary: #B8B8C7;--font-sans: "Playfair Display", "Cormorant Garamond", serif;--font-body: "Montserrat", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:62.5%}body{font-family:var(--font-body);background-color:var(--primary-color);color:var(--text-color);line-height:1.6;font-size:1.6rem;overflow-x:hidden}.container{max-width:1200px;margin:0 auto;padding:0 2rem}section{padding:8rem 0;position:relative;overflow:visible;min-height:50vh;width:100%;display:block}.glass-card{background:rgba(29,20,86,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:10px;border:1px solid rgba(169,155,233,.1);padding:2rem;box-shadow:0 8px 32px #0003;transition:all .3s ease;width:100%;display:block;margin-bottom:2rem}.modal-3d{transform-style:preserve-3d;perspective:1000px;transition:transform .5s cubic-bezier(.175,.885,.32,1.275)}.modal-3d:hover{transform:translateY(-5px) rotateX(5deg) rotateY(5deg);box-shadow:0 15px 35px #0000004d,0 5px 15px #a99be91a}.modal-3d:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(169,155,233,.1) 0%,rgba(169,155,233,0) 100%);border-radius:10px;z-index:-1;opacity:0;transition:opacity .3s ease}.modal-3d:hover:before{opacity:1}.btn{background-color:transparent;border:1px solid var(--accent-color);color:var(--accent-color);padding:1rem 2rem;border-radius:4px;font-size:1.4rem;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block;position:relative;overflow:hidden;font-family:var(--font-sans);letter-spacing:1px}.btn:hover{background-color:#a99be91a}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(169,155,233,.2),transparent);transition:all .6s ease}.btn:hover:before{left:100%}.btn-subtle{background-color:transparent;border:1px solid rgba(169,155,233,.3);color:var(--text-secondary);padding:.8rem 1.5rem;font-size:1.3rem;opacity:.8;box-shadow:none}.btn-subtle:hover{border-color:var(--accent-color);color:var(--accent-color);opacity:1;background-color:#a99be90d}.header{position:fixed;top:0;left:0;width:100%;padding:2rem 0;z-index:100;transition:all .3s ease}.header.scrolled{background:rgba(20,12,69,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 0;box-shadow:0 10px 30px -10px #000000b3}.nav{display:flex;justify-content:space-between;align-items:center}.logo{font-size:2.8rem;font-weight:700;color:var(--accent-color);position:relative;font-family:var(--font-sans)}.logo:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background-color:var(--accent-color);transition:width .3s ease}.logo:hover:after{width:100%}.nav-links{display:flex;list-style:none}.nav-links li{margin-left:3rem}.nav-links a{color:var(--text-color);text-decoration:none;font-size:1.6rem;transition:all .3s ease;position:relative;padding:.5rem 0;font-family:var(--font-sans);letter-spacing:1px}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--accent-color);transition:width .3s ease}.nav-links a:hover{color:var(--accent-color)}.nav-links a:hover:after{width:100%}.mobile-nav-toggle{display:none;background:transparent;border:none;cursor:pointer;z-index:101}.mobile-nav-toggle span{display:block;width:25px;height:2px;background-color:var(--accent-color);margin:5px 0;transition:all .3s ease}.mobile-nav-toggle span.active:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-nav-toggle span.active:nth-child(2){opacity:0}.mobile-nav-toggle span.active:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}@media (max-width: 768px){.nav-links{position:fixed;top:0;right:-100%;width:70%;height:100vh;background:var(--secondary-color);flex-direction:column;justify-content:center;align-items:center;transition:all .5s ease;z-index:100}.nav-links.active{right:0;box-shadow:-10px 0 30px #00000080}.nav-links li{margin:2rem 0}.nav-links a{font-size:1.8rem}.mobile-nav-toggle{display:block}}.hero{display:flex;align-items:center;padding-top:10rem;position:relative;overflow:hidden;min-height:100vh}.hero:before{content:"";position:absolute;top:0;right:0;width:100%;height:100%;background:radial-gradient(circle at 70% 50%,rgba(169,155,233,.1),transparent 50%);z-index:-1}.hero-content{max-width:800px;position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.hero-text{grid-column:1 / 2}.profile-photo-container{grid-column:2 / 3;display:flex;justify-content:center;align-items:center}.profile-photo{width:280px;height:280px;border-radius:50%;object-fit:cover;border:3px solid var(--accent-color);box-shadow:0 0 20px #a99be94d;transition:transform .5s cubic-bezier(.175,.885,.32,1.275)}.profile-photo:hover{transform:scale(1.05) rotate(2deg);box-shadow:0 0 30px #a99be980}.intro-text{color:var(--accent-color);font-size:1.8rem;margin-bottom:1.5rem;font-family:var(--font-sans);letter-spacing:2px;position:relative}.name{font-size:7rem;font-weight:700;margin-bottom:1rem;color:var(--text-color);position:relative;display:inline-block;font-family:var(--font-sans);letter-spacing:2px}.name:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:4px;background-color:var(--accent-color);transform:scaleX(0);transform-origin:left;transition:transform .5s ease}.hero:hover .name:after{transform:scaleX(1)}.tagline{font-size:4.2rem;font-weight:600;margin-bottom:2rem;color:var(--text-secondary);font-family:var(--font-sans);position:relative}.description{font-size:1.8rem;color:var(--text-secondary);margin-bottom:3rem;max-width:540px;font-family:var(--font-body);line-height:1.8;position:relative}.highlight{color:var(--accent-color);font-weight:600;display:block;margin-top:1rem}.about-text{margin:3rem 0}.about-text p{margin-bottom:2rem;font-size:1.8rem;color:var(--text-secondary);font-family:var(--font-body);line-height:1.8;position:relative}.hero-buttons{display:flex;gap:2rem;margin-top:2rem}.parallax-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden}.parallax-shape{position:absolute;border-radius:50%;background:rgba(169,155,233,.1);filter:blur(40px)}.shape-1{width:300px;height:300px;top:10%;right:10%}.shape-2{width:200px;height:200px;bottom:20%;left:5%}.shape-3{width:150px;height:150px;top:40%;left:30%}.scroll-indicator{position:absolute;bottom:5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.mouse{width:30px;height:50px;border:2px solid var(--accent-color);border-radius:20px;position:relative}.wheel{width:6px;height:6px;background-color:var(--accent-color);border-radius:50%;position:absolute;top:10px;left:50%;transform:translate(-50%);animation:scroll 1.5s infinite}@keyframes scroll{0%{opacity:1;top:10px}to{opacity:0;top:30px}}.arrow-scroll{margin-top:15px}.arrow-scroll span{display:block;width:10px;height:10px;border-bottom:2px solid var(--accent-color);border-right:2px solid var(--accent-color);transform:rotate(45deg);margin:-5px;animation:arrow 1.5s infinite}.arrow-scroll span:nth-child(2){animation-delay:.2s}.arrow-scroll span:nth-child(3){animation-delay:.4s}@keyframes arrow{0%{opacity:0;transform:rotate(45deg) translate(-10px,-10px)}50%{opacity:1}to{opacity:0;transform:rotate(45deg) translate(10px,10px)}}.section-title{font-size:3.6rem;font-weight:700;margin-bottom:4rem;display:flex;align-items:center;font-family:var(--font-sans);letter-spacing:1px;position:relative;width:100%}.section-title span{color:var(--accent-color);font-size:2.4rem;margin-right:1rem;font-family:var(--font-sans)}.section-title:after{content:"";display:block;height:1px;width:300px;background-color:var(--accent-color);margin-left:2rem;opacity:.3}.projects{padding-top:8rem;padding-bottom:8rem;position:relative;z-index:1}.project-card{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-bottom:5rem;padding:3rem;position:relative}.project-card.reverse{grid-template-columns:1fr 1fr;direction:rtl}.project-card.reverse .project-content{direction:ltr}.project-content{position:relative}.project-title{font-size:2.8rem;margin-bottom:2rem;color:var(--text-color);position:relative;display:inline-block;font-family:var(--font-sans);letter-spacing:1px}.project-title:after{content:"";position:absolute;bottom:-5px;left:0;width:50px;height:2px;background-color:var(--accent-color);transition:width .3s ease}.project-card:hover .project-title:after{width:100%}.project-description{position:relative}.project-description p{font-size:1.6rem;color:var(--text-secondary);margin-bottom:2rem;font-family:var(--font-body);line-height:1.8}.project-tech-list{display:flex;flex-direction:column;list-style:none;margin-bottom:2rem}.project-tech-list li{margin-bottom:1rem;font-size:1.4rem;color:var(--text-secondary);position:relative;padding-left:2rem;font-family:var(--font-body)}.project-tech-list li:before{content:"▹";position:absolute;left:0;color:var(--accent-color)}.project-links{display:flex;gap:2rem}.project-image{position:relative;height:300px;overflow:hidden;border-radius:10px;background:linear-gradient(135deg,var(--secondary-color),var(--primary-color))}.project-illustration{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}.project-svg{width:100%;height:100%;transform-origin:center;transition:transform .5s ease}.project-card:hover .project-svg{transform:scale(1.05)}.skills{padding-top:8rem;padding-bottom:8rem;position:relative;z-index:1;width:100%;display:block}.skills-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;width:100%}.skills-category{padding:3rem;border-radius:10px;transition:all .3s ease;position:relative;transform:translateZ(0)}.skills-category:hover{background:rgba(29,20,86,.4);transform:translateY(-5px) translateZ(20px);box-shadow:0 15px 30px #0003}.skills-category h3{font-size:2.4rem;margin-bottom:2rem;color:var(--accent-color);font-family:var(--font-sans);letter-spacing:1px;position:relative}.skills-list{list-style:none;position:relative}.skills-list li{font-size:1.6rem;margin-bottom:1.5rem;color:var(--text-secondary);position:relative;padding-left:2rem;transition:all .3s ease;font-family:var(--font-body)}.skills-list li:before{content:"▹";position:absolute;left:0;color:var(--accent-color);transition:all .3s ease}.skills-list li:hover{color:var(--text-color);transform:translate(5px)}.skills-list li:hover:before{transform:scale(1.2)}.experience-section{position:relative;padding-top:8rem;padding-bottom:8rem;z-index:1;width:100%;display:block}.experience-content{position:relative;max-width:800px;margin:0 auto;transform-style:preserve-3d;perspective:1000px;width:100%}.experience-item{position:relative;margin-bottom:3rem;padding:3rem;transition:all .3s ease;transform:translateZ(0);width:100%;display:block}.experience-item:hover{transform:translateY(-5px) translateZ(20px);box-shadow:0 15px 30px #0003}.experience-date{font-size:1.6rem;font-weight:600;color:var(--accent-color);margin-bottom:1rem;font-family:var(--font-sans);letter-spacing:1px;position:relative}.experience-title{font-size:2.4rem;margin-bottom:1.5rem;font-family:var(--font-sans);letter-spacing:1px;position:relative}.experience-description{position:relative}.experience-description ul{list-style:none;margin-top:1rem}.experience-description li{margin-bottom:1.5rem;position:relative;padding-left:2rem;font-size:1.6rem;color:var(--text-secondary);font-family:var(--font-body);line-height:1.8}.experience-description li:before{content:"▹";position:absolute;left:0;color:var(--accent-color)}.experience-description li strong{color:var(--text-color);font-weight:600}.education{padding-top:8rem;padding-bottom:8rem;position:relative;z-index:1;width:100%;display:block}.timeline{position:relative;max-width:800px;margin:0 auto;transform-style:preserve-3d;perspective:1000px;width:100%}.timeline:before{content:"";position:absolute;top:0;left:20px;height:100%;width:2px;background-color:#a99be933}.timeline-item{position:relative;margin-bottom:3rem;padding:3rem 3rem 3rem 4.5rem;transition:all .3s ease;transform:translateZ(0);width:100%;display:block}.timeline-item:hover{transform:translate(10px) translateZ(20px)}.timeline-item:before{content:"";position:absolute;top:3.5rem;left:-8px;width:16px;height:16px;border-radius:50%;background-color:var(--accent-color);z-index:1;transition:all .3s ease}.timeline-item:hover:before{transform:scale(1.3);box-shadow:0 0 15px var(--accent-color)}.timeline-date{font-size:1.6rem;font-weight:600;color:var(--accent-color);margin-bottom:1rem;font-family:var(--font-sans);letter-spacing:1px;position:relative}.timeline-content{position:relative}.timeline-content h3{font-size:2.2rem;margin-bottom:.5rem;font-family:var(--font-sans);letter-spacing:1px;color:var(--text-color)}.timeline-institution{font-size:1.8rem;color:var(--text-secondary);margin-bottom:1rem;font-style:italic;font-family:var(--font-body)}.timeline-content p{font-size:1.6rem;color:var(--text-secondary);font-family:var(--font-body);line-height:1.8}.contact{padding-top:8rem;padding-bottom:8rem;position:relative;z-index:1}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.contact-text{position:relative}.contact-text p{font-size:1.8rem;color:var(--text-secondary);font-family:var(--font-body);line-height:1.8;margin-bottom:3rem;position:relative}.alternance-info{margin-bottom:3rem;padding:2rem}.alternance-info h3{font-size:2rem;color:var(--accent-color);margin-bottom:1.5rem;font-family:var(--font-sans)}.alternance-info p{margin-bottom:1rem;font-size:1.6rem}.alternance-info strong{color:var(--text-color)}.contact-links{display:flex;flex-direction:column;gap:1.5rem;position:relative;margin-bottom:3rem}.social-link{color:var(--text-color);text-decoration:none;font-size:1.6rem;transition:all .3s ease;position:relative;padding:.5rem 0;font-family:var(--font-sans);letter-spacing:1px;display:flex;align-items:center;gap:1rem}.social-link i{color:var(--accent-color);font-size:2rem}.social-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--accent-color);transition:width .3s ease}.social-link:hover{color:var(--accent-color)}.social-link:hover:after{width:100%}.contact-form-container{transition:all .3s ease;transform:translateZ(0)}.contact-form-container:hover{transform:translateY(-5px) translateZ(20px);box-shadow:0 15px 30px #0003}.contact-form{display:flex;flex-direction:column;position:relative}.form-group{margin-bottom:2rem;position:relative}.form-group label{display:block;font-size:1.6rem;margin-bottom:.8rem;color:var(--text-color);transition:all .3s ease;font-family:var(--font-sans);letter-spacing:1px}.form-group.focused label{color:var(--accent-color)}.form-group input,.form-group textarea{width:100%;padding:1.2rem;background-color:#1d145666;border:1px solid rgba(169,155,233,.1);border-radius:4px;color:var(--text-color);font-size:1.6rem;font-family:var(--font-body);transition:all .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 10px #a99be933}.form-message{margin-top:2rem;padding:1rem;border-radius:4px;font-size:1.4rem;text-align:center;font-family:var(--font-body)}.form-message.success{background-color:#27ae6033;color:#2ecc71;border:1px solid #27ae60}.form-message.error{background-color:#e74c3c33;color:#e74c3c;border:1px solid #c0392b}.footer{padding:3rem 0;text-align:center;color:var(--text-secondary);font-size:1.4rem;position:relative;font-family:var(--font-body)}.footer:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:200px;height:1px;background-color:#a99be933}.footer-credits{margin-top:1rem;font-size:1.2rem}@media (max-width: 992px){.hero-content,.project-card,.contact-content{grid-template-columns:1fr;gap:3rem}.project-card.reverse{grid-template-columns:1fr;direction:ltr}.section-title:after{width:150px}.profile-photo-container{grid-row:1;margin-bottom:2rem}.hero-text{grid-row:2}}@media (max-width: 768px){html{font-size:55%}.name{font-size:5rem}.tagline{font-size:3.2rem}.section-title:after{width:100px}.profile-photo{width:220px;height:220px}}@media (max-width: 480px){html{font-size:50%}.name{font-size:4rem}.tagline,.section-title{font-size:2.8rem}.section-title:after{width:60px}.profile-photo{width:180px;height:180px}.hero-buttons{flex-direction:column;gap:1.5rem}}.fade-in{animation:fadeIn 1s ease forwards}.slide-up{animation:slideUp .8s ease forwards}.slide-in-left{animation:slideInLeft .8s ease forwards}.slide-in-right{animation:slideInRight .8s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.transform-3d{transform-style:preserve-3d;perspective:1000px}.transform-3d>*{transform:translateZ(0);transition:transform .3s ease}.transform-3d:hover>*{transform:translateZ(20px)}#projects,#experience,#skills,#education,#contact{position:relative;z-index:2}a[download]{position:relative;z-index:10;cursor:pointer}.cv-buttons-mobile{display:none}.cv-buttons-desktop{display:flex;gap:1rem}.btn-mobile{font-size:1.2rem;padding:.6rem 1rem}.expertise-content-wrapper{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:3rem;margin-bottom:3rem}@media (max-width: 768px){.cv-buttons-desktop{display:none}.cv-buttons-mobile{display:flex;gap:1rem;margin-right:5rem}.nav{justify-content:space-between;align-items:center;flex-wrap:wrap}.logo{flex:0 0 auto}.mobile-nav-toggle{flex:0 0 auto;z-index:1000}.cv-buttons-mobile{flex:1 1 auto;justify-content:flex-end;padding-right:1rem}}@media (max-width: 480px){.cv-buttons-mobile{margin-right:4rem}.btn-mobile{font-size:1rem;padding:.5rem .8rem}}
