:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background:#000;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(1px 1px at 12px 15px,#7b3fe4,transparent),radial-gradient(2px 2px at 67px 42px,rgba(123,63,228,.6),transparent),radial-gradient(1px 1px at 134px 73px,#bdaaff,transparent),radial-gradient(1px 1px at 23px 89px,rgba(189,170,255,.4),transparent),radial-gradient(2px 2px at 178px 31px,rgba(123,63,228,.3),transparent),radial-gradient(1px 1px at 89px 14px,rgba(189,170,255,.5),transparent),radial-gradient(1px 1px at 156px 67px,#7b3fe4,transparent),radial-gradient(2px 2px at 34px 56px,rgba(123,63,228,.2),transparent),radial-gradient(1px 1px at 112px 91px,rgba(189,170,255,.6),transparent),radial-gradient(1px 1px at 198px 18px,#bdaaff,transparent),radial-gradient(2px 2px at 45px 28px,rgba(123,63,228,.4),transparent),radial-gradient(1px 1px at 167px 84px,rgba(189,170,255,.3),transparent),#000;background-repeat:repeat;background-size:220px 110px}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}main{width:100%;min-width:320px;margin:0;padding:0}body{margin:0;padding:0}#root{width:100%;margin:0;padding:0}.projects,.hero,.about,.contact,.footer{min-height:320px;display:flex;flex-direction:column;justify-content:center}@media (max-width: 768px){.projects,.hero,.about,.contact{min-height:auto;margin:1rem auto}}@media (max-width: 320px){.projects,.hero,.about,.contact{margin:.5rem auto;width:100%!important;box-sizing:border-box}*{box-sizing:border-box}}#root{width:100%;margin:0;text-align:center}.logo{height:6em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;background:linear-gradient(135deg,#7b3fe4,#9d5ff5);color:#fff;border:none;border-radius:50%;width:64px;height:64px;cursor:pointer;box-shadow:0 4px 20px #7b3fe466;transition:all .3s ease;z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.1);outline:none!important;-webkit-tap-highlight-color:transparent}.scroll-to-top:focus{outline:none!important;box-shadow:0 4px 20px #7b3fe466}.scroll-to-top:focus-visible{outline:none!important}.scroll-to-top svg{transition:transform .3s ease}.scroll-to-top:hover{background:linear-gradient(135deg,#bdaaff,#d4c5ff);color:#2a003f;transform:translateY(-4px) scale(1.05);box-shadow:0 8px 25px #7b3fe499}.scroll-to-top:hover svg{transform:translateY(-2px)}.scroll-to-top:active{transform:translateY(-2px) scale(1.02);box-shadow:0 4px 15px #7b3fe466}@media (max-width: 768px){.scroll-to-top{width:58px;height:58px;bottom:1.5rem;right:1.5rem}.scroll-to-top svg{width:22px;height:22px}}@media (max-width: 320px){.scroll-to-top{width:52px;height:52px;bottom:1rem;right:1rem}.scroll-to-top svg{width:20px;height:20px}}.header{background:linear-gradient(135deg,#1a1a1a,#2a1a3a,#1a1a1a);color:#bdaaff;border-bottom:2px solid #7b3fe4;border-bottom-left-radius:12px;border-bottom-right-radius:12px;width:100%;margin:0;padding:0;box-sizing:border-box;box-shadow:0 2px 16px #7b3fe414;overflow:hidden;position:relative}.language-section-top{position:absolute;top:8px;right:15px;display:flex;align-items:center;color:#bdaaff;z-index:10}.header-container{display:flex;align-items:center;position:relative;padding:0 1rem;box-sizing:border-box}.logo-section{flex:0 0 auto}.logo{height:150px;width:auto}.nav-section{position:absolute;left:50%;transform:translate(-50%);display:flex;gap:2rem}.nav-section a,.nav-section .nav-link{color:#bdaaff;text-decoration:none;font-weight:500;font-size:1.2rem;transition:color .2s;position:relative;cursor:pointer}.nav-section a:after,.nav-section .nav-link:after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background-color:#7b3fe4;transform:translate(-50%);transition:width .3s ease}.nav-section a:hover,.nav-section .nav-link:hover{color:#7b3fe4}.nav-section a:hover:after,.nav-section .nav-link:hover:after{width:100%}@media (max-width: 768px){.header{padding:0}.header-container{flex-direction:column;align-items:center;padding:1rem}.logo{height:150px;margin-bottom:1rem}.nav-section{position:static;transform:none;flex-direction:row;gap:1rem;width:100%;text-align:center;justify-content:center}.nav-section a,.nav-section .nav-link{font-size:1.1rem}.language-section-top{position:absolute;top:8px;right:15px;z-index:10}}@media (max-width: 320px){.header{padding:0}.header-container{padding:.8rem .5rem;box-sizing:border-box}.logo{height:100px;margin-bottom:.8rem}.nav-section{position:static;transform:none;flex-direction:row;gap:1rem;width:100%;text-align:center;justify-content:center;align-items:baseline}.nav-section a,.nav-section .nav-link{font-size:1.1rem;display:inline-block;line-height:1.1;padding-top:1rem;vertical-align:top}.language-section-top{top:5px;right:10px;font-size:.7rem}}.language-selector{display:flex;align-items:center;font-size:0}.flag-container{position:relative;display:inline-block;cursor:pointer}.flag-container .flag{transition:opacity .3s ease;opacity:.6;display:block}.flag-container:hover .flag{opacity:.8}.flag-container .flag.active{opacity:1}.flag-underline{position:absolute;bottom:-6px;left:50%;width:0;height:2px;background-color:#7b3fe4;transform:translate(-50%);transition:width .3s ease}.flag-container:hover .flag-underline,.flag-underline.active{width:100%}.separator{margin:0 8px;color:inherit;font-size:.8rem}.hero{min-height:400px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a1a,#2a003f);color:#bdaaff;text-align:center;padding:4rem 2rem;border-radius:12px;width:90%;margin:2rem auto;box-shadow:0 2px 16px #7b3fe414}.hero h1{font-size:4rem;font-weight:700;margin-bottom:1.5rem;line-height:1.2;margin-top:.5rem}.hero .subtitle{display:block;font-size:1.4rem;font-weight:400;color:#bdaaff;opacity:.8;margin-bottom:.5rem;letter-spacing:2px}.hero .highlight{color:#bdaaff;font-weight:800;text-shadow:0 0 20px rgba(255,255,255,.3),0 0 40px rgba(189,170,255,.2);animation:breathe 3s ease-in-out infinite}@keyframes breathe{0%,to{text-shadow:0 0 20px rgba(255,255,255,.3),0 0 40px rgba(189,170,255,.2)}50%{text-shadow:0 0 25px rgba(255,255,255,.4),0 0 45px rgba(189,170,255,.25)}}.hero p{font-size:1.4rem;line-height:1.6;margin-bottom:2rem;margin-left:2rem;margin-right:2rem;opacity:.9}.hero button{background:#7b3fe4;color:#fff;border:none;padding:.8rem 1.6rem;border-radius:8px;cursor:pointer;font-weight:600;box-shadow:0 2px 8px #7b3fe426;transition:background .2s,color .2s}.hero button:hover{background:#bdaaff;color:#2a003f}.tech-stack{margin-top:2rem}.tech-stack h3{color:#bdaaff;font-size:1.6rem;margin-bottom:1.5rem;font-weight:600}.tech-grid{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;align-items:center;position:relative;transition:max-height .5s ease,mask-image .3s ease;overflow:hidden;padding-top:.5rem}.expand-button{background:transparent!important;border:none!important;padding:0;cursor:pointer;margin:1.5rem auto 0;transition:transform .3s ease;display:none;align-items:center;justify-content:center;outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}.expand-button:hover{background:transparent!important;transform:scale(1.2);box-shadow:none!important;outline:none!important}.expand-button:focus{background:transparent!important;outline:none!important;box-shadow:none!important;border:none!important}.expand-button:focus-visible{background:transparent!important;outline:none!important;box-shadow:none!important;border:none!important}.expand-button:active{background:transparent!important;box-shadow:none!important;outline:none!important;border:none!important}.arrow{transition:transform .3s ease;font-size:1.5rem;display:block;color:#bdaaff!important}.arrow:hover{color:#bdaaff!important}.arrow.up{transform:rotate(180deg)}.arrow.down{transform:rotate(0)}.tech-item{background:#7b3fe433;color:#bdaaff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500;border:1px solid rgba(123,63,228,.3);transition:all .3s ease}.tech-item:hover{background:#7b3fe4;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #7b3fe44d}@media (max-width: 768px){.hero{padding:1rem;width:85%;margin:1rem auto}.hero h1{font-size:2.5rem;margin-bottom:1rem}.hero .subtitle{font-size:1rem;letter-spacing:1px}.hero p{font-size:1rem;margin-bottom:1.5rem}.hero button{padding:.7rem 1.4rem;font-size:.9rem}.tech-stack h3{font-size:1.2rem;margin-bottom:1rem}.tech-grid{gap:.6rem}.tech-grid.collapsed{max-height:120px;overflow:hidden;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 100%)}.tech-grid.expanded{max-height:600px;mask-image:none;-webkit-mask-image:none}.expand-button{display:flex;margin-top:1rem}.arrow{font-size:1.3rem}.tech-item{font-size:.8rem;padding:.4rem .8rem}}@media (max-width: 320px){.hero{padding:1rem .5rem;width:100%;margin:.5rem auto;box-sizing:border-box}.hero h1{font-size:1.8rem;margin-bottom:.8rem}.hero .subtitle{font-size:.8rem;letter-spacing:.5px;margin-bottom:.3rem}.hero p{font-size:.85rem;margin-bottom:1.2rem;padding:0 .25rem;box-sizing:border-box}.hero button{padding:.6rem 1rem;font-size:.8rem}.tech-stack{margin-top:1.5rem;padding:0 .25rem}.tech-stack h3{font-size:1rem;margin-bottom:.8rem}.tech-grid{gap:.4rem}.tech-grid.collapsed{max-height:80px;overflow:hidden;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 60%,transparent 100%)}.tech-grid.expanded{max-height:500px;mask-image:none;-webkit-mask-image:none}.expand-button{display:flex;margin-top:.8rem}.arrow{font-size:1.1rem}.tech-item{font-size:.7rem;padding:.3rem .6rem}}.footer{background:#1a1a1a;color:#bdaaff;text-align:center;font-size:1rem;border-top:2px solid #7b3fe4;margin:2rem 0 0;padding:1rem;border-top-left-radius:12px;border-top-right-radius:12px;min-height:40px;width:100%;box-sizing:border-box;box-shadow:0 2px 16px #7b3fe414;display:flex;flex-direction:column;justify-content:center;position:relative}.footer:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;background-image:url(/assets/logo-CxW5HyTI.svg);background-position:center center;background-repeat:no-repeat;background-size:contain;opacity:1;z-index:0}.footer>*{position:relative;z-index:1}@media (max-width: 768px){.footer{padding:1rem;font-size:.9rem}.footer:before{width:40px;height:40px}}@media (max-width: 320px){.footer{padding:.8rem .5rem;font-size:.75rem;box-sizing:border-box}.footer:before{width:25px;height:25px}}.about{background:#1f1625;color:#fff;padding:4rem 2rem;border-radius:12px;margin:2rem auto;width:90%;min-height:320px;box-shadow:0 2px 16px #7b3fe41a;display:flex;flex-direction:column;justify-content:center;align-items:center}.about h2{color:#bdaaff;font-size:2rem;margin-bottom:1rem}.about p{font-size:1.4rem;line-height:1.7;margin:0}.about-content{margin-left:2rem;margin-right:2rem}@media (max-width: 768px){.about{padding:1rem;width:85%}.about h2{font-size:1.5rem}.about-content{margin-left:.5rem;margin-right:.5rem}.about p{font-size:1rem;text-align:center;margin:0}}@media (max-width: 320px){.about{padding:1rem .5rem;width:100%;margin:.5rem auto;box-sizing:border-box}.about h2{font-size:1.2rem;margin-bottom:.8rem}.about-content{margin-left:0;margin-right:0}.about p{font-size:.85rem;line-height:1.5;padding:0 .25rem;box-sizing:border-box;margin:0}}.projects{padding:4rem 2rem;background:#1d1626;color:#bdaaff;text-align:center;border-radius:12px;width:90%;margin:2rem auto;min-height:320px;box-shadow:0 2px 16px #7b3fe414;display:flex;flex-direction:column;justify-content:center}.projects h2{color:#bdaaff;font-size:2rem;margin-bottom:1.5rem;letter-spacing:1px}.project-grid{display:flex;flex-direction:row;gap:2rem;margin-top:2rem;width:100%;justify-content:center;padding:0 3rem;box-sizing:border-box}@media (max-width: 768px){.projects{padding:1rem;width:85%}.project-grid{flex-direction:column;padding:0;gap:1.5rem}.projects h2{font-size:1.8rem}}@media (max-width: 320px){.projects{padding:1rem .5rem;width:100%;margin:.5rem auto;box-sizing:border-box}.projects h2{font-size:1.3rem;margin-bottom:1rem}.project-grid{gap:.8rem}}.project-card{background:#2a003f;border-radius:12px;padding:1.5rem;color:#fff;box-shadow:0 2px 16px #7b3fe414;transition:transform .2s;flex:0 0 33.3333%;max-width:33.3333%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.project-card:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 4px 24px #7b3fe42e}.image-placeholder{background:transparent;height:150px;width:150px;border-radius:8px;margin:0 auto 1rem;opacity:1;overflow:hidden;display:flex;align-items:center;justify-content:center}.project-card h3{color:#bdaaff;font-size:1.4rem;margin-bottom:.5rem}.project-card p{color:#fff;font-size:1.2rem}@media (max-width: 768px){.project-card{flex:none;max-width:100%;width:100%}}@media (max-width: 320px){.project-card{padding:.8rem .5rem;box-sizing:border-box}.project-card h3{font-size:1rem;margin-bottom:.3rem}.project-card p{font-size:.85rem}.image-placeholder{height:100px;width:100px}}.contact-header-row{width:100%;text-align:center;margin-bottom:2.5rem}.contact-title{color:#bdaaff;font-size:2rem;margin-bottom:1rem;text-align:center;width:100%}.contact-description{font-size:1.4rem;color:#fff;margin-bottom:0;text-align:center}.contact{background:#1c1520;color:#fff;padding:4rem 2rem;border-radius:12px;margin:2rem auto;width:90%;min-height:320px;box-shadow:0 2px 16px #7b3fe41a;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.contact-columns{display:flex;gap:2rem;width:100%;min-height:320px}.contact-info{flex:0 0 40%;background:#2a003f;border-radius:12px;padding:2rem 1.5rem;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#fff;box-shadow:0 2px 16px #7b3fe414}.contact-title{color:#bdaaff;font-size:1.5rem;margin-bottom:1rem;text-align:center;width:100%}.contact-persons-row{display:flex;gap:2rem;width:100%;justify-content:center;align-items:stretch;margin-top:0}.contact-info p{margin-bottom:2rem;font-size:1.1rem;color:#fff}.contact-person{font-weight:600;margin-bottom:.3rem;display:flex;align-items:center;color:#bdaaff}.contact-email{margin-bottom:1.2rem;display:flex;align-items:center;color:#fff;font-size:1rem}.contact-form-col{flex:0 0 60%;display:flex;align-items:center;justify-content:center}.contact-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:400px}.contact-form input,.contact-form textarea{padding:.8rem;border-radius:8px;border:none;background:#2a003f;color:#fff;font-size:1rem;resize:none}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #7b3fe4}.contact-form button{background:#7b3fe4;color:#fff;border:none;padding:.8rem 1.6rem;border-radius:8px;cursor:pointer;font-weight:600;transition:background .2s}.contact-form button:hover{background:#bdaaff;color:#2a003f}@media (max-width: 768px){.contact{padding:1rem;width:85%}.contact-columns{flex-direction:column;gap:1.5rem}.contact-info,.contact-form-col{flex:none;width:100%}.contact-persons-row{flex-direction:column;gap:1.5rem}.contact-person-card{min-width:auto;padding:1.5rem}.contact-photo{width:100px;height:100px}.contact-title{font-size:1.5rem}.contact-description{font-size:1rem}}@media (max-width: 320px){.contact{padding:1rem .25rem;width:100%;margin:.5rem auto;box-sizing:border-box}.contact-person-card{padding:.8rem .25rem;margin:0 .25rem;box-sizing:border-box;width:calc(100% - .5rem)}.contact-photo{width:50px;height:50px}.contact-title{font-size:1.1rem;margin-bottom:.5rem}.contact-person-name{font-size:.9rem;margin-bottom:.25rem}.contact-email{font-size:.75rem}.contact-form{padding:0;box-sizing:border-box;width:100%}.contact-form input,.contact-form textarea{font-size:.8rem;padding:.4rem;box-sizing:border-box;width:100%}.contact-form button{padding:.5rem .8rem;font-size:.8rem}.contact-description{font-size:.85rem;padding:0 .25rem;text-align:center;box-sizing:border-box}.contact-persons-row{gap:.5rem;padding:0}}.contact-person-card{flex:1;background:#2a003f;border-radius:12px;box-shadow:0 2px 16px #7b3fe414;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;min-width:220px}.contact-photo{width:120px;height:120px;object-fit:cover;border-radius:50%;margin-bottom:1rem;box-shadow:0 2px 8px #7b3fe426;transition:transform .3s ease,box-shadow .3s ease}.photo-link{display:inline-block;transition:transform .3s ease}.photo-link:hover .contact-photo{transform:scale(1.05);box-shadow:0 4px 16px #7b3fe44d}.photo-link:hover{transform:translateY(-2px)}.contact-person-name{font-weight:700;color:#bdaaff;font-size:1.4rem;margin-bottom:.5rem;text-align:center}.contact-email{display:flex;align-items:center;color:#fff;font-size:1.2rem;margin-bottom:0;justify-content:center}@media (max-width: 768px){.contact-person-card{min-width:auto;padding:1.5rem}.contact-photo{width:100px;height:100px}}@media (max-width: 320px){.contact-person-card{padding:.8rem .25rem;margin:0 .25rem;box-sizing:border-box;width:calc(100% - .5rem)}.contact-photo{width:50px;height:50px}.contact-person-name{font-size:.9rem;margin-bottom:.25rem}.contact-email{font-size:.75rem}}
