@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;600&display=swap);code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.code-block[data-v-9804bcfa]{max-height:800px;border-radius:14px;max-width:min(800px,92%);margin:20px auto;background:rgba(45,45,45,.8);backdrop-filter:blur(2px);color:#f8f8f2;font-family:Fira Code,monospace,monospace;font-size:1rem;box-shadow:0 4px 8px rgba(0,0,0,.3);-webkit-user-select:text;-moz-user-select:text;user-select:text;transition:transform .3s ease,box-shadow .3s ease;padding:0;display:flex;position:relative;overflow:hidden}.code-block code[data-v-9804bcfa]{margin:0 20px 0 0;-o-object-fit:contain;object-fit:contain;display:block;padding:1em 0 1em 15px;overflow-x:auto;flex:1;line-height:1.5;font-family:Fira Code,monospace,monospace;font-size:1rem}.code-block code .line[data-v-9804bcfa]{display:block;height:1.5em;white-space:pre}.line-numbers[data-v-9804bcfa]{display:flex;flex-direction:column;padding:1em 12px 1em 20px;background-color:rgba(30,30,30,.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:right;border-right:1px solid hsla(0,0%,100%,.1);margin-right:10px;color:#aaa;font-family:Fira Code,monospace,monospace;font-size:1rem;line-height:1.5}.line-number[data-v-9804bcfa]{display:block;height:1.5em;font-size:1rem}.code-block[data-v-9804bcfa]:hover{transform:scale(1.02);box-shadow:0 12px 30px hsla(12,50%,60%,.5)}.copy-button[data-v-9804bcfa]{position:absolute;top:10px;right:10px;background-color:transparent;color:#f8f8f2;border:none;border-radius:50%;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .3s ease,transform .2s ease;z-index:2}.copy-button[data-v-9804bcfa]:focus,.copy-button[data-v-9804bcfa]:hover{background-color:hsla(0,0%,100%,.1);transform:scale(1.1);outline:none}.copy-button[data-v-9804bcfa]:focus-visible{box-shadow:0 0 0 2px #f8f8f2}.copy-button[data-v-9804bcfa]:active{background-color:hsla(0,0%,100%,.2)}.copy-button .icon[data-v-9804bcfa]{width:20px;height:20px;stroke:#f8f8f2}.copy-button:hover .icon[data-v-9804bcfa]{stroke:#fff}.copy-notification[data-v-9804bcfa]{position:absolute;top:10px;right:50px;background-color:rgba(50,205,50,.8);color:#fff;padding:5px 10px;border-radius:4px;animation:fadeIn-9804bcfa .3s,fadeOut-9804bcfa .5s 1.5s;pointer-events:none;font-size:.9rem}@keyframes fadeIn-9804bcfa{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut-9804bcfa{0%{opacity:1}to{opacity:0}}.token.keyword[data-v-9804bcfa]{color:#569cd6}.token.string[data-v-9804bcfa]{color:#ce9178}.token.function[data-v-9804bcfa]{color:#dcdcaa}.token.comment[data-v-9804bcfa]{color:#6a9955}.token.variable[data-v-9804bcfa]{color:#9cdcfe}.token.operator[data-v-9804bcfa]{color:#d4d4d4}.token.number[data-v-9804bcfa]{color:#b5cea8}.token.class-name[data-v-9804bcfa]{color:#4ec9b0}.token.parameter[data-v-9804bcfa]{color:#9cdcfe}.token.punctuation[data-v-9804bcfa]{color:#d4d4d4}.token.constant[data-v-9804bcfa]{color:#4fc1ff}.token.boolean[data-v-9804bcfa]{color:#569cd6}.token.error[data-v-9804bcfa]{color:#f44747;background-color:rgba(255,0,0,.1)}.token.warning[data-v-9804bcfa]{color:#f80;background-color:rgba(255,136,0,.1)}.image-container[data-v-516f57ef]{position:relative;max-height:600px;min-height:150px;width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:30px;margin-top:20px}.image-component[data-v-516f57ef]{max-width:min(800px,92%);max-height:500px;border-radius:14px;box-shadow:0 4px 8px rgba(0,0,0,.3);transition:transform .3s ease,box-shadow .3s ease;opacity:0;animation:fadeIn-516f57ef .5s forwards}.image-component[data-v-516f57ef]:hover{transform:scale(1.02);box-shadow:0 12px 30px hsla(12,50%,60%,.5)}.image-caption[data-v-516f57ef]{margin-top:4px;max-width:min(800px,92%);text-align:center;color:#ccc;font-size:1rem;font-style:italic;padding:0 10px;line-height:1.4}@keyframes fadeIn-516f57ef{0%{opacity:0}to{opacity:1}}.image-container button[data-v-516f57ef]{background-color:#2d89ef;color:#fff;border:none;border-radius:6px;padding:8px 14px;cursor:pointer;margin-top:10px;font-weight:500;position:absolute;top:50%;right:50%;z-index:2;transform:translate(50%,-50%)}.image-container button[data-v-516f57ef]:before{content:"↻ "}.video-component{position:relative;max-width:min(800px,92%);width:100%;margin:20px auto}.video-component video{margin:0 auto;width:auto;height:auto;max-height:400px;max-width:min(800px,92%);display:block;border-radius:14px;box-shadow:0 10px 25px rgba(0,0,0,.3);transition:transform .3s ease,box-shadow .3s ease;background-color:#000}.video-component video:hover{transform:scale(1.02);box-shadow:0 12px 30px hsla(12,50%,60%,.5)}.video-caption{margin:4px auto 0 auto;width:100%;max-width:min(800px,92%);text-align:center;color:#ccc;font-size:1rem;font-style:italic;padding:0 10px;line-height:1.4}.skills-project{display:flex;gap:8px;flex-wrap:wrap}.skill-icon{font-size:32px;font-style:normal}.navbar{height:30px;position:fixed;top:0;left:0;z-index:1000;width:100vw;background:hsla(0,0%,100%,.05);backdrop-filter:blur(10px);border-bottom:1px solid hsla(0,0%,100%,.1);padding:1rem 0}.nav-list{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem;list-style:none;margin:0;padding:0}.nav-item{text-align:center}.nav-link{color:#fff;text-decoration:none;padding:.5rem 1rem;transition:all .3s ease;border-radius:8px;background:hsla(0,0%,100%,.05)}.nav-link:hover{background:hsla(0,0%,100%,.1);transform:translateY(-2px)}.home-view{padding:0;font-family:Poppins,sans-serif;color:#d8d8d8;min-height:100vh;overflow-x:hidden;width:100vw;transition:background-color 1.2s ease,color 1.2s ease}.content{max-width:1100px;margin:0 auto;padding-top:40px;position:relative;z-index:2}.title{font-weight:600;font-size:3.6rem;text-align:center;margin-bottom:15px;color:#cc7a66;text-shadow:0 2px 6px hsla(12,50%,60%,.5);letter-spacing:1.8px;transition:color .3s ease}.title:hover{color:#d1947e;cursor:default}.description{max-width:700px;margin:0 auto 50px;font-size:1.2rem;line-height:1.6;color:#bbb;font-weight:300}.description,h2{text-align:center}h2{font-weight:600;font-size:2.2rem;color:#cc7a66;margin-bottom:30px;text-transform:uppercase;letter-spacing:1.3px;position:relative}h2:after{content:"";display:block;width:50px;height:2.5px;background:#cc7a66;margin:12px auto 0;border-radius:2px}h3{font-weight:600;font-size:1.8rem;color:#b87333;margin-top:20px;margin-bottom:10px;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}p{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.description{max-width:min(800px,80%)}.about p{font-weight:300;font-size:1.1rem;max-width:min(800px,92%);margin:0 auto;line-height:1.6;color:#ccc;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:justify}.project-list{display:flex;flex-wrap:wrap;gap:25px;padding:0 10px;justify-content:center}.project-card{flex:1 1 320px;max-width:350px;background:#273542;border-radius:14px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.25);transition:transform .3s ease,box-shadow .3s ease;cursor:pointer}.project-card:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 15px 30px hsla(12,50%,60%,.3)}.project-card img{width:100%;height:200px;-o-object-fit:cover;object-fit:cover;display:block;filter:brightness(.95);transition:filter .3s ease;border-radius:14px 14px 0 0}.project-card:hover img{filter:brightness(1)}.project-card h3{font-weight:600;font-size:1.5rem;margin:15px 18px 8px;color:#cc7a66;-webkit-user-select:none;-moz-user-select:none;user-select:none}.project-card p{margin:0 18px 18px;color:#ddd;font-weight:300;line-height:1.4;font-size:1rem}.project-card p br+span{display:block;margin-top:8px;font-style:italic;color:#d19b85}.project-card .btn{margin:0 18px 18px;display:inline-block;padding:10px 22px;background:linear-gradient(45deg,#cc7a66,#d1947e);border-radius:28px;color:#fff;font-weight:600;text-decoration:none;box-shadow:0 4px 12px hsla(12,50%,60%,.3);transition:background .3s ease,box-shadow .3s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.project-card .btn:hover{background:linear-gradient(45deg,#d1947e,#cc7a66);box-shadow:0 6px 18px hsla(12,50%,60%,.5)}.contact-form{max-width:100%;width:90%;padding:32px 20px;box-sizing:border-box;margin:0 auto;background:rgba(39,53,66,.85);border-radius:18px;box-shadow:0 8px 22px hsla(12,50%,60%,.3)}.contact input,.contact textarea{width:100%;box-sizing:border-box;padding:12px 16px;margin-bottom:18px;border-radius:10px;border:none;background:#364957;color:#ddd;font-size:1rem;font-weight:300;transition:background .3s ease,box-shadow .3s ease;resize:none}.contact input::-moz-placeholder,.contact textarea::-moz-placeholder{color:#999}.contact input::placeholder,.contact textarea::placeholder{color:#999}.contact input:focus,.contact textarea:focus{outline:none;background:#cc7a66;box-shadow:0 0 8px #cc7a66;color:#fff}.contact button{width:100%;padding:14px;background:linear-gradient(45deg,#cc7a66,#d1947e);border:none;border-radius:28px;color:#fff;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 6px 20px hsla(12,50%,60%,.5);transition:background .3s ease,box-shadow .3s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.contact button:hover{background:linear-gradient(45deg,#d1947e,#cc7a66);box-shadow:0 9px 26px hsla(12,50%,60%,.75)}section{opacity:0;animation:fadeInUp 1s ease forwards;animation-delay:.3s;margin-bottom:80px;scroll-margin-top:60px}section:nth-child(2){animation-delay:.4s}section:nth-child(3){animation-delay:.5s}section:nth-child(4){animation-delay:.6s}section:nth-child(5){animation-delay:.7s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project ul{list-style:none;padding:0;margin:20px auto;max-width:800px;display:flex;flex-direction:column;gap:14px}.project a{color:#ffae8a}.project li{background:#273542;padding:14px 20px;border-radius:12px;font-size:1.05rem;color:#ddd;font-weight:300;box-shadow:0 6px 16px hsla(12,50%,60%,.25);transition:transform .2s ease,box-shadow .2s ease}.project li:hover{transform:translateY(-4px);box-shadow:0 8px 20px hsla(12,50%,60%,.35)}.project p{font-weight:300;font-size:1.1rem;max-width:min(800px,92%);margin:0 auto;line-height:1.6;color:#ccc;text-align:justify;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}strong{font-weight:600}.skills ul{list-style:none;padding:0;margin:0 auto;max-width:min(800px,90%);display:flex;flex-direction:column;gap:22px}.skills li{font-size:1.05rem;color:#ddd;font-weight:300;transition:transform .3s ease,box-shadow .3s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.skills li:hover{transform:translateY(-5px)}.skills strong{display:block;margin-bottom:8px;font-size:1.15rem;color:#ffae8a;font-weight:600;letter-spacing:.5px}.burger{display:none;flex-direction:column;justify-content:space-around;width:28px;height:24px;background:transparent;border:none;cursor:pointer;z-index:1100}.burger span{display:block;width:100%;height:3px;background:#fff;border-radius:2px;transition:all .3s ease}.burger span.open:first-child{transform:translateY(8px) rotate(45deg)}.burger span.open:nth-child(2){opacity:0}.burger span.open:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media (max-width:600px){.burger{display:flex;position:absolute;top:16px;right:20px}.nav-list{display:none;position:absolute;top:60px;left:50%;transform:translateX(-50%);width:90vw;background:hsla(0,0%,100%,.05);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.1);flex-direction:column;border-radius:16px;padding:12px 16px;z-index:1000;gap:6px}.nav-list.open{display:flex}.nav-item,.nav-list.open{background:hsla(0,0%,100%,.05);backdrop-filter:blur(10px)}.nav-item{width:100%;text-align:center}.nav-link{display:block;color:#fff;padding:.6rem 1rem;border-radius:8px;transition:background .3s ease;text-align:center;background:hsla(0,0%,100%,.05);backdrop-filter:blur(10px)}.nav-link:hover{background:hsla(0,0%,100%,.1)}}.custom-cursor[data-v-8d0a248a]{position:fixed;width:15px;height:15px;background-color:#ff9800;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transform-origin:center center;transition:opacity .3s ease,box-shadow .3s ease;z-index:9999;box-shadow:0 0 15px rgba(255,152,0,.9),0 0 25px rgba(255,152,0,.5);animation:pulse-8d0a248a 3s ease-in-out infinite}@keyframes pulse-8d0a248a{0%{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 15px rgba(255,152,0,.8),0 0 25px rgba(255,152,0,.5)}25%{transform:translate(-50%,-50%) scale(1.15);box-shadow:0 0 20px rgba(255,152,0,.9),0 0 30px rgba(255,152,0,.6)}50%{transform:translate(-50%,-50%) scale(1.3);box-shadow:0 0 25px #ff9800,0 0 40px rgba(255,152,0,.8)}75%{transform:translate(-50%,-50%) scale(1.15);box-shadow:0 0 20px rgba(255,152,0,.9),0 0 30px rgba(255,152,0,.6)}to{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 15px rgba(255,152,0,.8),0 0 25px rgba(255,152,0,.5)}}.ripple[data-v-8d0a248a]{position:fixed;width:20px;height:20px;background-color:rgba(255,152,0,.8);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transform-origin:center center;opacity:0;z-index:9998;animation:pulse-8d0a248a 3s ease-in-out infinite}.ripple-animation[data-v-8d0a248a]{animation:rippleEffect-8d0a248a .4s cubic-bezier(.215,.61,.355,1) forwards!important /* !important pour remplacer l'animation pulse pendant l'effet de clic */}@keyframes rippleEffect-8d0a248a{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(5);opacity:0}}body{margin:0;width:100%;background-color:#000;cursor:none}*{cursor:none!important}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}