body.dark-theme{--main-bg-color: #070505;--secondary-bg-color: #181818;--tag-bg-color: #23272F;--red-bg-color: #140c0c;--navbar-border-color: #4F1718;--primary-color: #631b1d;--highlight-color: #8d1d21;--field-focus: #181616;--text: #fff;--text-darker: #e0e0e0;--gradient0: #631b1d;--gradient1: #804024;--gradient2: #9C652A;--gradient0-dark: #441111;--gradient1-dark: #49180f;--gradient2-dark: #613511}body.light-theme{--main-bg-color: #f8f8f8;--secondary-bg-color: #ffffff;--tag-bg-color: #f0f0f0;--red-bg-color: #fbeaea;--navbar-border-color: #e0bcbc;--primary-color: #c94a4a;--highlight-color: #e57373;--field-focus: #f3eaea;--text: #222;--text-darker: #000;--gradient0: #c94a4a;--gradient1: #e6a86a;--gradient2: #ffe08a;--gradient0-dark: #b03a3a;--gradient1-dark: #e6c1a6;--gradient2-dark: #e6d1a6}.dark-theme .navbar-svg,.dark-theme .contact-svg,.dark-theme .theme-svg{filter:invert(1) brightness(90%)}.light-theme .navbar-svg,.light-theme .contact-svg,.light-theme .theme-svg{filter:invert(0) brightness(90%)}.dark-theme #contact .contact-item:hover .contact-svg{filter:invert(1) brightness(100%)}.light-theme #contact .contact-item:hover .contact-svg{filter:invert(0) brightness(100%)}#theme-toggle{position:absolute;top:18px;right:-10px;z-index:10000}*{font-family:Segoe UI,Arial,sans-serif}body,html{transition:background .5s ease-in-out;color:var(--text-darker)}#sections p{color:var(--text-darker);font-size:1.08rem;line-height:1.6}#root{color:var(--text-darker);background:var(--main-bg-color)}h1{font-size:3rem;margin:.2em 0 .4em;word-break:break-word;text-align:center;width:100%}section{width:100vw;min-width:100vw;height:100vh;flex-shrink:0;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;font-size:2rem;transition:background .5s;padding-top:5rem}.description{width:70%;text-align:center;color:var(--text)!important}#navbar{position:fixed;top:0;left:0;width:100vw;background:var(--red-bg-color);border-bottom:1px solid var(--navbar-border-color);display:flex;justify-content:center;gap:2rem;padding:1rem 0;z-index:1000;transition:top .3s,bottom .3s;box-shadow:0 2px 8px #0000002e}.navbar-svg{display:none;width:1.8em;vertical-align:middle}@media (max-width: 600px){.navbar-p{display:none}.navbar-svg{display:block}#navbar{top:auto;bottom:0;border-bottom:none;box-shadow:0 -2px 8px #0000002e}section{padding-bottom:3.5rem!important;padding-top:.15rem!important}#arrow-left,#arrow-right{display:none}}#navbar a{color:var(--text-darker);text-decoration:none;font-weight:700;padding:.5rem 1rem;border-radius:4px;transition:background .2s,color .2s}#navbar a p{margin:0;font-weight:700;color:var(--text-darker)}#navbar a.active{background:var(--primary-color);color:var(--text)}#navbar a.active p{color:var(--text)}.theme-svg{width:1.8em;vertical-align:middle;margin-right:.4em}#timeline a{color:var(--text)}#home{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;background:transparent!important}#dutas{width:26%;left:0%;background-color:var(--gradient0)}#assuromieux{width:10%;left:16%;background-color:var(--gradient0-dark)}#licence{width:37%;left:26%;background-color:var(--gradient1)}#master{width:37%;left:63%;background-color:var(--gradient2)}#dreamcorp{width:18.4%;left:80%;background-color:var(--gradient2-dark)}#timeline{width:85%;height:0;display:block;position:relative;top:26%}.timeline-element{height:25px;border-radius:50px;position:absolute;scale:.95;z-index:2000}#timeline-arrow{width:0;height:0;border-radius:3px;border-top:30px solid transparent;border-bottom:30px solid transparent;border-left:30px solid var(--gradient2);position:absolute;left:98%;top:-17px;z-index:100001}.timeline-info{position:absolute;border-left:2px solid var(--text-darker);z-index:-1!important;left:10px}.timeline-main .timeline-info{padding-left:10px;padding-top:25px;margin-top:25px}.timeline-top .timeline-info{padding-left:10px;padding-bottom:25px;margin-bottom:25px;top:-109px;width:350px}.timeline-info h3{color:var(--text);margin:0;font-size:1.4rem}.timeline-element .timeline-year{font-size:1.2rem;color:var(--text-darker);font-weight:600;margin:0}.timeline-element .timeline-location{font-size:1.2rem;color:var(--text-darker);margin:0}.timeline-top{top:-30px}section h2{margin-bottom:1rem!important}@media (max-width: 900px){#timeline{height:50%;width:0;top:0%}.timeline-element{width:25px!important;height:auto}.timeline-info{position:absolute;border-top:2px solid var(--text-darker);border-left:none}.timeline-main .timeline-info{left:-320px;padding-right:30px;width:280px;padding-top:5px;margin-top:13px}.timeline-top .timeline-info{padding-top:5px;padding-left:50px;margin-top:13px;top:0;left:25px;width:130px}.timeline-top{top:0;left:30px!important}#dutas{height:26%;top:0%;background-color:var(--gradient0)}#assuromieux{height:10%;top:16%;background-color:var(--gradient0-dark)}#licence{height:37%;top:26%;background-color:var(--gradient1)}#master{height:37%;top:63%;background-color:var(--gradient2)}#dreamcorp{height:17.2%;top:78%;background-color:var(--gradient2-dark)}section h2{margin-bottom:0}#timeline-arrow{width:0!important;height:0;border-left:30px solid transparent;border-right:30px solid transparent;border-top:30px solid var(--gradient2);left:-18px;top:95%}}@media (max-width: 750px){.timeline-info h3{font-size:1rem}.timeline-year,.timeline-location{font-size:.9rem!important}.timeline-main .timeline-info{left:-260px;width:220px}}@media (max-width: 500px){.timeline-info h3{font-size:.9rem}.timeline-main .timeline-info{left:-220px;width:180px}section h2{margin-top:1rem!important}.theme-svg{width:1.4em;vertical-align:middle;margin-right:.4em}}@media (max-width: 480px){.timeline-top .timeline-info{left:25px;width:90px}}@media (max-width: 430px){.timeline-main .timeline-info{left:-210px;width:170px}.description{font-size:.96rem!important}}#project-tags{position:sticky;left:0;right:0;z-index:10;width:100%;text-align:center;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}#projects h3{color:var(--text);text-align:center}#project-tags{top:3.5rem;padding-top:.5rem;padding-bottom:.5rem;gap:1rem}#projects h2{color:var(--text)}#project-tags{display:flex;gap:1rem;margin-bottom:2rem;overflow-x:inherit;padding:.5rem 0}.tag-cpp{--tag-color: #1067a8}.tag-kotlin{--tag-color: #A97BFF}.tag-opengl{--tag-color: #b4651c}.tag-threejs{--tag-color: #157512}.tag-godot{--tag-color: #61DAFB}.tag-python{--tag-color: #3572A5}#project-tags .tag[data-tag=All]{color:var(--text-darker);background:var(--tag-bg-color);border:1.5px solid #444}#project-tags .tag[data-tag=All].active{color:var(--text);background:var(--primary-color);border:1.5px solid var(--primary-color)}#project-tags .tag{color:var(--tag-color);background:var(--tag-bg-color);border:1.5px solid var(--tag-color);border-radius:999px!important;padding:.2em 1em;font-size:.95rem;font-weight:500;margin:0 .3em 0 0;cursor:pointer;transition:background .2s,color .2s,border .2s;display:inline-flex;align-items:center}#project-tags .tag.active{color:var(--text);background:var(--tag-color);border:1.5px solid var(--tag-color)}#project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 2rem;width:90%;max-width:1200px;max-height:70vh;overflow:hidden;padding:3rem;margin-bottom:5rem;position:relative;margin-left:auto;margin-right:auto;justify-items:center}@media (max-width: 1500px){#project-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 975px){#project-grid{grid-template-columns:1fr;padding:1.2rem}}.ps{overflow:hidden!important;touch-action:auto}.ps__rail-y{width:8px;background:transparent;right:2px;border-radius:4px}.ps__thumb-y{background:#333a4d;border-radius:4px;width:8px;min-height:40px;opacity:.7;transition:background .2s}.ps__thumb-y:hover{background:#0078d7}.project-card{background:var(--secondary-bg-color);border-radius:12px;box-shadow:0 2px 12px #0000002e;padding:1rem;display:flex;flex-direction:column;align-items:center;transition:transform .18s cubic-bezier(.4,1.4,.6,1),box-shadow .18s;cursor:pointer;border:1px solid #23272F;width:345px}.project-card:hover,.project-card:focus{transform:scale(1.045);box-shadow:0 6px 24px #00000052;z-index:2;border:1.5px solid var(--primary-color)}.project-card img{width:100%;max-width:320px;border-radius:8px;margin-bottom:1rem;background:#181a20;aspect-ratio:16 / 9}.project-card h3{margin:.5rem 0;color:#fff;font-size:1.3rem}.project-card-tags .tag{color:var(--tag-color);background:var(--tag-bg-color);border:1.5px solid var(--tag-color);border-radius:20px;padding:.2em 1em;font-size:.95rem;font-weight:500;margin:0 .3em 0 0;cursor:default;transition:none;box-shadow:none;pointer-events:none;display:inline-flex;align-items:center}.project-card p{text-align:center;font-size:1rem;margin:.5rem 0 0;color:#b0b0b0}#contact-form{background:var(--secondary-bg-color);padding:32px 24px;border-radius:12px;box-shadow:0 2px 16px #0000002e;display:flex;flex-direction:column;gap:18px;min-width:320px;max-width:400px;width:100%;border:1px solid #23272F}#contact .contact-container{display:flex;justify-content:space-evenly;align-items:center;gap:2.5rem;width:100%;max-width:800px;height:100%}#contact .contact-info{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;text-align:left;margin-bottom:0;font-size:1.05rem;line-height:1.5;color:var(--text-darker);padding:0 24px}#contact .contact-item{display:flex;flex-direction:row;width:100%;justify-content:flex-start;margin:1.5rem 0}.contact-item>a{padding-left:10px}.contact-svg{width:1.8em;vertical-align:middle;margin-right:.4em}#contact .contact-info a{color:var(--text-darker);text-decoration:none;word-break:break-all}#contact .contact-item:hover .contact-svg{scale:1.05}#contact .contact-item:hover a{color:var(--text);font-weight:600}@media screen and (max-width: 1000px){#contact .contact-container{flex-direction:column;align-items:center;height:auto}#contact .contact-info{flex-direction:row!important;flex-wrap:wrap;padding:0 24px;width:auto!important}.contact-item{width:50%!important;align-items:center}}@media screen and (max-width: 500px){#contact-form{padding:12px 8px}#contact-form button{margin-top:0!important}}@media screen and (max-width: 450px){#contact-form{width:auto}.contact-item{flex-direction:column!important}.project-card{width:275px}}#navbar p{font-size:1.1rem;color:var(--text-darker);margin:0;font-weight:500}#sections h2{color:var(--text);font-weight:700;margin-bottom:1.2em;line-height:1.2}#contact-form label{color:var(--text-darker);font-weight:500;margin-bottom:4px}#contact-form input,#contact-form textarea{padding:10px 12px;border:1px solid #444;border-radius:6px;font-size:1rem;background:var(--secondary-bg-color);color:var(--text-darker);transition:border .2s,background .2s;margin-bottom:12px;resize:vertical}.dark-theme #contact-form input,.dark-theme #contact-form textarea{filter:brightness(.75)}.light-theme #contact-form input,.light-theme #contact-form textarea{filter:brightness(.9)}#contact-form input:focus,#contact-form textarea:focus{border-color:var(--primary-color);outline:none;background:var(--field-focus)}#contact-form button[type=submit]{margin-top:8px;padding:10px 0;background:var(--primary-color);color:var(--text-darker);border:none;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s}#contact-form button[type=submit]:not(:disabled):hover{background:var(--primary-color);color:var(--text);filter:brightness(1.15)}#scroll-invite{position:absolute;left:50%;bottom:32px;transform:translate(-50%);cursor:pointer;z-index:10;width:48px;height:48px;display:flex;align-items:center;justify-content:center;outline:none}#scroll-invite .arrow{display:block;width:32px;height:32px;border-left:4px solid var(--text);border-bottom:4px solid var(--text);transform:rotate(-45deg);animation:bounce 1.2s infinite}@keyframes bounce{0%,to{transform:translateY(0) rotate(-45deg)}50%{transform:translateY(12px) rotate(-45deg)}}#arrows{position:fixed;top:50%;left:0;width:100vw;display:flex;justify-content:space-between;align-items:center;transform:translateY(-50%);z-index:1500;pointer-events:none}@keyframes arrow-wiggle-left{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(-6px)}}@keyframes arrow-wiggle-right{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(6px)}}#arrow-left{animation:arrow-wiggle-left 2.2s infinite}#arrow-right{animation:arrow-wiggle-right 2.2s infinite}#arrows button{background:none;color:var(--text-darker);border:none;font-size:3rem;padding:.2em .7em;margin:0 2vw;border-radius:0;cursor:pointer;opacity:.9;pointer-events:auto;transition:color .2s,opacity .2s;box-shadow:none;line-height:1}#arrows button:hover{filter:brightness(1.5);font-weight:900}#arrows button:disabled,#arrows button.hidden{visibility:hidden;pointer-events:none}#root,html,body{height:100vh;width:100vw;overflow:hidden;margin:0;padding:0;background:var(--main-bg-color)}#sections{display:flex;flex-direction:row;height:100vh;width:100vw;transition:transform .4s cubic-bezier(.77,0,.18,1);will-change:transform}section.active{opacity:1;pointer-events:auto;z-index:2;transform:translate(0)}section.slide-in-left{opacity:1;z-index:2;transform:translate(-100vw)}section.slide-in-right{opacity:1;z-index:2;transform:translate(100vw)}section.slide-out-left{opacity:1;z-index:1;transform:translate(-100vw);pointer-events:none}section.slide-out-right{opacity:1;z-index:1;transform:translate(100vw);pointer-events:none}body.home-active #navbar{background:transparent!important;border-bottom:none!important;box-shadow:none!important}#three-bg-gradient{position:fixed;left:0;right:0;bottom:0;height:20vh;pointer-events:none;z-index:2}.dark-theme #three-bg-gradient{background:linear-gradient(to top,#030101,#030101 35%,#030101b3 65%,#0301014d 80%,#03010100)}.light-theme #three-bg-gradient{background:transparent}#project-tags .tag,.project-card-tags .tag{border-radius:999px!important}#tutorial-overlay{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(100%);background:var(--secondary-bg-color);border:1px solid var(--navbar-border-color);border-bottom:none;border-radius:12px 12px 0 0;padding:16px 20px 12px;z-index:1000;box-shadow:0 -4px 16px #00000026;max-width:380px;min-width:280px;opacity:.85;transition:transform .4s ease-out,opacity .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease}.light-theme #tutorial-overlay{border-color:var(--primary-color)}#tutorial-overlay.tutorial-show{transform:translate(-50%) translateY(0)}#tutorial-overlay.tutorial-hide{transform:translate(-50%) translateY(100%)}#tutorial-overlay.tutorial-minimized{transform:translate(-50%) translateY(85%)}.dark-theme #tutorial-overlay.tutorial-home-transparent{background:color-mix(in srgb,var(--secondary-bg-color) 10%,transparent);border:1px solid color-mix(in srgb,var(--navbar-border-color) 10%,transparent);box-shadow:0 -2px 8px #00000005}.dark-theme #tutorial-overlay.tutorial-home-transparent .tutorial-text,.dark-theme #tutorial-overlay.tutorial-home-transparent .tutorial-button{opacity:.8}.tutorial-text,.tutorial-button{transition:opacity .3s ease}#tutorial-hover-area{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:380px;max-width:380px;min-width:280px;height:120px;z-index:999;pointer-events:auto}@media (max-width: 600px){#tutorial-hover-area{left:0;right:0;transform:none;width:auto;max-width:none;min-width:auto}}.tutorial-content{display:flex;align-items:center;gap:16px}.tutorial-text p{margin:0 0 8px;color:var(--text-darker);font-size:.85rem}.tutorial-controls{display:flex;flex-wrap:nowrap;gap:6px;margin-bottom:0}.control-item{background:var(--tag-bg-color);color:var(--text);padding:3px 6px;border-radius:4px;font-size:.75rem;font-family:monospace;border:1px solid var(--navbar-border-color);white-space:nowrap}.tutorial-button{background:var(--primary-color);color:var(--text);border:none;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s ease;white-space:nowrap}.tutorial-button:hover{background:var(--highlight-color);transform:translateY(-1px)}.tutorial-button:active{transform:translateY(0)}@media (max-width: 600px){#tutorial-overlay,#tutorial-hover-area{display:none!important}}.ps{overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.ps__rail-x{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;height:15px;bottom:0;position:absolute}.ps__rail-y{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;width:15px;right:0;position:absolute}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y,.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y{opacity:.6}.ps .ps__rail-x:hover,.ps .ps__rail-y:hover,.ps .ps__rail-x:focus,.ps .ps__rail-y:focus,.ps .ps__rail-x.ps--clicking,.ps .ps__rail-y.ps--clicking{background-color:#eee;opacity:.9}.ps__thumb-x{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px;position:absolute}.ps__thumb-y{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px;position:absolute}.ps__rail-x:hover>.ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x.ps--clicking .ps__thumb-x{background-color:#999;height:11px}.ps__rail-y:hover>.ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y.ps--clicking .ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style: none){.ps{overflow:auto!important}}@media screen and (-ms-high-contrast: active),(-ms-high-contrast: none){.ps{overflow:auto!important}}
