*,*::before,*::after{box-sizing:border-box}html{line-height:1.5;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,segoe ui,Roboto,helvetica neue,noto sans,liberation sans,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-size:1rem;font-weight:400}img,svg{vertical-align:middle}button{cursor:pointer}.container{width:100%;padding-right:.75rem;padding-left:.75rem;margin-right:auto;margin-left:auto}@media(min-width:576px){.container{max-width:540px}}@media(min-width:768px){.container{max-width:720px}}@media(min-width:992px){.container{max-width:960px}}@media(min-width:1200px){.container{max-width:1140px}}@media(min-width:1400px){.container{max-width:1320px}}.row{display:flex;flex-wrap:wrap;margin-right:-.75rem;margin-left:-.75rem}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:.75rem;padding-left:.75rem}@media(min-width:768px){.col-md-6{flex:none;width:50%}}@media(min-width:992px){.col-lg-4{flex:none;width:33.333333%}.col-lg-6{flex:none;width:50%}.col-lg-10{flex:none;width:83.333333%}.col-lg-12{flex:none;width:100%}.offset-lg-1{margin-left:8.333333%}}.d-flex{display:flex}.flex-column{flex-direction:column}.align-items-center{align-items:center}.align-items-stretch{align-items:stretch}.justify-content-center{justify-content:center}@media(min-width:1200px){.d-xl-none{display:none!important}}:root{--text-light:#f8f9fa}.text-light{color:var(--text-light)}.text-center{text-align:center}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.img-fluid{max-width:100%;height:auto}.rounded-circle{border-radius:50%}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word}.card-body{flex:auto;padding:1rem}.card-title{margin-bottom:.5rem}.card-text:last-child{margin-bottom:0}.icon-inline{width:1em;height:1em;fill:currentColor;vertical-align:-.125em}:root{--primary-color:#149ddd;--primary-hover-color:#37b3ed;--background-color:#121212;--card-background-color:#1e1e1e;--tag-background-color:#2c2f3f;--card-border-color:#333;--heading-color:#f0f0f0;--text-color:#ccc;--sidebar-background:#040b14;--sidebar-text-color:#a8a9b4;--sidebar-active-text:#fff;--resume-border-color:#4a5a70;--social-link-bg:#212431;--language-badge-bg:#333;--language-badge-text:#eee}body{color:var(--text-color);background-color:var(--sidebar-background)}a{color:var(--primary-color);text-decoration:none}a:hover{color:var(--primary-hover-color);text-decoration:none}.back-to-top{position:fixed;visibility:hidden;opacity:0;right:15px;bottom:15px;z-index:996;background:var(--primary-color);width:40px;height:40px;border-radius:50px;transition:all .4s}.back-to-top svg{color:#fff}.back-to-top:hover{background:var(--primary-hover-color)}.back-to-top.active{visibility:visible;opacity:1}#header{position:fixed;top:0;left:0;bottom:0;width:300px;transition:all ease-in-out .5s;z-index:9997;padding:0 15px;background:0 0;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);overflow-y:auto}#header .profile img{margin:15px auto;display:block;width:120px;border:8px solid #2c2f3f}#header .profile h1{font-size:24px;margin:0;padding:0;font-weight:600;text-align-last:center}#header .profile h1 a,#header .profile h1 a:hover{color:var(--sidebar-active-text);text-decoration:none}#header .profile .logo-links{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:15px}#header .profile .logo-links a{font-size:18px;display:flex;justify-content:center;align-items:center;background:var(--social-link-bg);color:var(--sidebar-active-text);width:36px;height:36px;border-radius:50%;transition:.3s}#header .profile .logo-links a:hover{background:var(--primary-color);color:var(--sidebar-active-text)}#header .profile .logo-links a .logo-icon-img-header{width:20px;height:auto;margin:0;border:0}#main{margin-left:300px;position:relative}@media(max-width:1199px){#header{left:-300px;background:var(--sidebar-background);backdrop-filter:none;-webkit-backdrop-filter:none}#main{margin-left:0}}.nav-menu{padding:30px 0 0}.nav-menu *{margin:0;padding:0;list-style:none}.nav-menu>ul>li{position:relative;white-space:nowrap}.nav-menu a,.nav-menu a:focus{display:flex;align-items:center;color:var(--sidebar-text-color);padding:12px 15px;margin-bottom:8px;transition:.3s;font-size:15px}.nav-menu a:hover,.nav-menu .active,.nav-menu .active:focus,.nav-menu li:hover>a{text-decoration:none;color:var(--sidebar-active-text)}.mobile-nav-toggle{position:fixed;right:15px;top:15px;z-index:9998;border:0;font-size:24px;transition:all .4s;outline:none!important;background-color:var(--primary-color);color:var(--sidebar-active-text);width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;line-height:0;border-radius:50px;cursor:pointer}.mobile-nav-active #header{left:0}.hero{padding:80px 0 40px;position:relative;z-index:2}.hero h1{margin:0 0 8px;font-size:48px;font-weight:700;line-height:1.1;color:var(--heading-color)}.hero .hero-tagline{font-size:1.1rem;color:var(--sidebar-text-color);margin:0}.bg-effects{position:fixed;top:0;left:0;right:0;bottom:0;overflow:hidden;z-index:-1;pointer-events:none}.bg-effects .circles-container{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.bg-effects .circle{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--card-background-color),transparent 70%);opacity:0;animation:expandFloat 20s infinite ease-in-out}.bg-effects .circle:nth-child(1){width:200px;height:200px;left:5%;animation-delay:0s;animation-duration:25s;background:radial-gradient(circle at 30% 30%,var(--background-color),transparent 70%)}.bg-effects .circle:nth-child(2){width:300px;height:300px;left:15%;animation-delay:3s;animation-duration:30s;background:radial-gradient(circle at 30% 30%,var(--card-background-color),transparent 70%)}.bg-effects .circle:nth-child(3){width:250px;height:250px;left:30%;animation-delay:6s;animation-duration:28s;background:radial-gradient(circle at 30% 30%,var(--sidebar-background),transparent 70%)}.bg-effects .circle:nth-child(4){width:350px;height:350px;left:45%;animation-delay:2s;animation-duration:35s;background:radial-gradient(circle at 30% 30%,var(--background-color),transparent 70%)}.bg-effects .circle:nth-child(5){width:280px;height:280px;left:65%;animation-delay:8s;animation-duration:32s;background:radial-gradient(circle at 30% 30%,var(--card-background-color),transparent 70%)}.bg-effects .circle:nth-child(6){width:320px;height:320px;left:75%;animation-delay:4s;animation-duration:29s;background:radial-gradient(circle at 30% 30%,var(--sidebar-background),transparent 70%)}.bg-effects .pulse-circles{position:absolute;top:0;left:0;right:0;bottom:0}.bg-effects .pulse-circle{position:absolute;border-radius:50%;border:2px solid var(--card-background-color);opacity:0;animation:pulseExpand 15s infinite ease-out}.bg-effects .pulse-circle:nth-child(1){width:150px;height:150px;top:20%;left:10%;animation-delay:0s}.bg-effects .pulse-circle:nth-child(2){width:200px;height:200px;top:60%;left:70%;animation-delay:5s;border-color:var(--background-color)}.bg-effects .pulse-circle:nth-child(3){width:180px;height:180px;top:40%;left:40%;animation-delay:10s;border-color:var(--sidebar-background)}.bg-effects .drift-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,var(--card-background-color) 0%,transparent 50%),radial-gradient(circle at 80% 20%,var(--background-color) 0%,transparent 50%),radial-gradient(circle at 50% 50%,var(--sidebar-background) 0%,transparent 60%);background-size:400px 400px,500px 500px,600px 600px;animation:driftMove 40s ease-in-out infinite;opacity:.04}@keyframes expandFloat{0%{transform:translateY(120vh)translateX(0)rotate(0)scale(.3);opacity:0}15%{opacity:.15;transform:translateY(80vh)translateX(20px)rotate(45deg)scale(.8)}35%{opacity:.25;transform:translateY(40vh)translateX(-15px)rotate(135deg)scale(1.2)}50%{opacity:.12;transform:translateY(20vh)translateX(25px)rotate(225deg)scale(1.5)}70%{opacity:.2;transform:translateY(-20vh)translateX(-20px)rotate(315deg)scale(1.1)}85%{opacity:.08;transform:translateY(-60vh)translateX(15px)rotate(405deg)scale(.7)}100%{transform:translateY(-120vh)translateX(0)rotate(540deg)scale(.2);opacity:0}}@keyframes pulseExpand{0%{transform:scale(.5);opacity:0}20%{opacity:.25}50%{transform:scale(2.5);opacity:.08}80%{transform:scale(4);opacity:.04}100%{transform:scale(6);opacity:0}}@keyframes driftMove{0%,100%{background-position:0 0,0 0,0 0;transform:scale(1)rotate(0)}25%{background-position:100px -100px,-150px 100px,50px -50px;transform:scale(1.1)rotate(90deg)}50%{background-position:-100px 100px,100px -100px,-50px 50px;transform:scale(.9)rotate(180deg)}75%{background-position:50px 50px,-50px -50px,100px 100px;transform:scale(1.05)rotate(270deg)}}@media(max-width:768px){.hero{padding:50px 0 30px}.hero h1{font-size:32px}}section{padding:60px 0;overflow:hidden;position:relative}.section-bg{background:0 0}.section-title{padding-bottom:30px}.section-title h2{font-size:32px;font-weight:700;margin-bottom:20px;padding-bottom:20px;position:relative;color:var(--heading-color)}.section-title h2::after{content:"";position:absolute;display:block;width:50px;height:3px;background:var(--primary-color);bottom:0;left:0}p,li{line-height:1.7em}.resume .resume-title{font-size:26px;font-weight:700;margin-top:20px;margin-bottom:20px;color:var(--heading-color)}.resume .resume-item{padding:0 0 20px 20px;margin-top:-2px;border-left:2px solid var(--resume-border-color);position:relative}.resume .resume-item ul{padding-left:20px}#footer{padding:15px;color:#f4f6fd;font-size:14px;position:fixed;left:0;bottom:0;width:300px;z-index:9999;background:var(--sidebar-background)}@media(max-width:1199px){#footer{position:static;width:auto;padding:20px 15px}}.portfolio .portfolio-item{margin-bottom:30px}.portfolio-card-link{text-decoration:none}.portfolio-card{height:100%;background-color:initial!important;border:none!important}.portfolio-card .card-body{padding:0}.portfolio-card:hover{}.portfolio-card .card-title{font-weight:700;font-size:1.2rem;color:var(--heading-color)}.portfolio-card .card-title svg{color:var(--primary-color);margin-right:5px}.portfolio-card .card-text{color:var(--text-color)}.portfolio-stats{margin-top:15px;padding-top:10px;display:flex;align-items:center;font-size:.85rem;color:#8c98a5}.portfolio-stats .stat-item{margin-right:15px;display:flex;align-items:center}.portfolio-stats .stat-item svg{color:var(--primary-color);margin-right:5px}.portfolio-stats .language-badge{background-color:var(--language-badge-bg);color:var(--language-badge-text);padding:3px 8px;border-radius:4px;font-weight:600}.contact-links{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:40px;align-items:flex-start}@media(max-width:768px){.contact-links{gap:24px 20px;justify-content:center}}.contact-link-item{text-decoration:none;display:flex;flex-direction:column;align-items:center}.contact-link-container{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;height:100%}.contact-link-item .link-icon-img{height:40px;margin-bottom:8px}.contact-link-text{font-size:14px;color:var(--text-color);font-weight:600}.contact-link-item .link-icon-img{height:36px;width:auto;transition:.3s;margin-bottom:4px}.contact-link-item:hover .link-icon-img{filter:brightness(1.2)}.contact-link-item.img-link .contact-link-text{margin-top:8px}.blog .card-title a{color:var(--heading-color);transition:.3s}.blog .card-title a:hover{color:var(--primary-color)}.blog-single .post-title{font-size:2.5rem;font-weight:700;color:var(--heading-color);margin-bottom:20px}.blog-single .post-meta{margin-bottom:20px;color:#8c98a5}.blog-single .post-content{line-height:1.8}.blog-single .post-content h1,.blog-single .post-content h2,.blog-single .post-content h3,.blog-single .post-content h4,.blog-single .post-content h5{margin-top:1.5em;margin-bottom:.5em;color:var(--heading-color)}.blog-single .post-content table{width:100%;margin:1.5em 0;border-collapse:collapse;background:var(--card-background-color);border:1px solid var(--card-border-color);border-radius:8px;overflow:hidden}.blog-single .post-content table th,.blog-single .post-content table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--card-border-color)}.blog-single .post-content table th{background:var(--tag-background-color);font-weight:600;color:var(--heading-color)}.blog-single .post-content table tr:last-child td{border-bottom:none}.blog-single .toc{margin-bottom:30px;font-size:.92rem}.blog-single .toc h4{font-size:.9rem;font-weight:600;color:var(--heading-color);margin-bottom:10px}.blog-single .toc ul{list-style:none;padding-left:0;margin:0}.blog-single .toc li{margin-bottom:4px}.blog-single .toc ul ul{padding-left:1.2rem}.blog-single .toc a{color:var(--sidebar-text-color)!important;text-decoration:none}.blog-single .toc a:hover{color:var(--primary-color)!important}.tags{margin-top:10px;margin-bottom:20px}.tags a{background-color:var(--tag-background-color);color:var(--text-color);padding:5px 10px;border-radius:5px;margin-right:5px;margin-bottom:6px;display:inline-block;font-size:14px;transition:all .3s ease-in-out}.tags a:hover{background-color:var(--primary-color);color:#fff}.tags-list{margin-bottom:20px}.tags-list ul{list-style:none;padding:0}.tags-list li{display:inline-block;margin-right:10px}.tags-list a{color:var(--primary-color);text-decoration:none}.tags-list a:hover{text-decoration:underline}.post-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--card-border-color);font-size:.9rem}.post-nav-next{text-align:right;margin-left:auto}.post-nav a{color:var(--primary-color)}.post-content code{background-color:var(--card-background-color);color:var(--primary-color);padding:2px 6px;border-radius:4px;font-size:.875em}.post-content pre code{background-color:initial;color:inherit;padding:0;border-radius:0;font-size:inherit}.post-content pre{background-color:var(--card-background-color);border:1px solid var(--card-border-color);border-radius:6px;padding:1rem;overflow-x:auto;margin-bottom:1.5rem}.not-found{padding:80px 0;text-align:center}.not-found-message{font-size:1.1rem;color:var(--text-color);margin-bottom:2rem}.not-found .btn-get-started{display:inline-block;background:var(--primary-color);color:#fff;padding:10px 28px;border-radius:4px;transition:background .3s}.not-found .btn-get-started:hover{background:var(--primary-hover-color);color:#fff}.bg{color:#f8f8f2;background-color:#040b14}.chroma{color:#f8f8f2;background-color:#040b14}.chroma .x{}.chroma .err{color:#960050;background-color:#1e0010}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#3c3d38}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#66d9ef}.chroma .kc{color:#66d9ef}.chroma .kd{color:#66d9ef}.chroma .kn{color:#f92672}.chroma .kp{color:#66d9ef}.chroma .kr{color:#66d9ef}.chroma .kt{color:#66d9ef}.chroma .n{}.chroma .na{color:#a6e22e}.chroma .nc{color:#a6e22e}.chroma .no{color:#66d9ef}.chroma .nd{color:#a6e22e}.chroma .ni{}.chroma .ne{color:#a6e22e}.chroma .nl{}.chroma .nn{}.chroma .nx{color:#a6e22e}.chroma .py{}.chroma .nt{color:#f92672}.chroma .nb{}.chroma .bp{}.chroma .nv{}.chroma .vc{}.chroma .vg{}.chroma .vi{}.chroma .vm{}.chroma .nf{color:#a6e22e}.chroma .fm{color:#a6e22e}.chroma .l{color:#ae81ff}.chroma .ld{color:#e6db74}.chroma .s{color:#e6db74}.chroma .sa{color:#e6db74}.chroma .sb{color:#e6db74}.chroma .sc{color:#e6db74}.chroma .dl{color:#e6db74}.chroma .sd{color:#e6db74}.chroma .s2{color:#e6db74}.chroma .se{color:#ae81ff}.chroma .sh{color:#e6db74}.chroma .si{color:#e6db74}.chroma .sx{color:#e6db74}.chroma .sr{color:#e6db74}.chroma .s1{color:#e6db74}.chroma .ss{color:#e6db74}.chroma .m{color:#ae81ff}.chroma .mb{color:#ae81ff}.chroma .mf{color:#ae81ff}.chroma .mh{color:#ae81ff}.chroma .mi{color:#ae81ff}.chroma .il{color:#ae81ff}.chroma .mo{color:#ae81ff}.chroma .o{color:#f92672}.chroma .ow{color:#f92672}.chroma .p{}.chroma .c{color:#75715e}.chroma .ch{color:#75715e}.chroma .cm{color:#75715e}.chroma .c1{color:#75715e}.chroma .cs{color:#75715e}.chroma .cp{color:#75715e}.chroma .cpf{color:#75715e}.chroma .g{}.chroma .gd{color:#f92672}.chroma .ge{font-style:italic}.chroma .gr{}.chroma .gh{}.chroma .gi{color:#a6e22e}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#75715e}.chroma .gt{}.chroma .gl{}.chroma .w{}