:root{--bg-primary: #ffffff;--bg-secondary: #f5f7fa;--text-primary: #213547;--text-secondary: #666666;--accent-color: #646cff;--accent-gradient: linear-gradient(45deg, #646cff, #9089fc);--navbar-bg: rgba(255, 255, 255, .95);--shadow-color: rgba(0, 0, 0, .1);--section-padding: 4rem 2rem;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2a2a2a;--text-primary: #ffffff;--text-secondary: #a0a0a0;--accent-color: #818cf8;--accent-gradient: linear-gradient(45deg, #818cf8, #c7d2fe);--navbar-bg: rgba(26, 26, 26, .95);--shadow-color: rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-primary);color:var(--text-primary)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .25s ease}button:hover{border-color:var(--accent-color);transform:translateY(-2px)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}h1,h2,h3,h4,h5,h6{line-height:1.2;margin-bottom:1rem}h1,h2{font-size:2.5rem;background:var(--accent-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:#fff;background-size:400% 400%;animation:gradient 15s ease infinite}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@media (max-width: 900px){button:focus,button:focus-visible{outline:none}}.navbar{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--navbar-bg);box-shadow:0 2px 15px var(--shadow-color);z-index:1000;height:70px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .3s ease}.navbar-brand{display:flex;flex-direction:column;align-items:flex-start}.navbar-brand button{font-size:1.5rem;font-weight:700;color:var(--text-primary);background:none;border:none;padding:0;cursor:pointer;position:relative}.navbar-brand button:after{content:"";position:absolute;width:0;height:2px;bottom:-4px;left:0;background:var(--accent-gradient);transition:width .3s ease}.navbar-brand button:hover{color:var(--accent-color)}.navbar-brand button:hover:after{width:100%}.subtitle{font-size:.9rem;color:var(--text-secondary);margin-top:.2rem}.navbar-links{display:flex;gap:1.3rem;align-items:center}.navbar-links button{color:var(--text-primary);background:none;border:none;font-weight:500;cursor:pointer;transition:all .3s ease;padding:.5rem;position:relative}.navbar-links button:after{content:"";position:absolute;width:0;height:2px;bottom:0;left:50%;transform:translate(-50%);background:var(--accent-gradient);transition:width .3s ease}.navbar-links button:hover{color:var(--accent-color);transform:translateY(-2px)}.navbar-links button:hover:after{width:80%}.theme-toggle{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-primary);transition:all .3s ease}.theme-toggle:hover{color:var(--accent-color);transform:rotate(180deg)}.hamburger{display:block;background:none;border:none;font-size:1.2rem;cursor:pointer;position:absolute;top:20px;right:15px}.close-menu{display:none;background:none;border:none;font-size:1.2rem;cursor:pointer;position:absolute;top:20px;right:15px}.navbar-links.open{display:flex;flex-direction:column;position:absolute;top:70px;right:0;background-color:var(--navbar-bg);width:100%;padding:1rem}@media (max-width: 1024px){.navbar-links{gap:.7rem}}@media (max-width: 900px){.navbar{display:flex;flex-direction:column;padding:1rem;height:auto;align-items:flex-start}.navbar-links{display:none;flex-direction:column;position:absolute;top:70px;right:0;background-color:var(--navbar-bg);width:100%;padding:1rem;gap:.5rem}.navbar-links.open{max-width:30%;display:flex;padding-top:1.5rem;padding-bottom:.5rem;border-radius:10px}}@media (max-width: 768px){.navbar-links.open{max-width:40%}}.home{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(-45deg,#2e3192,#1babff,#d4145a,#fbb03b);background-size:400% 400%;animation:gradientBG 15s ease infinite;width:100%}.hero{width:100%;text-align:center;padding:2rem;position:relative;z-index:1}.hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.hero h1{font-size:5rem;margin-bottom:1.5rem;color:#fff;text-shadow:2px 3px 7px rgba(0,0,0,.3);opacity:0;transform:translateY(30px);animation:fadeInUp .6s ease forwards .2s;font-weight:800;-webkit-text-fill-color:#ffffff;background:none}.hero h2{font-size:3.2rem;margin-bottom:1.2rem;background:linear-gradient(to right,#fff,#fffc);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:#fff;opacity:0;transform:translateY(30px);animation:fadeInUp .6s ease forwards .4s;letter-spacing:-.01em;font-weight:600}.hero h3{font-size:2.2rem;color:#ffffffd9;opacity:0;transform:translateY(30px);animation:fadeInUp .6s ease forwards .6s;letter-spacing:.02em;font-weight:400}@keyframes gradientBG{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.hero{animation:float 6s ease-in-out infinite}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}to{transform:translateY(0)}}@media (max-width: 900px){.home{height:100dvh}}@media (max-width: 768px){.hero{padding:4rem 1rem}.hero h1{font-size:3.2rem}.hero h2{font-size:2.2rem}.hero h3{font-size:1.6rem}}.home{transition:background .3s ease}.about{width:100%;max-width:900px;margin:0 auto;padding:2rem;background:var(--bg-secondary);border-radius:20px;box-shadow:0 8px 32px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.about-content{text-align:left;line-height:1.8;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;opacity:0;transform:translateY(200px);transition:opacity 1.3s ease,transform 1.9s ease}.about-content.visible{opacity:1;transform:translateY(0)}.about h2{margin-bottom:2rem;text-align:center}.about p{font-size:1.2rem;font-weight:500;line-height:1.7;text-rendering:optimizeLegibility;color:var(--text-primary);text-align:justify;margin-bottom:1.5rem}.avatar{align-content:center;width:300px;margin:1.5rem auto;border-radius:8%;box-shadow:8px 8px 8px var(--shadow-color)}@media (max-width: 768px){.about{margin:1rem;padding:1.5rem}.about p{font-size:1.1rem}}.skills{width:100%;max-width:1200px}.skills h2{padding-top:1em}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:50px;gap:20px;padding:20px}.skill-card{display:flex;flex-wrap:wrap;background-color:var(--bg-primary);padding:15px;border-radius:8px;box-shadow:2px 2px 10px #0000001a;text-align:center}.infos{width:100%;display:flex;flex-direction:row;justify-content:space-around}.skill-card h3{margin:10px 0;font-size:1em;align-content:center}.skill-card i{width:32px;height:32px;font-size:1.8em;font-weight:700;align-content:center}.skill-card span{font-size:1.2em;font-weight:700;align-content:center}.progress-bar{width:100%;height:10px;background-color:#ddd;border-radius:5px;position:relative;margin-top:10px}.progress-bar:before{content:"";position:absolute;left:0;height:100%;width:0;max-width:100%;background-color:var(--accent-color);border-radius:5px;transition:width 3.5s ease-out}.skills-grid.animate .progress-bar:before{width:var(--progress)}@media (max-width: 900px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.skills-grid{grid-template-columns:repeat(1,1fr)}}.projects{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.projects h2{margin-top:1rem;margin-bottom:3rem;text-align:center}.projects p{font-size:1.2rem;margin-bottom:1rem;color:var(--text-primary)}.filter-buttons{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.recentold-buttons,.personalschool-buttons{display:flex;gap:1rem}.filter-buttons button{width:12rem;padding:.8rem 1.5rem;border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);box-shadow:8px 8px 12px var(--shadow-color);border:2px solid transparent;cursor:pointer;transition:all .3s ease;font-weight:500}.filter-buttons button:hover{border-color:var(--accent-color);transform:translateY(-2px)}.filter-buttons button.active{background:var(--accent-gradient);color:#fff;border-color:transparent}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;perspective:1000px}.project-card{background:var(--bg-secondary);border-radius:15px;overflow:hidden;box-shadow:8px 8px 12px var(--shadow-color);border:1px solid rgba(202,198,198,.3);opacity:0;transform:rotateX(15deg) translateY(20px);transition:opacity .9s ease,transform .9s ease,box-shadow .3s ease}.project-card.visible{opacity:1;transform:rotateX(0) translateY(0)}.project-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px var(--shadow-color)}.project-image{width:94%;margin-top:3%;height:300px;object-fit:cover;object-position:top;border:1px solid rgba(202,198,198,.3);border-top-left-radius:10px;border-top-right-radius:10px}.project-content{display:flex;flex-direction:column;align-items:flex-start;padding:1.5rem;text-align:left}.project-title{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.project-text{font-size:1.1rem;min-height:50px;text-align:left}.project-tech{font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem}.project-button{background:var(--accent-gradient);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:transform .2s ease}.project-button:hover{transform:scale(1.05);box-shadow:0 1px 5px var(--text-secondary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-content{background:var(--bg-primary);padding:2rem;border-radius:15px;max-width:800px;width:90%;max-height:85vh;overflow-y:auto;scrollbar-width:none;position:relative}::-webkit-scrollbar{width:0;background:transparent}.modal-close{position:absolute;top:.9rem;right:.6rem;background:none;border:none;font-size:16px;cursor:pointer;color:var(--text-primary)}.modal-content h2{margin-top:.5rem}.modal-image{width:100%;border-radius:10px;margin-bottom:1.5rem}.modal-description{color:var(--text-primary);text-align:left}.modal-description h3{margin:1.5rem 0 .75rem;color:var(--accent-color)}.modal-description p{margin-bottom:1rem;line-height:1.6}.modal-description ul{list-style-type:disc;margin-left:1.5rem;margin-bottom:1rem}.modal-description li{margin-bottom:.5rem}.technical-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:1rem}.stack-category h4{color:var(--accent-color);text-transform:capitalize;margin-bottom:.5rem}.stack-category ul{list-style-type:none;margin-left:0}.stack-category li{background:var(--bg-secondary);padding:.5rem 1rem;border-radius:4px;margin-bottom:.5rem;font-size:.9rem}.project-links{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--shadow-color)}.project-link{display:flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:transform .2s ease;flex:1;justify-content:center}.project-link.github,.project-link.live{background:var(--accent-gradient);color:#fff}.project-link:hover{transform:scale(1.03)}.modal-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--shadow-color);text-align:center}.modal-back-button{background:var(--accent-gradient);color:#fff;border:none;padding:.8rem 2rem;border-radius:8px;cursor:pointer;transition:transform .2s ease;font-weight:500}.modal-back-button:hover{transform:scale(1.03)}@media (max-width: 1200px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.projects-grid{grid-template-columns:1fr}.filter-buttons button{padding:.3rem 1.5rem}.projects{padding:1rem}.technical-stack{grid-template-columns:1fr}}@media (max-width: 768px){.project-image{height:200px}.filter-buttons{flex-direction:column;align-items:center}.recentold-buttons,.personalschool-buttons{display:flex;flex-direction:column;flex-wrap:wrap;gap:1rem}}.contact{width:100%;max-width:900px;margin:0 auto;padding-top:2rem}.contact h2{padding-bottom:3rem}.contact-content{background:var(--bg-primary);padding:3rem;border-radius:20px;box-shadow:0 8px 32px var(--shadow-color);text-align:center}.contact-content p{font-size:1.2rem;margin-bottom:3rem;color:var(--text-primary)}.social-links{display:flex;justify-content:center;gap:2rem;margin-top:2rem}.social-link{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;border-radius:15px;background:var(--bg-secondary);color:var(--text-primary);text-decoration:none;transition:all .3s ease;min-width:150px;box-shadow:6px 6px 12px var(--shadow-color)}.social-link:hover{transform:translateY(-5px);background:var(--accent-gradient);color:#fff}.social-link svg{font-size:2rem;margin-bottom:.5rem}.social-link span{font-size:1rem;font-weight:500}@media (max-width: 900px){.contact{padding:1rem}.contact h2{padding-bottom:1rem}.social-links{flex-wrap:wrap;gap:1rem}.social-link{width:45%}}@media (max-width: 768px){.social-links{flex-direction:column;align-items:center}.social-link{width:100%;max-width:300px}}.softskills{width:100%;max-width:1200px}.softskills h2{padding-bottom:1.3rem}.softskills-content{display:flex;flex-direction:row;flex-wrap:wrap;max-width:900px;margin:0 auto;gap:2rem;background:var(--bg-primary)}.tech-skills{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;border-radius:15px;background:var(--bg-secondary);color:var(--text-primary);min-width:300px;width:48%;box-shadow:6px 6px 12px var(--shadow-color);opacity:0;transform:translate(-200px);transition:opacity 1s ease,transform 1s ease}.tech-skills.visible{opacity:1;transform:translate(0)}.life-skills{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;border-radius:15px;background:var(--bg-secondary);color:var(--text-primary);min-width:300px;width:48%;box-shadow:6px 6px 12px var(--shadow-color);opacity:0;transform:translate(200px);transition:opacity 1s ease,transform 1s ease}.life-skills.visible{opacity:1;transform:translate(0)}.tech-skills h3,.life-skills h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.tech-skills li,.life-skills li{font-size:1.1rem;font-weight:500;text-align:left}@media (max-width: 900px){.softskills-content{padding:1rem;flex-direction:column;align-items:center}.softskills h2{padding-top:1.1rem;padding-bottom:.3rem}.tech-skills,.life-skills{width:100%}}.memory-game{width:100%;max-width:900px;margin:0 auto;padding:2rem;text-align:center}.game-description{margin:1rem 0 2rem;color:var(--text-secondary);font-size:1.1rem}.game-stats{display:flex;justify-content:center;align-items:center;gap:2rem;margin-bottom:2rem;font-size:1.2rem;color:var(--text-primary)}.reset-button{background:var(--accent-gradient);color:#fff;border:none;padding:.8rem 1.5rem;border-radius:8px;cursor:pointer;transition:transform .2s ease}.reset-button:hover{transform:translateY(-2px)}.cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;perspective:1000px}.card{aspect-ratio:4/4;cursor:pointer;position:relative;transform-style:preserve-3d;transition:transform .6s}.card.flipped{transform:rotateY(180deg)}.card-inner{position:relative;width:100%;height:100%;text-align:center;transform-style:preserve-3d}.card-front,.card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 20px var(--shadow-color)}.card-front{background:var(--accent-gradient)}.card-back{background:var(--bg-primary);transform:rotateY(180deg);padding:1rem}.card-back svg{font-size:3rem;margin-bottom:.5rem;color:var(--accent-color)}.icon-name{font-size:.9rem;color:var(--text-primary)}.win-message{margin-top:2rem;padding:2rem;background:var(--bg-secondary);border-radius:12px;animation:fadeIn .5s ease-in}.win-message h3{color:var(--accent-color);margin-bottom:.5rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.cards-grid{grid-template-columns:repeat(3,1fr)}.card{aspect-ratio:3/2}.card-back{padding:.5rem}.card-back svg{font-size:2.5rem}.icon-name{font-size:.8rem}}@media (max-width: 480px){.cards-grid{grid-template-columns:repeat(2,1fr);gap:.8rem}.card{aspect-ratio:4/2}.card-back svg{margin-bottom:.1rem}.game-stats{flex-direction:column;gap:1rem}}#root{width:100%;margin:0 auto;text-align:center}.app{min-height:100vh;display:flex;flex-direction:column}main{padding-top:70px;flex:1}section{display:flex;align-items:center;justify-content:center;scroll-margin-top:70px;padding:var(--section-padding);position:relative;overflow:hidden}section:nth-child(odd){background-color:var(--bg-secondary)}.section-content{max-width:1200px;width:100%;margin:0 auto;opacity:0;transform:translateY(20px);animation:fadeInUp .6s ease forwards}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){section{padding:10px}html{scroll-padding-top:70px}}.footer{width:100%;background-color:var(--bg-secondary);color:var(--text-primary);padding:1.5rem;text-align:center;border-top:1px solid var(--shadow-color);margin:auto}.footer-content{margin:0 auto 20px;display:flex;flex-direction:row;justify-content:space-between}.footer-text{align-content:center}.footer p{font-size:1rem;margin:0;opacity:.9}.footer-left-space{width:4rem;height:4rem}.scroll-to-top{width:4rem;height:4rem;font-size:4rem;color:var(--accent-color);border:none;border-radius:50%;cursor:pointer;margin-bottom:15px;transition:transform .3s ease}.scroll-to-top:hover{transform:translateY(-5px)}@media (max-width: 768px){.footer-left-space{width:3rem;height:3rem}.scroll-to-top{width:3rem;height:3rem;font-size:3rem}.footer p{font-size:.9rem}}
