*{margin:0;padding:0;box-sizing:border-box}body,html{width:100%;min-height:100%;background-color:#1e1e1e;color:#d4d4d4;overflow-x:hidden;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:15px;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-spacing:.05em;letter-spacing:.0075em}h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-weight:600;line-height:1.2}code,pre,kbd{font-family:menlo,monaco,consolas,courier new,monospace;font-size:.9em}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#252526;border-radius:5px}::-webkit-scrollbar-thumb{background-color:#3e3e42;border-radius:5px;border:2px solid #252526}::-webkit-scrollbar-thumb:hover{background-color:#569cd6}a{color:#9cdcfe;text-decoration:none;transition:color .2s ease;position:relative}a::after{content:'';position:absolute;width:100%;height:1px;bottom:-1px;left:0;background-color:rgba(156,220,254,.7);transform:scaleX(0);transform-origin:bottom right;transition:transform .3s}a:hover{color:#ceeeff;text-decoration:none}a:hover::after{transform:scaleX(1);transform-origin:bottom left}a:focus{outline:none}.content{}.content a{font-weight:500}.content a[href^=http]{font-weight:500}.sidebar a:first-child{}.sidebar a:first-child::after{display:none}.sidebar a:first-child:hover{opacity:.9}header a{color:#9cdcfe;transition:background-color .2s,color .2s;user-select:none}header a::after{display:none}header a:hover{background-color:#323233;color:#e8f7ff}header a:focus,header a:active{outline:none;box-shadow:none}header a.active{color:#569cd6;background-color:#1d1d1e;font-weight:400}.button-link{display:inline-block;padding:8px 16px;background-color:#252526;color:#d4d4d4;border-radius:4px;font-weight:500;transition:background-color .2s}.button-link::after{display:none}.button-link:hover{background-color:#323233;color:#569cd6}.project-link{display:inline-block;padding:6px 12px;background-color:rgba(37,37,38,.8);color:#d4d4d4;text-decoration:none;border-radius:4px;font-size:.9rem;transition:background-color .2s}.project-link::after{display:none}.project-link:hover{background-color:#323233;color:#569cd6}.project-link.github-link{background-color:#24292e;color:#fff;padding-left:32px;position:relative}.project-link.github-link::before{content:"";display:block;position:absolute;width:16px;height:16px;left:10px;top:50%;transform:translateY(-50%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3E%3Cpath d='M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:contain}.project-link.github-link:hover{background-color:#2f363d;color:#fff}.read-more{color:#569cd6;font-weight:500}.read-more::after{background-color:#569cd6;height:2px}.read-more:hover{color:#7fb4e0}.container{display:flex;width:100%;max-width:1080px;margin:0 auto;gap:30px;padding:0 20px;align-items:flex-start}@media(max-width:768px){.container{flex-direction:column;padding:0 15px}}.sidebar{width:22%;display:inline-block;padding:20px 15px;margin-top:20px;background-color:#252526;border-radius:8px;vertical-align:top}.sidebar .profile-photo{width:100px;height:100px;border-radius:50%;margin-bottom:15px;display:block;margin-left:auto;margin-right:auto}.sidebar .contacts{width:100%;display:block}.sidebar .contacts h2{font-size:1.1rem;margin-bottom:8px;color:#569cd6;text-transform:capitalize}.sidebar .contacts p{margin-bottom:4px;font-size:.9rem;line-height:1.4;text-align:left}.sidebar .contacts p strong{text-transform:capitalize;display:inline-block;min-width:70px}@media(max-width:768px){.sidebar{width:100%;display:block;margin:20px 0}.sidebar .contacts{max-width:400px;margin:0 auto}}.site-header{width:100%;padding:0 20px;background-color:#252526;position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center}.site-header .header-container{width:100%;max-width:960px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.site-header nav{display:flex;height:40px;line-height:40px}.site-header nav ul{list-style:none;padding:0;margin:0;display:flex;height:100%}.site-header nav ul li{margin:0;height:100%}.site-header nav ul li a{font-size:1rem;text-transform:capitalize;height:100%;display:flex;align-items:center;padding:0 15px}.site-header nav ul li a.active{color:#569cd6;font-weight:400}.site-header nav ul li a.ancestor{color:#a8ccea;font-weight:400}.site-header .language-switcher{display:flex;height:40px}.site-header .language-switcher a{font-size:1rem;padding:0 10px;height:100%;display:flex;align-items:center}.site-header .language-switcher a.active{font-weight:400;color:#569cd6}@media(max-width:768px){.site-header{padding:0 15px}.site-header nav ul{flex-direction:column;gap:10px}.site-header .language-switcher{margin-top:10px}}.main-content{width:75%;display:flex;flex-direction:column;align-self:flex-start;overflow-y:visible}.main-content .content{padding:20px 30px;flex-grow:1;overflow-y:visible;max-width:750px}.main-content .content h1{font-size:2rem;color:#569cd6;margin-bottom:18px;font-weight:600;letter-spacing:-.01em}.main-content .content h2{font-size:1.5rem;margin:25px 0 12px;color:#d4d4d4;font-weight:500}.main-content .content h3{font-size:1.25rem;margin:20px 0 10px;font-weight:500}.main-content .content p{margin-bottom:15px;line-height:1.6;font-size:15px;max-width:68ch}.main-content .content strong{font-weight:600;color:#eee}@media(max-width:768px){.main-content{width:100%}}.projects-list{margin-top:20px}.projects-list .project-item{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid rgba(86,156,214,.2)}.projects-list .project-item:last-child{border-bottom:none}.projects-list .project-item h2{margin-bottom:10px}.projects-list .project-item .meta-info{font-size:.9rem;margin-bottom:10px;color:#aeaeae}.projects-list .project-item .summary{margin-top:10px;margin-bottom:15px}.projects-list .project-item .summary p{margin-top:0}.project-content h1{margin-bottom:15px}.project-content .meta{font-size:.9rem;color:#aeaeae;margin-bottom:20px}.project-content .content-body{margin-bottom:25px}.project-links{margin-top:15px;display:flex;gap:15px}.project-links .project-link.demo-link{background-color:#2a5885}.project-links .project-link.demo-link:hover{background-color:#3a6895}.blog-list{margin-top:20px}.blog-list .blog-item{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid rgba(86,156,214,.2)}.blog-list .blog-item:last-child{border-bottom:none}.blog-list .blog-item h2{margin-bottom:10px}.blog-list .blog-item .post-meta{font-size:.9rem;margin-bottom:10px;color:#aeaeae}.blog-list .blog-item .post-meta .categories{margin-left:15px}.blog-list .blog-item .post-meta .categories a{margin-right:5px}.blog-list .blog-item .summary{margin-top:10px;margin-bottom:15px}.blog-list .blog-item .summary p{margin-top:0}.blog-post h1{margin-bottom:15px}.blog-post .post-meta{font-size:.9rem;color:#aeaeae;margin-bottom:25px}.blog-post .post-meta .categories,.blog-post .post-meta .tags{margin-left:15px}.blog-post .post-meta .categories a,.blog-post .post-meta .tags a{margin-right:5px}.blog-post .post-content h2{margin-top:30px;margin-bottom:15px}.blog-post .post-content h3{margin-top:25px;margin-bottom:12px}.blog-post .post-content p{margin-bottom:15px}.blog-post .post-content img{max-width:100%;height:auto;margin:20px 0}.blog-post .post-content pre{background-color:#191919;padding:15px;border-radius:4px;overflow-x:auto;margin:20px 0}.blog-post .post-content blockquote{border-left:4px solid #569cd6;padding-left:15px;margin-left:0;color:#bbb;font-style:italic}pre{position:relative;padding:1rem;margin:1.5rem 0;background-color:#191919;border-radius:4px;overflow-x:auto}pre code{font-family:menlo,monaco,consolas,courier new,monospace;font-size:.9rem;line-height:1.5;color:#d4d4d4}pre.code-with-button{padding-top:2.5rem}.copy-code-button{position:absolute;top:.5rem;right:.5rem;padding:.3rem .6rem;font-size:.8rem;color:#d4d4d4;background-color:rgba(37,37,38,.7);border:none;border-radius:3px;cursor:pointer;transition:background-color .2s,color .2s}.copy-code-button:hover{background-color:#323233;color:#569cd6}.copy-code-button:active,.copy-code-button:focus{outline:none}