@charset "UTF-8";.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(20,20,30,.85);z-index:1000;display:flex;align-items:center;justify-content:center;transition:opacity .3s}.modal{background:#18181b;border-radius:18px;box-shadow:0 8px 32px #a855f726;padding:2.5rem 2.5rem 2rem;min-width:320px;max-width:95vw;max-height:90vh;overflow-y:auto;color:#e9d7ff;position:relative;z-index:1001;border:1px solid rgba(168,85,247,.2);animation:modalIn .3s cubic-bezier(.4,0,.2,1)}.modal-close{position:absolute;top:1.2rem;right:1.2rem;background:none;border:none;color:#a855f7;font-size:2rem;cursor:pointer;z-index:1002;transition:color .2s}.modal-close:hover{color:#c084fc}@keyframes modalIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 600px){.modal{padding:1.2rem .7rem 1rem;min-width:90vw}}.modal-content{background:#18181b;border-radius:18px;box-shadow:0 8px 32px #a855f726;padding:2.5rem 2.5rem 2rem;min-width:320px;max-width:760px;width:100%;max-height:90vh;overflow-y:auto;color:#e9d7ff;position:relative;z-index:1001;border:1px solid rgba(168,85,247,.2);animation:modalIn .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center}.modal-title{font-size:2rem;font-weight:700;color:#a855f7;margin-bottom:1.5rem;text-align:center}.modal-slider{width:100%;max-width:700px;margin:0 auto 2rem}.modal-slider .swiper-container{border-radius:12px;overflow:hidden}.modal-slider img{width:100%;max-height:270px;height:auto;border-radius:12px;object-fit:contain;background:#222;margin-top:.5rem}.modal-slider .modal-image.placeholder{width:100%;height:200px;background:#222;color:#a855f7;display:flex;align-items:center;justify-content:center;border-radius:12px;font-size:1.2rem}.modal-body{width:100%;max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:2.2rem;font-size:1.12rem;line-height:1.85;color:#e9d7ff}.modal-body>*:not(:last-child){margin-bottom:1.7rem}.project-description{font-size:1.18rem;color:#e9d7ff;margin-bottom:1.2rem;line-height:2.1;text-align:left;word-break:break-word;white-space:pre-line}.modal-section{margin-bottom:1.7rem;padding-bottom:1.1rem;border-bottom:1px solid rgba(168,85,247,.13)}.modal-section:last-child{border-bottom:none}.modal-section h3{color:#a855f7;font-size:1.18rem;margin-bottom:.7rem;font-weight:700;letter-spacing:.5px}.features-list{list-style:disc inside;color:#e9d7ff;margin:0 0 0 1.2rem;padding:0;font-size:1.08rem;line-height:1.7}.features-list li{margin-bottom:.5rem;font-size:1.08rem;text-align:left;white-space:pre-line}.project-description{font-size:1.13rem;color:#e9d7ff;margin-bottom:1.2rem;line-height:1.8;text-align:left;word-break:break-word}.modal-section h3{color:#a855f7;font-size:1.15rem;margin-bottom:.5rem;font-weight:700;letter-spacing:.5px}.features-list{list-style:disc inside;color:#e9d7ff;margin:0 0 0 1.2rem;padding:0;font-size:1.05rem;line-height:1.6}.features-list li{margin-bottom:.3rem;font-size:1.05rem;text-align:left}.modal-links{display:flex;gap:1.2rem;margin-top:1.2rem;justify-content:center;flex-wrap:wrap}.btn-link{display:inline-block;padding:.7rem 1.5rem;background:linear-gradient(90deg,#a855f7 0%,#9333ea 100%);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:1rem;text-decoration:none;transition:background .2s,color .2s,transform .2s;box-shadow:0 2px 8px #a855f721;cursor:pointer;margin-bottom:.5rem}.modal-section{margin-bottom:1.2rem}.modal-section h3{color:#a855f7;font-size:1.1rem;margin-bottom:.5rem}.modal-section .tech-bar{background:rgba(168,85,247,.08);color:#e9d7ff;border-radius:8px;padding:.7rem 1.2rem;font-size:1rem;font-weight:500;margin-bottom:.5rem}.features-list{list-style:disc inside;color:#e9d7ff;margin:0 0 0 1.2rem;padding:0}.features-list li{margin-bottom:.3rem;font-size:1rem}.github-date{color:#c084fc;font-size:.95rem;margin-bottom:.7rem}.modal-links{display:flex;gap:1.2rem;margin-top:1.2rem;justify-content:center}.btn-link{display:inline-block;padding:.7rem 1.5rem;background:linear-gradient(90deg,#a855f7 0%,#9333ea 100%);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:1rem;text-decoration:none;transition:background .2s,color .2s,transform .2s;box-shadow:0 2px 8px #a855f721;cursor:pointer}.btn-link:hover{background:linear-gradient(90deg,#9333ea 0%,#a855f7 100%);color:#fff;transform:translateY(-2px) scale(1.04)}@media (max-width: 600px){.modal-content{padding:1.2rem .7rem 1rem;min-width:90vw}.modal-title{font-size:1.3rem}.modal-slider{max-width:98vw}.modal-slider img{max-height:220px}.modal-slider .modal-image.placeholder{height:180px;font-size:1rem}.modal-body{max-width:98vw}}.cv-btn-wrapper{display:flex;justify-content:center;margin-top:2rem}.cv-btn{background:linear-gradient(90deg,#a084fc 0%,#c084fc 100%);color:#fff;padding:.8rem 2.2rem;border:none;border-radius:30px;font-size:1.1rem;font-weight:600;text-decoration:none;box-shadow:0 2px 12px #9600ff21;transition:background .2s,transform .2s;cursor:pointer}.cv-btn:hover{background:linear-gradient(90deg,#c084fc 0%,#a084fc 100%);transform:translateY(-2px) scale(1.04)}.hero{display:flex;justify-content:center;padding-top:140px;margin-bottom:60px}.hero .hero-box{background:rgba(20,20,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(150,0,255,.25);border-radius:20px;padding:3rem 2.5rem;width:100%;max-width:1200px;box-shadow:0 0 40px #8c00ff40;color:#e9d7ff}@media (max-width: 768px){.hero .hero-box{padding:2rem .8rem;border-radius:14px;max-width:90%}}.hero .hero-box{animation:slideUpHero .5s ease-out;text-align:center}.hero h1{font-size:2.4rem;font-weight:700;margin-bottom:.3rem;color:#f3e8ff}.hero .animated-text{font-size:1.3rem;margin-bottom:2rem}.hero .animated-text .dynamic-text{color:#c084fc;font-weight:600}.hero .animated-text .cursor{animation:blink 1s infinite}.hero .colonne{display:flex;align-items:center;justify-content:center;gap:70px}.hero .img{height:260px;width:auto;border-radius:18px;box-shadow:0 0 15px #9600ff4d}.hero .img-rond{clip-path:ellipse(50% 33%)}.hero .max-width{max-width:600px;text-align:left}.hero .max-width h2{color:#c084fc;font-size:1.3rem;margin-bottom:.8rem;text-transform:uppercase;letter-spacing:1px}.hero .presentation-wrapper{display:flex;flex-direction:column;gap:1.6rem}.hero .presentation-wrapper .section h3{font-size:1.2rem;color:#d6b1ff;font-weight:600;margin-bottom:.3rem}.hero .presentation-wrapper .section p{font-size:1rem;line-height:1.6;opacity:.9}.hero .presentation-wrapper .separator{height:1px;width:100%;background:linear-gradient(90deg,rgba(150,0,255,0) 0%,rgba(150,0,255,.5) 50%,rgba(150,0,255,0) 100%);margin:.5rem 0}@keyframes slideUpHero{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:0}}@media (max-width: 768px){.hero{padding-top:140px;margin-top:-60px;margin-bottom:40px}.hero .hero-box{padding:2rem .8rem!important}.hero h1{font-size:1.7rem}.hero .animated-text{font-size:1rem;margin-bottom:1.3rem}.hero .colonne{flex-direction:column;gap:20px;text-align:center}.hero .img{height:150px}.hero .max-width{text-align:center;max-width:95%}.hero .presentation-wrapper .section h3{font-size:1.05rem}.hero .presentation-wrapper .section p{font-size:.85rem;line-height:1.5}}@media (max-width: 1024px) and (min-width: 768px){.hero .hero-box{width:90vw;max-width:900px;margin:0 auto}.hero .max-width{max-width:90vw;margin:0 auto}}.skills{background:rgba(20,20,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(150,0,255,.25);border-radius:20px;padding:3rem 2.5rem;width:100%;max-width:1200px;box-shadow:0 0 40px #8c00ff40;color:#e9d7ff}@media (max-width: 768px){.skills{padding:2rem .8rem;border-radius:14px;max-width:90%}}.skills{color:#e9d7ff}.skills h2{font-size:2rem;margin-bottom:2rem}.skills .skills-columns{display:flex;gap:2rem;justify-content:center}.skills .skills-columns .skills-column{display:flex;flex-direction:column;gap:1rem;width:280px;flex:1}.skills .skill-item{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.skills .skill-item .skill-left{display:flex;align-items:center;gap:.8rem}.skills .skill-item .skill-left .skill-icon{font-size:2.5rem;color:#fff;cursor:pointer}.skills .skill-item .skill-left .skill-icon:hover{transform:scale(1.15)}.skills .skill-item .skill-left .skill-name{font-size:1rem;color:#ccc;white-space:nowrap}.skills .skill-item .skill-bar{flex:none;width:70%;margin:0 auto;height:8px;background-color:#333;border-radius:4px;overflow:hidden}.skills .skill-item .skill-bar .skill-progress{height:100%;background-color:#61dafb;border-radius:4px;transition:width 1s ease-out}.tech-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .8rem;background-color:#eee;color:#333;border-radius:15px;font-size:.9rem;margin:.2rem}.remove-btn{border:none;background:transparent;color:#888;cursor:pointer;font-size:.8rem}@media (max-width: 768px){.skills{padding:2rem 1rem;margin-left:auto;margin-right:auto}.skills h2{font-size:1.5rem;margin-bottom:1.5rem}.skills .skills-columns{flex-direction:column;align-items:center;gap:1.2rem}.skills .skills-columns .skills-column{width:100%;max-width:320px}.skills .skill-item{flex-direction:column;align-items:center;text-align:center;gap:.8rem}.skills .skill-item .skill-left{width:auto;margin-right:0;justify-content:center}.skills .skill-item .skill-left .skill-icon{font-size:2rem}.skills .skill-item .skill-left .skill-name{font-size:.85rem}.skills .skill-item .skill-bar{width:70%;margin:0 auto;height:7px}}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color));svg {width: 100%; height: 100%; object-fit: contain; transform-origin: center; fill: currentColor; pointer-events: none;}}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev.swiper-button-hidden,.swiper-button-next.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-prev,.swiper-navigation-disabled .swiper-button-next{display:none!important}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal~.swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl .swiper-button-next .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-next .swiper-navigation-icon{transform:rotate(180deg)}.swiper-horizontal.swiper-rtl .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-prev .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}.swiper-vertical .swiper-button-prev .swiper-navigation-icon,.swiper-vertical~.swiper-button-prev .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}.swiper-vertical .swiper-button-next .swiper-navigation-icon,.swiper-vertical~.swiper-button-next .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2);button& {border: none; margin: 0; padding: 0; box-shadow: none; appearance: none;} .swiper-pagination-clickable & {cursor: pointer;} &:only-child {display: none !important;}}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.projects{padding:4rem 2rem;text-align:center}.projects h2{margin-bottom:2rem;font-size:2rem}.projects .projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}@media (max-width: 1024px) and (min-width: 768px){.projects .projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.projects .projects-container{width:90vw;max-width:900px;margin:0 auto}}.projects .project-card{background:#fff;border-radius:1rem;overflow:hidden;width:360px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.projects .project-card:hover{transform:translateY(-6px);box-shadow:0 8px 20px #0003}.projects .project-card h3{margin:1rem 0;font-size:1.2rem}.projects .project-card .project-image-wrapper{width:100%;height:200px;overflow:hidden}.projects .project-card .project-image-wrapper img{width:100%;height:100%;object-fit:contain;background:#f5f5f5;transition:transform .4s ease}.projects .project-card .project-image-wrapper:hover img{transform:scale(1.05)}@media (max-width: 768px){.projects,.projects .projects-grid{display:flex;flex-direction:column}.projects .projects-grid .project-card{width:300px}.projects-container{width:90vw;max-width:600px;margin:0 auto}}.contact-section{display:flex;justify-content:center;padding:4rem 2rem}.contact-container{display:flex;gap:2rem;width:100%;max-width:1200px}.contact-container .contact-left,.contact-container .contact-form{flex:1;display:flex;flex-direction:column;gap:1.8rem}.contact-container .contact-info{background:rgba(20,20,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(150,0,255,.25);border-radius:20px;padding:3rem 2.5rem;width:100%;max-width:1200px;box-shadow:0 0 40px #8c00ff40;color:#e9d7ff}@media (max-width: 768px){.contact-container .contact-info{padding:2rem .8rem;border-radius:14px;max-width:90%}}.contact-container .contact-info{padding:2rem}.contact-container .contact-info h3{margin-bottom:1rem}.contact-container .contact-info .info-line{display:flex;align-items:center;gap:1rem;margin:.6rem 0}.contact-container .contact-info .info-line .icon{width:24px;height:24px;color:#c084fc;filter:drop-shadow(0 0 5px rgba(192,132,252,.6))}.contact-container .contact-map{background:rgba(20,20,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(150,0,255,.25);border-radius:20px;padding:3rem 2.5rem;width:100%;max-width:1200px;box-shadow:0 0 40px #8c00ff40;color:#e9d7ff}@media (max-width: 768px){.contact-container .contact-map{padding:2rem .8rem;border-radius:14px;max-width:90%}}.contact-container .contact-map{padding:2rem}.contact-container .contact-map h3{margin-bottom:1rem;font-size:1.4rem;font-weight:600;color:#fff}.contact-container .contact-map .map-wrapper{width:100%;height:300px;border-radius:20px;overflow:hidden;border:1px solid rgba(192,132,252,.4);box-shadow:0 0 20px #c084fc4d;background:rgba(0,0,0,.3)}.contact-container .contact-map .map-wrapper iframe{width:100%;height:100%;border:none;border-radius:20px}.contact-container .contact-form{background:rgba(20,20,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(150,0,255,.25);border-radius:20px;padding:3rem 2.5rem;width:100%;max-width:1200px;box-shadow:0 0 40px #8c00ff40;color:#e9d7ff}@media (max-width: 768px){.contact-container .contact-form{padding:2rem .8rem;border-radius:14px;max-width:90%}}.contact-container .contact-form{padding:2.5rem}.contact-container .contact-form h3{margin-bottom:1.5rem}.contact-container .contact-form .form-contact{display:flex;flex-direction:column;gap:1.2rem}.contact-container .contact-form .form-contact label{color:#d9c4ff;font-size:.95rem;text-shadow:0 0 4px rgba(192,132,252,.6)}.contact-container .contact-form .form-contact input,.contact-container .contact-form .form-contact textarea{padding:.9rem 1rem;border-radius:12px;border:1px solid rgba(192,132,252,.6);background:rgba(0,0,0,.4);color:#fff;font-size:1rem;box-shadow:0 0 8px #c084fc40}.contact-container .contact-form .form-contact input:focus,.contact-container .contact-form .form-contact textarea:focus{outline:none;border-color:#c084fc;box-shadow:0 0 15px #c084fc80}.contact-container .contact-form .form-contact textarea{min-height:130px}.contact-container .contact-form .form-contact button.envoi{padding:.8rem 1rem;border:none;border-radius:12px;background-color:#c084fc;color:#fff;font-weight:600;cursor:pointer;transition:.25s;box-shadow:0 0 10px #c084fc99}.contact-container .contact-form .form-contact button.envoi:hover{background-color:#a855f7;box-shadow:0 0 18px #c084fccc}.contact-container .contact-form .form-contact p.status{margin-top:.5rem;font-size:.9rem}@media (max-width: 768px){.contact-section{margin-left:auto;margin-right:auto}.contact-section .contact-container{flex-direction:column;align-items:center}.contact-section .contact-left,.contact-section .contact-form{width:100%;max-width:500px}.contact-section .contact-info{text-align:center;max-width:500px;margin-left:auto;margin-right:auto}.contact-section .contact-info .info-line{justify-content:center}.contact-section .contact-map{text-align:center;max-width:500px;margin-left:auto;margin-right:auto}.contact-section .map-wrapper{height:400px}}.navbar{position:fixed;top:20px;left:50%;transform:translate(-50%);width:900px;height:60px;border-radius:40px;background:rgba(20,20,20,.85);border:1px solid rgba(150,0,255,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 30px #8c00ff40;z-index:1000;display:flex;align-items:center;justify-content:center}.navbar .navbar-content{width:100%;padding:0 177px;display:flex;align-items:center;justify-content:space-between}.navbar .navbar-links{list-style:none;display:flex;gap:30px}.navbar .navbar-links li a{text-decoration:none;color:#e4d0ff;font-size:18px;font-weight:500;transition:.2s}.navbar .navbar-links li a:hover{color:#c084fc;text-shadow:0 0 10px rgba(192,132,252,.8)}.navbar .menu-toggle{display:none}@media (max-width: 768px){.navbar{all:unset;position:fixed;top:20px;z-index:1000}.navbar-content{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;width:320px;height:36px;padding:6px 12px;font-size:14px;line-height:1;white-space:nowrap;background:rgba(20,20,20,.9);color:#e4d0ff;border:1px solid rgba(150,0,255,.3);border-radius:14px;cursor:pointer;box-shadow:0 0 12px #8c00ff4d;margin-left:-144px}.navbar-links{display:none!important}.navbar-links.active{display:block!important;width:200px;padding:16px;list-style:none;background:rgba(20,20,20,.95);border:1px solid rgba(150,0,255,.25);border-radius:18px;box-shadow:0 0 25px #8c00ff4d;margin:0 0 0 -145px}.navbar-links.active li{text-align:center;margin-bottom:12px}.navbar-links.active li:last-child{margin-bottom:0}.navbar-links.active li a{display:block;padding:6px 0;font-size:15px;text-decoration:none;color:#e4d0ff}.navbar-links.active li a:hover{color:#c084fc}}.login-page{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh}.login-page .login-card{display:flex;flex-direction:column;background:rgb(242,242,242);padding:2rem;border-radius:1rem;box-shadow:0 4px 20px #0000004d;width:600px;height:300px;text-align:center;gap:1rem}.login-page .login-card h2{margin-bottom:1.5rem;color:#60a5fa}.login-page .login-card input{margin-top:15px;margin-left:auto;margin-right:auto;width:400px;height:40px;padding:.5rem;border-radius:.5rem;border:none;outline:none}.login-page .login-card button{margin-top:1rem;height:45px;width:200px;margin-left:auto;margin-right:auto;background:#333;color:#fff;border:none;border-radius:.5rem;cursor:pointer}.login-page .login-card button:hover{background:#222}.admin-layout{min-height:100vh;width:100vw;display:flex;background:#000;position:relative;overflow:hidden}.admin-sidebar{width:270px;min-width:220px;max-width:320px;height:100vh;background:linear-gradient(160deg,#1a002b 0%,#a855f7 100%);color:#fff;display:flex;flex-direction:column;align-items:flex-start;padding:2.5rem 1.5rem 2rem;box-shadow:2px 0 24px #a855f71a;z-index:10;position:fixed;left:0;top:0;border-radius:0 32px 32px 0}.admin-sidebar h2{font-size:2.1rem;font-weight:800;margin-bottom:2.5rem;letter-spacing:1px;color:#fff;text-shadow:0 2px 12px rgba(68,49,141,.18);align-self:center}.menu-list{list-style:none;width:100%;padding:0;margin:0}.menu-list>li,.menu-item{padding:1rem 1.2rem;margin-bottom:.7rem;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .18s,color .18s;color:#fff}.menu-list>li:hover,.menu-item:hover{background:rgba(255,255,255,.13);color:#c084fc}.submenu{list-style:none;padding-left:1.2rem;margin-top:.3rem}.submenu li{padding:.5rem 1rem;border-left:3px solid #fff;border-radius:8px;margin-bottom:.3rem;font-size:1rem;color:#fff;cursor:pointer;transition:background .18s,color .18s}.submenu li:hover{background:rgba(255,255,255,.1);color:#a855f7}.admin-content{margin-left:270px;padding:3.5rem 3rem 2rem;flex:1;z-index:2;min-height:100vh;background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.admin-topbar{width:100%;max-width:1100px;display:flex;justify-content:flex-end;align-items:center;margin-bottom:2.5rem;gap:1rem}.admin-topbar button{background:#fff;border:1.5px solid #a855f7;color:#a855f7;padding:.7rem 1.5rem;border-radius:16px;font-weight:600;font-size:1.1rem;cursor:pointer;box-shadow:0 2px 12px #a855f71a;transition:background .2s,color .2s}.admin-topbar button:hover{background:#a855f7;color:#fff}.admin-cards{width:100%;max-width:1100px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-bottom:2.5rem}.admin-card{min-height:140px;border-radius:22px;border:none;background:linear-gradient(135deg,#a855f7 0%,#c084fc 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:1.18rem;color:#fff;box-shadow:0 6px 32px #a855f740,0 1.5px 8px #000;transition:transform .18s,box-shadow .18s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.admin-card h3{color:#fff;font-size:1.25rem;margin-bottom:.7rem;font-weight:800;letter-spacing:.5px;text-shadow:0 2px 12px #a855f7,0 2px 8px rgba(168,85,247,.18)}.admin-card:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 12px 40px #a855f7,0 2px 12px #000}@media (max-width: 1100px){.admin-content{margin-left:0;border-radius:0;padding:2rem .5rem}.admin-layout{flex-direction:column}.admin-sidebar{position:relative;width:100vw;min-width:unset;max-width:unset;height:auto;border-radius:0 0 32px 32px;flex-direction:row;align-items:center;justify-content:flex-start;padding:1.2rem .5rem;box-shadow:0 2px 12px #a855f71a}.admin-sidebar h2{margin-bottom:0;margin-right:2rem}}@media (max-width: 900px){.admin-sidebar{display:none}.admin-sidebar.open{display:flex;position:fixed;left:0;top:0;width:80vw;height:100vh;border-radius:0 32px 32px 0;flex-direction:column;align-items:flex-start;z-index:100;background:linear-gradient(160deg,#a855f7 0%,#44318D 100%);box-shadow:2px 0 24px #a855f71a;padding:2.5rem 1.5rem 2rem}.admin-content{margin-left:0;padding:1.2rem .5rem;border-radius:0}.hamburger{display:block}.admin-cards{grid-template-columns:1fr;gap:1.2rem}}.projects-admin-page{display:flex;min-height:100vh;width:100%;font-family:Arial,sans-serif}.projects-admin-page .hamburger{display:none;position:fixed;top:1rem;left:1rem;z-index:15;background:rgba(10,10,20,.8);border:1px solid #a855f7;color:#fff;padding:.6rem 1rem;border-radius:10px;cursor:pointer}.projects-admin-page .main-content{margin-left:240px;padding:2rem;flex:1}.projects-admin-page .main-content .header-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.projects-admin-page .main-content .header-section h2{color:#a855f7;font-size:1.8rem;margin:0}.projects-admin-page .main-content .header-section .github-import-btn{padding:.8rem 1.5rem;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #6366f14d;font-size:.95rem}.projects-admin-page .main-content .header-section .github-import-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.projects-admin-page .main-content .header-section .github-import-btn:active{transform:translateY(0)}.projects-admin-page .main-content .import-status{padding:1rem 1.5rem;margin-bottom:1.5rem;background:rgba(168,85,247,.1);border:1px solid rgba(168,85,247,.3);border-radius:10px;color:#fff;text-align:center;font-weight:600}.projects-admin-page .main-content h2{color:#a855f7;margin-bottom:2rem;font-size:1.8rem}.projects-admin-page .main-content .projects-grid{display:grid;grid-template-columns:300px 300px 300px;gap:1.5rem}.projects-admin-page .main-content .project-card{background-color:#111;border:1px solid #333;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .2s}.projects-admin-page .main-content .project-card:hover{border-color:#a855f7}.projects-admin-page .main-content .project-card .project-image{width:100%;height:160px;overflow:hidden}.projects-admin-page .main-content .project-card .project-image img{width:100%;height:100%;object-fit:contain;background:#f5f5f5;transition:transform .3s}.projects-admin-page .main-content .project-card .project-image img:hover{transform:scale(1.05)}.projects-admin-page .main-content .project-card .project-actions{padding:.5rem;display:flex;justify-content:flex-end}.projects-admin-page .main-content .project-card .project-actions .edit-btn{padding:.3rem .6rem;background-color:#000;border:1px solid #a855f7;border-radius:6px;color:#fff;cursor:pointer;transition:all .2s}.projects-admin-page .main-content .project-card .project-actions .edit-btn:hover{background-color:#a855f7;color:#000}@media (max-width: 768px){.projects-admin-page{flex-direction:column}.projects-admin-page .sidebar{width:100%;position:relative;border-right:none;border-bottom:2px solid #a855f7}.projects-admin-page .main-content{margin-left:0}.projects-admin-page .projects-grid{grid-template-columns:1fr}}.edit-project{display:flex;flex-direction:column;margin:100px auto;padding:3rem 2rem;background:rgba(20,20,20,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(168,85,247,.3);border-radius:24px;width:90%;max-width:900px;box-shadow:0 8px 32px #a855f733,0 0 80px #a855f71a;color:#e9d7ff;overflow-x:hidden}.edit-project h2{margin-bottom:2.5rem;color:#a855f7;margin-top:0;text-align:center;font-size:2.2rem;font-weight:700;text-shadow:0 2px 10px rgba(168,85,247,.3)}.edit-project form{display:flex;flex-direction:column;margin-left:auto;margin-right:auto;width:100%;max-width:100%;gap:2rem}.edit-project form label:not(.tech-checkbox){display:block;font-size:.95rem;font-weight:600;color:#c084fc;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.edit-project form input:not([type=checkbox]):not([type=file]){padding:1.1rem 1.3rem;border-radius:14px;border:2px solid rgba(168,85,247,.3);background:rgba(15,15,25,.6);color:#fff;font-size:1rem;transition:all .3s ease}.edit-project form input:not([type=checkbox]):not([type=file]):focus{outline:none;border-color:#a855f7;box-shadow:0 0 0 3px #a855f71a,0 0 20px #a855f733;background:rgba(15,15,25,.8)}.edit-project form input:not([type=checkbox]):not([type=file])::placeholder{color:#e9d7ff66}.edit-project form textarea{padding:1.1rem 1.3rem;border-radius:14px;border:2px solid rgba(168,85,247,.3);background:rgba(15,15,25,.6);color:#fff;font-size:1rem;min-height:120px;resize:vertical;font-family:inherit;transition:all .3s ease}.edit-project form textarea:focus{outline:none;border-color:#a855f7;box-shadow:0 0 0 3px #a855f71a,0 0 20px #a855f733;background:rgba(15,15,25,.8)}.edit-project form textarea::placeholder{color:#e9d7ff66}.edit-project form .technologies-selector{margin-top:.8rem;padding:1rem;background:rgba(15,15,25,.5);border-radius:14px;border:1px solid rgba(168,85,247,.2)}.edit-project form .technologies-selector .tech-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.8rem}.edit-project form .technologies-selector .tech-checkboxes .tech-checkbox{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;background:rgba(168,85,247,.08);border:1px solid rgba(168,85,247,.2);border-radius:10px;cursor:pointer;transition:all .2s ease}.edit-project form .technologies-selector .tech-checkboxes .tech-checkbox:hover{background:rgba(168,85,247,.15);border-color:#a855f766;transform:translateY(-2px)}.edit-project form .technologies-selector .tech-checkboxes .tech-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#a855f7}.edit-project form .technologies-selector .tech-checkboxes .tech-checkbox span{font-size:.95rem;color:#e9d7ff;font-weight:500}.edit-project form .technologies-selector .tech-checkboxes .tech-checkbox:has(input:checked){background:rgba(168,85,247,.25);border-color:#a855f7}.edit-project form .selected-technos{margin-top:1.2rem;padding:1.2rem;background:rgba(168,85,247,.08);border-radius:12px;border:1px solid rgba(168,85,247,.2)}.edit-project form .selected-technos strong{display:block;margin-bottom:.8rem;color:#a855f7;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.edit-project form .selected-technos .tech-tags{display:flex;flex-wrap:wrap;gap:.6rem}.edit-project form .selected-technos .tech-tags .tech-tag{padding:.5rem 1rem;background:linear-gradient(135deg,#a855f7 0%,#9333ea 100%);border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;box-shadow:0 2px 8px #a855f74d;animation:slideIn .3s ease}.edit-project form .image-mode-selector{margin-top:1rem}.edit-project form .image-mode-selector label{display:block;margin-bottom:.8rem;color:#c084fc;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.edit-project form .image-mode-selector .mode-buttons{display:flex;gap:1rem}.edit-project form .image-mode-selector .mode-buttons button{flex:1;padding:1rem;background:rgba(168,85,247,.1);border:2px solid rgba(168,85,247,.3);border-radius:12px;color:#c084fc;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.edit-project form .image-mode-selector .mode-buttons button:hover{background:rgba(168,85,247,.2);border-color:#a855f780}.edit-project form .image-mode-selector .mode-buttons button.active{background:linear-gradient(135deg,#a855f7 0%,#9333ea 100%);border-color:#a855f7;color:#fff;box-shadow:0 4px 15px #a855f74d}.edit-project form .screenshot-config{margin-top:1.5rem;padding:1.5rem;background:rgba(15,15,25,.5);border-radius:14px;border:1px solid rgba(168,85,247,.2)}.edit-project form .screenshot-config .url-inputs{margin-bottom:1.5rem}.edit-project form .screenshot-config .url-inputs>label{display:block;margin-bottom:.8rem;color:#c084fc;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.edit-project form .screenshot-config .url-inputs .url-input-group{display:flex;gap:.8rem;margin-bottom:.8rem}.edit-project form .screenshot-config .url-inputs .url-input-group input[type=url]{flex:1;padding:1rem 1.2rem;border-radius:12px;border:2px solid rgba(168,85,247,.3);background:rgba(15,15,25,.6);color:#fff;font-size:1rem;transition:all .3s ease}.edit-project form .screenshot-config .url-inputs .url-input-group input[type=url]:focus{outline:none;border-color:#a855f7;box-shadow:0 0 0 3px #a855f71a;background:rgba(15,15,25,.8)}.edit-project form .screenshot-config .url-inputs .url-input-group input[type=url]::placeholder{color:#e9d7ff66}.edit-project form .screenshot-config .url-inputs .url-input-group .remove-url{padding:.8rem 1rem;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:10px;color:#ef4444;cursor:pointer;transition:all .2s ease;font-size:1rem}.edit-project form .screenshot-config .url-inputs .url-input-group .remove-url:hover{background:rgba(239,68,68,.2);transform:scale(1.05)}.edit-project form .screenshot-config .url-inputs .add-url{width:100%;padding:.9rem;background:rgba(168,85,247,.1);border:2px dashed rgba(168,85,247,.4);border-radius:10px;color:#c084fc;font-weight:600;cursor:pointer;transition:all .3s ease}.edit-project form .screenshot-config .url-inputs .add-url:hover{background:rgba(168,85,247,.2);border-color:#a855f7}.edit-project form .screenshot-config .screenshot-count label{display:block;margin-bottom:.6rem;color:#c084fc;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.edit-project form .screenshot-config .screenshot-count select{width:100%;padding:1rem 1.2rem;border-radius:12px;border:2px solid rgba(168,85,247,.3);background:rgba(15,15,25,.6);color:#fff;font-size:1rem;cursor:pointer;transition:all .3s ease}.edit-project form .screenshot-config .screenshot-count select:focus{outline:none;border-color:#a855f7;box-shadow:0 0 0 3px #a855f71a}.edit-project form .screenshot-config .screenshot-count select option{background:#1a1a2e;color:#fff}.edit-project form .screenshot-config .screenshot-count .helper-text{margin-top:.6rem;font-size:.85rem;color:#c084fc;font-style:italic}.edit-project form input[type=file]{padding:1.2rem;border-radius:14px;border:2px dashed rgba(168,85,247,.4);background:rgba(15,15,25,.4);color:#fff;font-size:.95rem;transition:all .3s ease;cursor:pointer}.edit-project form input[type=file]:hover{border-color:#a855f7;background:rgba(15,15,25,.6)}.edit-project form input[type=file]:focus{outline:none;border-color:#a855f7;box-shadow:0 0 0 3px #a855f71a}.edit-project form input[type=file]::file-selector-button{margin-right:12px;border:none;background:linear-gradient(135deg,#a855f7 0%,#9333ea 100%);padding:.7rem 1.2rem;color:#fff;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.edit-project form input[type=file]::file-selector-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #a855f766}.edit-project form .ajoute{padding:1rem 2.5rem;border-radius:12px;text-decoration:none;color:#fff;border:none;transition:all .3s ease;background:linear-gradient(135deg,#a855f7 0%,#9333ea 100%);width:fit-content;margin-left:auto;margin-right:auto;font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;box-shadow:0 4px 15px #a855f74d}.edit-project form .ajoute:hover{transform:translateY(-3px);box-shadow:0 8px 25px #a855f780}.edit-project form .ajoute:active{transform:translateY(-1px)}.edit-project .technologies-selector{margin-top:1rem}.edit-project .technologies-selector .tech-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;margin-top:.5rem}.edit-project .technologies-selector .tech-checkbox{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:rgba(0,0,0,.3);border:1px solid rgba(192,132,252,.4);border-radius:8px;cursor:pointer;transition:all .2s}.edit-project .technologies-selector .tech-checkbox:hover{background:rgba(168,85,247,.2);border-color:#c084fc99}.edit-project .technologies-selector .tech-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px;margin:0;accent-color:#a855f7}.edit-project .technologies-selector .tech-checkbox span{font-size:.95rem;color:#e9d7ff}.edit-project .selected-technos{margin-top:1rem;padding:1rem;background:rgba(0,0,0,.2);border-radius:8px;border:1px solid rgba(192,132,252,.3)}.edit-project .selected-technos strong{color:#a855f7;display:block;margin-bottom:.5rem}.edit-project .selected-technos .tech-tags{display:flex;flex-wrap:wrap;gap:.5rem}.edit-project .selected-technos .tech-tags .tech-tag{display:inline-block;padding:.4rem .9rem;background:rgba(168,85,247,.3);border:1px solid rgba(192,132,252,.5);border-radius:20px;color:#e9d7ff;font-size:.9rem}@media (max-width: 768px){.edit-project{width:95%;padding:2rem 1rem;margin-top:80px}.edit-project h2{font-size:1.5rem}.edit-project form{width:100%;gap:1rem}.edit-project form input,.edit-project form textarea{font-size:.9rem;padding:.8rem 1rem}.edit-project .technologies-selector .tech-checkboxes{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem}.edit-project .technologies-selector .tech-checkbox{padding:.5rem .7rem;font-size:.85rem}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.edit-project{width:95%;padding:2rem 1.5rem}.edit-project form{max-width:100%}.edit-project form .technologies-selector .tech-checkboxes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (max-width: 768px){.edit-project{margin-top:80px;padding:1.5rem 1rem;border-radius:16px}.edit-project h2{font-size:1.8rem}.edit-project form{gap:1.5rem}.edit-project form .technologies-selector .tech-checkboxes{grid-template-columns:1fr}}.manage-technologies-page{margin-bottom:150px}.tech-add-form{margin-bottom:3rem;padding:2rem;background:rgba(20,20,20,.9);border-radius:16px;border:1px solid rgba(168,85,247,.3);box-shadow:0 4px 20px #a855f733}.tech-add-form h3{color:#c084fc;margin-bottom:1.5rem;font-size:1.3rem}.tech-add-form form{display:flex;gap:1rem;max-width:700px;align-items:flex-end}.tech-add-form form .form-group{flex:1}.tech-add-form form .form-group label{display:block;margin-bottom:.5rem;color:#c084fc;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.tech-add-form form .form-group input{width:100%;padding:1rem 1.2rem;background:rgba(15,15,25,.6);border:2px solid rgba(168,85,247,.3);border-radius:12px;color:#fff;font-size:1rem;transition:all .3s ease}.tech-add-form form .form-group input:focus{outline:none;border-color:#a855f7;box-shadow:0 0 0 3px #a855f71a;background:rgba(15,15,25,.8)}.tech-add-form form button{padding:1rem 2rem;background:linear-gradient(135deg,#a855f7 0%,#9333ea 100%);border:none;border-radius:12px;color:#fff;font-weight:700;font-size:1rem;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 15px #a855f74d}.tech-add-form form button:hover{transform:translateY(-3px);box-shadow:0 6px 20px #a855f780}.tech-add-form form button:active{transform:translateY(-1px)}.tech-list{margin-bottom:100px}.tech-list ul{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.tech-list ul li{display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.5rem;background:rgba(168,85,247,.08);border:1px solid rgba(168,85,247,.3);border-radius:12px;color:#fff;transition:all .3s ease}.tech-list ul li:hover{background:rgba(168,85,247,.15);border-color:#a855f780;transform:translateY(-2px);box-shadow:0 4px 12px #a855f733}.tech-list ul li .tech-info{flex:1}.tech-list ul li .tech-info .tech-name{color:#fff;font-weight:600;font-size:1.05rem;display:block;margin-bottom:.3rem}.tech-list ul li .tech-info .tech-icon{color:#c084fc;font-size:.85rem;opacity:.8}.tech-list ul li button{padding:.6rem 1.2rem;background:rgba(239,68,68,.1);color:#ef4444;border:1px solid rgba(239,68,68,.3);border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s ease}.tech-list ul li button:hover{background:rgba(239,68,68,.2);border-color:#ef4444;transform:scale(1.05)}.message{padding:1rem;margin-bottom:1.5rem;background:rgba(168,85,247,.2);border:1px solid #a855f7;border-radius:12px;color:#fff;text-align:center;font-weight:500}@media (max-width: 1024px){.tech-list ul{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.tech-list ul{grid-template-columns:1fr}}.footer{width:100%;background-color:#03071280;color:#fff;padding:1.5rem 2rem;display:flex;align-items:center;justify-content:center;gap:2rem}.footer>*{flex:1;text-align:center}.footer .socials{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:0}.footer .socials a{color:#fff;font-size:1.5rem;transition:color .3s ease;display:flex;align-items:center;justify-content:center;border-radius:50%;width:44px;height:44px;background:rgba(168,85,247,.08);box-shadow:0 2px 8px #a855f714}.footer .socials a:hover{color:#60a5fa;background:rgba(168,85,247,.18);box-shadow:0 4px 16px #a855f72e}.footer .legal{display:flex;flex-direction:column;gap:.25rem;align-items:center}.footer .legal a{color:#cbd5e1;text-decoration:none;font-size:.9rem;cursor:pointer;transition:color .3s ease}.footer .legal a:hover{color:#fff}.footer .admin-icon{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:1.2rem auto 0;font-size:2rem;color:#a855f7;transition:color .2s,transform .2s}.footer .admin-icon svg{font-size:2rem;transition:color .3s ease}.footer .admin-icon svg:hover{color:#60a5fa}.footer .admin-icon:hover{color:#c084fc;transform:scale(1.1)}@media screen and (max-width: 768px){.footer{flex-direction:column;gap:1.5rem;text-align:center}.footer>*{flex:none;width:100%}.footer .legal{align-items:center;gap:.5rem}.footer .socials{gap:1rem;font-size:1.3rem}.footer .socials a{font-size:1.3rem;width:36px;height:36px}.footer .admin-icon{font-size:1.5rem}}.legal{display:flex;justify-content:center;gap:2rem;margin-bottom:1.2rem}.legal a{color:#a855f7;text-decoration:none;font-size:1rem;cursor:pointer;transition:color .2s;font-weight:500}.legal a:hover{color:#c084fc;text-decoration:underline}.admin-icon{display:flex;justify-content:center;align-items:center;margin:1.2rem auto 0;font-size:2.2rem;color:#a855f7;cursor:pointer;transition:color .2s,transform .2s}.admin-icon:hover{color:#c084fc;transform:scale(1.1)}@media (max-width: 768px){.legal{gap:1rem;font-size:.95rem}.admin-icon{font-size:1.5rem}}.socials{display:flex;justify-content:center;align-items:center;gap:2rem;margin-bottom:1.5rem}.socials a{color:#c084fc;font-size:2rem;transition:color .2s;display:flex;align-items:center;justify-content:center;border-radius:50%;width:44px;height:44px;background:rgba(168,85,247,.08);box-shadow:0 2px 8px #a855f714}.socials a:hover{color:#a855f7;background:rgba(168,85,247,.18);box-shadow:0 4px 16px #a855f72e}@media (max-width: 768px){.socials{gap:1rem;font-size:1.3rem}.socials a{font-size:1.3rem;width:36px;height:36px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes progressBar{0%{width:0%}to{width:100%}}.loader-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#0a0a14 0%,#1a0a2e 100%);display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .5s ease}.loader-container .loader-content{text-align:center;animation:fadeIn .8s ease}.loader-container .loader-content .spinner{position:relative;width:120px;height:120px;margin:0 auto 2rem}.loader-container .loader-content .spinner .spinner-ring{position:absolute;top:0;left:0;width:100%;height:100%;border:4px solid transparent;border-top-color:#a855f7;border-radius:50%;animation:spin 1.5s cubic-bezier(.5,0,.5,1) infinite}.loader-container .loader-content .spinner .spinner-ring:nth-child(1){border-top-color:#a855f7;animation-delay:0s}.loader-container .loader-content .spinner .spinner-ring:nth-child(2){border-top-color:#c084fc;animation-delay:-.3s;width:90%;height:90%;top:5%;left:5%}.loader-container .loader-content .spinner .spinner-ring:nth-child(3){border-top-color:#e9d7ff;animation-delay:-.6s;width:80%;height:80%;top:10%;left:10%}.loader-container .loader-content .loader-title{font-size:2.5rem;font-weight:700;color:#fff;margin-bottom:.5rem;background:linear-gradient(135deg,#a855f7 0%,#c084fc 50%,#e9d7ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:pulse 2s ease infinite}.loader-container .loader-content .loader-subtitle{font-size:1.1rem;color:#c084fc;margin-bottom:2rem;font-weight:500;letter-spacing:1px}.loader-container .loader-content .loader-progress{width:250px;height:4px;background:rgba(168,85,247,.2);border-radius:10px;overflow:hidden;margin:0 auto}.loader-container .loader-content .loader-progress .loader-bar{height:100%;background:linear-gradient(90deg,#a855f7 0%,#c084fc 50%,#e9d7ff 100%);border-radius:10px;animation:progressBar 2.5s ease;box-shadow:0 0 10px #a855f799}@media (max-width: 768px){.loader-container .loader-content .spinner{width:100px;height:100px}.loader-container .loader-content .loader-title{font-size:2rem}.loader-container .loader-content .loader-subtitle{font-size:1rem}.loader-container .loader-content .loader-progress{width:200px}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:9998;padding:1.5rem;background:rgba(10,10,20,.98);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:2px solid rgba(168,85,247,.3);box-shadow:0 -4px 30px #00000080;animation:slideUp .5s ease}.cookie-consent .cookie-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.cookie-consent .cookie-content .cookie-icon{font-size:3rem;animation:pulse 2s ease infinite}.cookie-consent .cookie-content .cookie-text{flex:1;min-width:300px}.cookie-consent .cookie-content .cookie-text h3{color:#a855f7;font-size:1.2rem;margin:0 0 .5rem;font-weight:700}.cookie-consent .cookie-content .cookie-text p{color:#e9d7ff;margin:0;font-size:.95rem;line-height:1.5}.cookie-consent .cookie-content .cookie-actions{display:flex;gap:1rem;flex-shrink:0}.cookie-consent .cookie-content .cookie-actions button{padding:.8rem 1.8rem;border:none;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.cookie-consent .cookie-content .cookie-actions button.btn-decline{background:rgba(168,85,247,.1);color:#c084fc;border:1px solid rgba(168,85,247,.3)}.cookie-consent .cookie-content .cookie-actions button.btn-decline:hover{background:rgba(168,85,247,.2);border-color:#a855f780}.cookie-consent .cookie-content .cookie-actions button.btn-accept{background:linear-gradient(135deg,#a855f7 0%,#9333ea 100%);color:#fff;box-shadow:0 4px 15px #a855f74d}.cookie-consent .cookie-content .cookie-actions button.btn-accept:hover{transform:translateY(-2px);box-shadow:0 6px 20px #a855f780}.cookie-consent .cookie-content .cookie-actions button.btn-accept:active{transform:translateY(0)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width: 768px){.cookie-consent{padding:1rem}.cookie-consent .cookie-content{flex-direction:column;text-align:center;gap:1rem}.cookie-consent .cookie-content .cookie-icon{font-size:2.5rem}.cookie-consent .cookie-content .cookie-text{min-width:100%}.cookie-consent .cookie-content .cookie-text h3{font-size:1.1rem}.cookie-consent .cookie-content .cookie-text p{font-size:.9rem}.cookie-consent .cookie-content .cookie-actions{width:100%;flex-direction:column}.cookie-consent .cookie-content .cookie-actions button{width:100%;padding:1rem}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root,.app{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;z-index:1;background-color:#000;color:#fff;font-family:Arial,sans-serif;overflow-x:hidden}.glow{position:fixed;bottom:-250px;right:-250px;width:900px;height:900px;background:radial-gradient(circle,rgba(150,0,255,.8) 0%,rgba(150,0,255,.4) 30%,rgba(0,0,0,0) 70%);filter:blur(140px);z-index:-1;pointer-events:none}.content{flex:1;width:100%;max-width:1200px;display:flex;flex-direction:column;align-items:center}section{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center}h1,h2,h3{margin-bottom:1rem;color:#a855f7}
