@font-face{font-family:Orbitron;src:url(/fonts/futuristic/Orbitron-Regular.ttf) format("truetype");font-display:block}@font-face{font-family:Roboto;src:url(/fonts/basic/Roboto-Regular.ttf) format("truetype");font-display:block}@font-face{font-family:Oswald;src:url(/fonts/static/Oswald.ttf) format("truetype");font-display:block}body,html{font-family:Oswald,sans-serif!important;margin:0;padding:0;width:100%;height:100dvh;height:100svh;overflow-y:auto;background-color:#000}h1,h2,h3,h4,h5,h6,p{font-family:Oswald,sans-serif}canvas{display:block;width:100vw;height:100dvh;height:100svh}main{width:100%;height:100dvh;height:100svh;background:#000}.loading-overlay,main{display:flex;justify-content:center;align-items:center}.loading-overlay{position:fixed;top:0;left:0;height:100vh;width:100vw;background-color:#1a1a1a;z-index:10}.loading-container{width:200px;text-align:center;font-family:Oswald,sans-serif;color:#fff}.loading-text{margin-bottom:10px;font-size:1rem}.loading-bar-container{height:10px;background:#444;border-radius:5px;overflow:hidden;margin-bottom:10px}.loading-bar{height:100%;background:linear-gradient(90deg,#4facfe,#00f2fe);transition:width .1s ease-in-out}.loading-button{margin-top:10px;padding:8px 16px;font-size:1rem;background-color:#00f2fe;border:none;border-radius:5px;cursor:pointer;color:#000}.svg-logo{width:80px;height:auto;margin:0 auto 20px}.logo-wrapper{align-items:center}.logo-wrapper,.overlay-container{display:flex;justify-content:center}.overlay-container{position:absolute;top:0;left:0;width:60vw;max-width:60%;height:100%;background:hsla(0,0%,100%,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid hsla(0,0%,100%,.1);color:#fff;padding:40px;box-sizing:border-box;flex-direction:column;gap:1rem;z-index:20;opacity:0;transition:opacity .5s ease}.overlay-container.fade-in{opacity:1}.overlay-container.fade-out{opacity:0;pointer-events:none}.overlay-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.overlay-title{font-size:2rem;font-weight:700}.overlay-input{padding:10px;border-radius:6px;border:1px solid hsla(0,0%,100%,.2);background:hsla(0,0%,100%,.1);color:#fff;outline:none;margin-bottom:10px;font-size:16px}.overlay-button{padding:10px;background:#fff;color:#000;border:none;border-radius:6px;cursor:pointer;margin-bottom:20px;font-weight:700;transition:background .3s ease}.overlay-button:hover{background:hsla(0,0%,100%,.85)}.overlay-button.return{margin-top:auto}.overlay-response{flex:1 1;overflow-y:auto;padding:5px;border:1px solid hsla(0,0%,100%,.1);background:hsla(0,0%,100%,.05);border-radius:6px;white-space:pre-wrap;margin-bottom:20px;scroll-behavior:smooth}.chat-entry{margin-bottom:10px;white-space:pre-wrap;font-size:.9rem;line-height:1.4}.chat-entry.user{text-align:right;color:#fff}.chat-entry.bot{text-align:left;color:#ddd}.chat-entry.bot.info-message{font-style:italic;color:#bbb}.overlay-links{display:flex;flex-direction:row;justify-content:space-between;gap:20px;margin-top:20px;flex-wrap:wrap}.overlay-link-card{flex:1 1 48%;height:3rem;position:relative;border-radius:10px;overflow:hidden;text-decoration:none;color:#fff;transition:transform .3s ease;box-shadow:0 4px 10px rgba(0,0,0,.3)}.overlay-link-card:before{content:"";position:absolute;inset:0;background-size:cover;background-position:50%;opacity:1;transition:opacity .3s ease;z-index:0}.overlay-link-card.cv:before{background-image:url(/images/CV_background.JPG)}.overlay-link-card.projects:before{background-image:url(/images/projets_background.png)}.overlay-link-card:hover:before{opacity:.5}.overlay-link-card:hover{transform:scale(1.02)}.overlay-link-content{z-index:1;font-weight:700;font-size:1.1rem;text-align:center;text-shadow:1px 1px 4px rgba(0,0,0,.7)}.center-button-container,.overlay-link-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center-button-container{z-index:15;pointer-events:auto;transition:opacity .5s ease;opacity:1}.center-button-container.fade-in{opacity:1}.center-button-container.fade-out,.center-button-container.hide{opacity:0;pointer-events:none}.center-button-container.hide{transform:translate(-50%,-50%) scale(.95)}.explore-button{position:relative;width:15vw;height:15vw;border-radius:50%;border:1px solid #fd2e2e;background:transparent;color:#fff;font-size:1rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-weight:400;overflow:hidden;animation:pulseAnimation 2s ease-in-out infinite;transform:scale(1)}.explore-button:hover{border-color:#fd2e2e;animation:none}.explore-label{z-index:2;font-size:1rem;font-weight:100;position:relative}.pulse-ring{position:absolute;top:50%;left:50%;width:60px;height:60px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid #fd2e2e;opacity:0;pointer-events:none;z-index:1}.explore-button:hover .pulse-ring{animation:pulseEffect .8s ease-out forwards}.chat-entry.typing p{font-style:italic;opacity:.8}.typing-dot{display:inline-block;width:1ch;animation:blink 1s step-start infinite}@keyframes blink{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}@keyframes pulseEffect{0%{transform:translate(-50%,-50%) scale(1);opacity:.4}80%{transform:translate(-50%,-50%) scale(1.8);opacity:.2}to{transform:translate(-50%,-50%) scale(2.2);opacity:0}}@keyframes pulseAnimation{0%{transform:scale(1);box-shadow:0 0 0 0 #fd2e2e}70%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(248,163,52,0)}to{transform:scale(1);box-shadow:0 0 0 0 rgba(248,163,52,0)}}@keyframes slideInLeft{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideOutLeft{0%{transform:translateX(0);opacity:1}to{transform:translateX(-100%);opacity:0}}@keyframes slideOutBottom{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.slide-in-left{animation:slideInLeft .5s ease-out forwards}.slide-in-bottom{animation:slideInBottom .5s ease-out forwards}.slide-out-left{animation:slideOutLeft .4s ease-out forwards}.slide-out-bottom{animation:slideOutBottom .4s ease-out forwards}@media (max-width:768px){.overlay-container{width:100vw;max-width:none;border-right:none;border-bottom:1px solid hsla(0,0%,100%,.1);padding:16px;height:100dvh;box-sizing:border-box}.overlay-input{font-size:16px}.overlay-button.return{margin-top:16px}.overlay-response{max-height:40vh;overflow-y:auto}.explore-button{width:30vw;height:30vw;font-size:1.2rem}.overlay-links{flex-direction:column}.overlay-link-card{flex:none;width:100%}.overlay-header{padding-right:50px}}.info-container{width:100vw;right:.5rem;line-height:.9;pointer-events:none;text-align:right}.info-container,.logo-container{position:absolute;bottom:1rem;z-index:10}.logo-container{left:.5rem;width:40vw;display:flex;gap:1rem;pointer-events:auto}.logo{width:2rem;height:2rem;object-fit:contain;transition:transform .3s ease}.logo:hover{cursor:pointer;transform:scale(1.1)}.titre-container{position:absolute;top:2rem;left:.5rem;width:40vw;z-index:10;pointer-events:none;font-weight:700;text-align:left;line-height:.9}.sous-titre{font-size:2rem;color:#fff;font-weight:300;margin-top:1rem}h1{font-size:4rem}h1,h2{color:#fff;font-weight:700;margin:0}h2{font-size:3rem}.subtitle{font-size:2rem;color:#fff;font-weight:100;margin-top:1rem}.info-container,.titre-container{transition:opacity .6s ease;opacity:1}.info-container.fade-out,.titre-container.fade-out{opacity:0;pointer-events:none}.info-container.fade-in,.titre-container.fade-in{opacity:1}.info-footer{transition:opacity .6s ease;opacity:1}.info-footer.fade-out{opacity:0;pointer-events:none}.info-footer.fade-in{opacity:1}.mute-toggle{position:absolute;top:1rem;right:1rem;z-index:1000;color:#fff;font-size:24px;transition:transform .3s ease}.mute-toggle:hover{cursor:pointer;transform:scale(1.1)}@media (max-width:768px){.mobile-header-wrapper{display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:4rem 1rem env(safe-area-inset-bottom,3rem);min-height:100dvh;box-sizing:border-box}.titre-container{position:static;width:100%;text-align:center}.titre-container h1{font-size:3rem;margin-bottom:1.5rem}.sous-titre{font-size:2rem}.info-footer{display:flex;flex-direction:column;align-items:center;gap:2rem;padding-bottom:env(safe-area-inset-bottom,2rem)}.info-container{position:static;text-align:center;margin:0 auto}.info-container h2{font-size:2rem}.subtitle{font-size:1.5rem;margin-bottom:.5rem}.logo-container{position:static;justify-content:center;display:flex;gap:1rem;margin-top:.25rem;margin-bottom:1rem}.logo{width:1.6rem;height:1.6rem}.spacer{flex:1 1}}