:root{--page-padding-x: 10vw}html{scroll-behavior:auto}body{margin:0;overflow-x:hidden;overflow-y:scroll;font-family:Inter,sans-serif;background:#000;color:#fff}#scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#7f5dff,#ff7de3);z-index:50;pointer-events:none}.site-header{position:fixed;top:0;left:0;width:100%;padding:1.8rem var(--page-padding-x);display:flex;justify-content:space-between;align-items:center;z-index:20;box-sizing:border-box}.site-logo{font-size:1.3rem;letter-spacing:2px;text-transform:uppercase}.desktop-nav{display:flex;align-items:center}.desktop-nav a{display:inline-block;margin-left:1.5rem;text-decoration:none;color:#fff;position:relative;white-space:nowrap;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase}.desktop-nav a:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:2px;background:#fff;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.desktop-nav a:hover:after{transform:scaleX(1);transform-origin:left}.desktop-lang{margin-left:1.5rem}.nav-toggle{width:40px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:#000000b3;display:none;align-items:center;justify-content:center;padding:0;cursor:pointer;box-shadow:0 10px 30px #000c;flex-direction:column;gap:4px}.nav-toggle-line{width:18px;height:2px;border-radius:999px;background:#fff;transition:transform .2s ease,opacity .2s ease,width .2s ease}.nav-toggle.is-open .nav-toggle-line--top{transform:translateY(6px) rotate(45deg)}.nav-toggle.is-open .nav-toggle-line--middle{opacity:0;width:0}.nav-toggle.is-open .nav-toggle-line--bottom{transform:translateY(-6px) rotate(-45deg)}@media(max-width:1024px){.site-header{background:none!important;padding:0!important;height:0!important;overflow:visible!important}.site-logo,.desktop-nav,.desktop-lang{display:none!important}.nav-toggle{position:fixed;top:1.2rem;right:1.2rem;z-index:80;display:inline-flex!important}section{padding-top:2.8rem}}.mobile-nav-overlay{position:fixed;inset:0;z-index:60;background:radial-gradient(circle at top,#0f0f28fa,#000);opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease;display:flex;justify-content:center;align-items:flex-start}.mobile-nav-overlay.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.mobile-nav-inner{width:100%;max-width:460px;padding:1.8rem 1.8rem 2.4rem;box-sizing:border-box;display:flex;flex-direction:column;gap:2rem}.mobile-nav-header{display:flex;align-items:center;justify-content:space-between}.mobile-logo{font-size:1.1rem;letter-spacing:.18em;text-transform:uppercase}.mobile-nav{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.mobile-nav a{text-decoration:none;color:#fff;font-size:.95rem;letter-spacing:.22em;text-transform:uppercase;opacity:.9}.mobile-nav a:hover{opacity:1}.mobile-lang{margin-top:1.2rem}.nav-toggle--close{border-color:#ffffff59}@media(min-width:1025px){.mobile-nav-overlay{display:none}}.lang-switcher{display:flex;gap:.4rem;align-items:center}.lang-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.18);color:#fff;padding:.25rem .55rem;border-radius:6px;cursor:pointer;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;transition:all .18s ease}.lang-btn:hover{background:#ffffff1f}.lang-btn.is-active{background:#7f5dff80;border-color:#7f5dffe6;box-shadow:0 0 12px #7f5dff99}main{position:relative;z-index:10}section{min-height:100vh;box-sizing:border-box;padding:6.5rem var(--page-padding-x) 4.5rem;display:flex;align-items:center;position:relative}section .section-inner{width:100%;max-width:none}section h3{font-size:1.1rem;letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-bottom:.5rem}section h2.section-title{font-size:2.2rem;margin:0 0 1.5rem}section p{line-height:1.7;opacity:.88}.section-animate .section-inner{opacity:0;transform:translateY(16px);transition:opacity .7s ease-out,transform .7s ease-out}@media(max-width:1024px){.section-animate .section-inner{opacity:1;transform:none}}.section-animate.in-view .section-inner{opacity:1;transform:translateY(0)}.section-next-hint,.section-prev-hint{position:fixed;left:50%;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;opacity:0;pointer-events:none;display:inline-flex;align-items:center;gap:.6rem;transition:opacity .35s ease,transform .35s ease;z-index:15}.section-next-hint{bottom:.9rem;transform:translate(-50%) translateY(10px)}.section-prev-hint{top:.9rem;transform:translate(-50%) translateY(-10px)}.section-next-hint span.label,.section-prev-hint span.label{opacity:.7}.section-next-hint span.next-name,.section-prev-hint span.prev-name{opacity:.95}.section-next-hint .arrow{font-size:1rem;animation:hintArrowDown 1.2s ease-in-out infinite}.section-prev-hint .arrow{font-size:1rem;animation:hintArrowUp 1.2s ease-in-out infinite}.section-next-hint.is-visible,.section-prev-hint.is-visible{opacity:1;transform:translate(-50%) translateY(0)}@keyframes hintArrowDown{0%{transform:translateY(0)}50%{transform:translateY(4px)}to{transform:translateY(0)}}@keyframes hintArrowUp{0%{transform:translateY(0)}50%{transform:translateY(-4px)}to{transform:translateY(0)}}#home{position:relative}.hero-text{position:relative;margin-left:-4vw}.hero-text h2{margin:0;font-size:3rem;letter-spacing:3px;text-transform:uppercase;display:block;flex-wrap:wrap;align-items:baseline;gap:.75rem;opacity:0;animation:heroTitleIn .9s ease-out forwards}.hero-title-main{display:block}.hero-title-intro{font-size:.9rem;display:block;letter-spacing:.08em;text-transform:none;opacity:.75;white-space:normal}.hero-links{margin-top:1.7rem;display:flex;flex-wrap:wrap;gap:1.8rem;opacity:0;animation:heroLinksIn 1.1s ease-out forwards;animation-delay:.15s}.hero-links a{position:relative;text-decoration:none;color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.22em;padding-left:18px;padding-bottom:3px;opacity:.85}.hero-links a:before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;border-radius:50%;background:#fff;transform:translateY(-50%) scale(0);transform-origin:center;filter:blur(.5px);transition:transform .25s ease-out}.hero-links a:after{content:"";position:absolute;left:18px;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,#ffffffe6,#fff0);transform:scaleX(0);transform-origin:left;transition:transform .3s ease-out}.hero-links a:hover:before{transform:translateY(-50%) scale(1)}.hero-links a:hover:after{transform:scaleX(1)}@keyframes heroTitleIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes heroLinksIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#about .section-inner{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:3rem;align-items:center}#about blockquote{margin:0 0 1.4rem;padding-left:1rem;border-left:2px solid rgba(255,255,255,.4);font-style:italic;opacity:.9}#about blockquote span{display:block;margin-top:.5rem;font-size:.85rem;opacity:.65}.about-photo{justify-self:center}.about-photo-inner{position:relative;width:260px;height:340px;clip-path:polygon(10% 0,100% 0,100% 80%,90% 100%,0 100%,0 15%);overflow:hidden;background:radial-gradient(circle at top,rgba(180,220,255,.18),transparent 60%);box-shadow:0 0 0 1px #ffffff1f,0 18px 45px #000000e6}.about-photo-inner img{width:100%;height:100%;object-fit:cover;transform:scale(1.03)}.about-photo-inner:before{content:"";position:absolute;inset:-6px;clip-path:inherit;border:1px solid rgba(127,93,255,.6);opacity:.7;pointer-events:none}.about-photo-inner:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 40%),radial-gradient(circle at bottom,rgba(127,93,255,.18),transparent 55%);mix-blend-mode:screen;opacity:.9;pointer-events:none}.xp-cosmic{position:relative;margin-top:2.4rem;padding-left:3.6rem}.xp-cosmic-rail{position:absolute;top:.3rem;bottom:.3rem;left:1.4rem;width:2px;background:linear-gradient(to bottom,#7f5dff,#ff7de3e6,#78dcaae6,#7f5dff26);box-shadow:0 0 12px #7f5dffcc,0 0 24px #ff7de399;opacity:.9;animation:railGlow 6s ease-in-out infinite alternate}@keyframes railGlow{0%{box-shadow:0 0 8px #7f5dff99,0 0 18px #ff7de366;opacity:.8}to{box-shadow:0 0 18px #7f5dff,0 0 32px #ff7de3e6;opacity:1}}.xp-cosmic-item{position:relative;margin-bottom:2.1rem}.xp-marker{position:absolute;left:1.4rem;top:1rem;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at center,#ffffff,#a88fff 45%,transparent 70%);box-shadow:0 0 0 3px #7f5dffcc,0 0 22px #ffffffe6;animation:markerPulse 2.8s ease-in-out infinite}@keyframes markerPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.9}50%{transform:translate(-50%,-50%) scale(1.15);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:.9}}.xp-card{margin-left:3rem;padding:1.2rem 1.5rem 1.1rem 1.4rem;border-radius:18px;background:radial-gradient(circle at top left,rgba(180,180,255,.12),transparent 55%),radial-gradient(circle at bottom right,rgba(120,220,170,.12),transparent 55%),#000000d1;border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 60px #000000f2;position:relative;overflow:hidden}.xp-card:before{content:"";position:absolute;inset:-30%;background-image:radial-gradient(circle at 10% 20%,rgba(255,255,255,.22) 0,transparent 55%),radial-gradient(circle at 80% 80%,rgba(127,93,255,.3) 0,transparent 60%);opacity:.4;mix-blend-mode:screen;pointer-events:none}.xp-card-inner{position:relative;z-index:1}.xp-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;opacity:.8;margin-bottom:.4rem}.xp-meta-type{padding:.12rem .6rem;border-radius:999px;border:1px solid rgba(255,255,255,.4)}.xp-meta-date{opacity:.8}.xp-role{font-size:1.05rem;margin:.2rem 0 .15rem}.xp-company{font-size:.9rem;opacity:.9;margin-bottom:.6rem}.xp-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.xp-badges span{font-size:.78rem;padding:.16rem .6rem;border-radius:999px;background:#000000b3;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.xp-body{font-size:.9rem;opacity:.95}.xp-body ul{list-style:none;padding:0;margin:0}.xp-body li{position:relative;padding-left:1.1rem;margin-bottom:.25rem}.xp-body li:before{content:"•";position:absolute;left:0;top:.05rem;opacity:.75}.xp-cosmic-item.xp-main .xp-card{border-color:#7f5dff80;box-shadow:0 24px 70px #000000fa}.xp-type-alt .xp-meta-type{border-color:#7f5dffe6;background:#7f5dff2e}.xp-type-benevole .xp-meta-type{border-color:#78dcaae6;background:#78dcaa29}.xp-type-formation .xp-meta-type{border-color:#ffd282e6;background:#ffd28229}.xp-type-projet .xp-meta-type{border-color:#50c8ffe6;background:#50c8ff2e}.xp-card:hover{transform:translateY(-1px);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:0 26px 80px #000;border-color:#ffffff42}.skills-intro{margin-bottom:1.6rem}.skills-tabs{display:flex;flex-wrap:wrap;gap:.6rem;border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:.6rem}.skills-tab{border:none;background:transparent;color:#fff;padding:.35rem .9rem;border-radius:999px;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;opacity:.6;cursor:pointer;position:relative;transition:background .2s ease,opacity .2s ease,transform .15s ease}.skills-tab:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,#7f5dffe6,#ff7de3e6);transform:scaleX(0);transform-origin:center;transition:transform .2s ease-out}.skills-tab.is-active{opacity:1;background:#ffffff0f;transform:translateY(-1px)}.skills-tab.is-active:after{transform:scaleX(1)}.skills-panels{margin-top:1.3rem}.skills-panel{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.skills-panel.is-active{display:grid}@media(max-width:960px){.skills-panel{grid-template-columns:minmax(0,1fr)}}.skill-chip{padding:.75rem .9rem;border-radius:12px;background:#000000c7;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 35px #000000e6;position:relative;overflow:hidden}.skill-chip:before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 0% 0%,rgba(255,255,255,.18) 0,transparent 55%),radial-gradient(circle at 100% 100%,rgba(127,93,255,.18) 0,transparent 60%);opacity:.6;mix-blend-mode:screen;pointer-events:none}.skill-header{display:flex;justify-content:space-between;gap:.4rem;align-items:baseline;margin-bottom:.2rem}.skill-name{font-size:.9rem;font-weight:500}.skill-level-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;opacity:.75}.skill-sub{font-size:.8rem;opacity:.84;margin-bottom:.32rem}.skill-level-bar{position:relative;height:3px;border-radius:999px;background:#ffffff14;overflow:hidden}.skill-level-bar span{display:block;height:100%;border-radius:inherit}.skill-chip--backend{border-color:#5aa0ff99}.skill-chip--backend .skill-level-bar span{background:linear-gradient(90deg,#5aa0fff2,#7f5dffe6)}.skill-chip--frontend{border-color:#c88cff99}.skill-chip--frontend .skill-level-bar span{background:linear-gradient(90deg,#c88cfff2,#ff7de3e6)}.skill-chip--tools{border-color:#78dcaaa6}.skill-chip--tools .skill-level-bar span{background:linear-gradient(90deg,#78dcaaf2,#7f5dffe6)}.skill-chip--soft{border-color:#ffd282b3}.skill-chip--soft .skill-level-bar span{background:linear-gradient(90deg,#ffd282f2,#ff7de3e6)}.skill-chip:hover{transform:translateY(-3px);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;box-shadow:0 18px 50px #000000fa;border-color:#ffffff42}.contact-grid{margin-top:3.2rem;margin-bottom:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.4rem}.contact-bigbtn{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.2rem 1rem;text-decoration:none;color:#fff;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .18s ease,border-color .18s ease,background .18s ease;box-shadow:0 12px 32px #000000d9}.contact-bigicon{width:38px;height:38px;opacity:.9}.contact-bigbtn span{font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;opacity:.88}.contact-bigbtn:hover{transform:translateY(-4px);border-color:#7f5dff99;background:#7f5dff1f}.cv-modal-backdrop{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:200}.cv-modal{width:min(960px,94vw);height:min(80vh,680px);background:#000000eb;border-radius:18px;border:1px solid rgba(255,255,255,.18);box-shadow:0 24px 80px #000000f2;display:flex;flex-direction:column;overflow:hidden}.cv-modal-header{padding:.9rem 1.3rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}.cv-modal-header h3{margin:0;font-size:1rem;letter-spacing:.14em;text-transform:uppercase;opacity:.9}.cv-modal-actions{display:flex;align-items:center;gap:.6rem}.cv-modal-download{padding:.35rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.5);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:#fff;background:#ffffff0a;transition:background .15s ease,border-color .15s ease}.cv-modal-download:hover{background:#ffffff1f;border-color:#fff}.cv-modal-close{border:none;background:transparent;color:#fff;font-size:1.4rem;cursor:pointer;padding:.1rem .4rem;border-radius:999px;line-height:1;transition:background .15s ease}.cv-modal-close:hover{background:#ffffff14}.cv-modal-body{flex:1;background:#050508}.cv-modal-iframe{width:100%;height:100%;border:none}@media(max-width:768px){.cv-modal-body{overflow:auto;-webkit-overflow-scrolling:touch}.cv-modal-iframe{width:100%;height:100%;transform:scale(.85);transform-origin:top center}}.contact-bigbtn--button{border:1px solid rgba(255,255,255,.12);background:#000000a6;cursor:pointer}.contact-bigbtn--button:hover{border-color:#7f5dff99;background:#7f5dff1f}@media(max-width:900px){#about .section-inner{grid-template-columns:minmax(0,1fr);gap:2rem}.about-photo{order:-1}.about-photo-inner{width:220px;height:300px}}@media(max-width:840px){.xp-cosmic{padding-left:2.4rem}.xp-cosmic-rail,.xp-marker{left:1.1rem}}@media(max-width:720px){header{padding:1.2rem var(--page-padding-x)}nav a{margin-left:.9rem;font-size:.75rem}section{padding-top:5.5rem}.hero-text{margin-left:0}.hero-text h2{font-size:2.2rem;letter-spacing:2px}.hero-title-intro{font-size:.8rem}.skills-grid{grid-template-columns:minmax(0,1fr)}.xp-cosmic{padding-left:2rem}.xp-cosmic-rail,.xp-marker{left:1rem}}
