:root{--brand-color: #2a7ae4;--brand-color-light: #6bb6ff;--brand-color-dark: #1e5aa0;--site-title-color: #424242;--text-color: #111111;--background-color: #fdfdfd;--code-background-color: #eeeeff;--grey-color: #828282;--grey-color-light: #e8e8e8;--grey-color-dark: #424242;--link-base-color: #2a7ae4;--link-visited-color: #1e5aa0;--link-hover-color: #111111;--border-color-01: #e8e8e8;--border-color-02: #f5f5f5;--border-color-03: #424242;--table-text-color: #3a3a3a;--table-zebra-color: #f0f0f0;--table-header-bg-color: #f7f7f7;--table-header-border: #9a9a9a;--table-border-color: #e8e8e8}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{font:400 16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Segoe UI Symbol","Segoe UI Emoji","Apple Color Emoji",Roboto,Helvetica,Arial,sans-serif;color:var(--text-color);background-color:var(--background-color);-webkit-text-size-adjust:100%;-webkit-font-feature-settings:"kern" 1;-moz-font-feature-settings:"kern" 1;-o-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1;font-kerning:normal;display:flex;min-height:100vh;flex-direction:column;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:15px}hr{margin-top:30px;margin-bottom:30px}main{display:block}img{max-width:100%;vertical-align:middle}figure>img{display:block}figcaption{font-size:14px}ul,ol{margin-left:30px}li>ul,li>ol{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-weight:400}a{color:var(--brand-color);text-decoration:none}a:visited{color:var(--link-visited-color)}a:hover{color:var(--text-color);text-decoration:underline}.social-media-list a:hover{text-decoration:none}.social-media-list a:hover .username{text-decoration:underline}blockquote{color:var(--grey-color);border-left:4px solid var(--grey-color-light);padding-left:15px;font-size:1.125rem;letter-spacing:-1px;font-style:italic}blockquote>:last-child{margin-bottom:0}pre,code{font-size:.9375rem;border:1px solid var(--grey-color-light);border-radius:3px;background-color:var(--code-background-color)}code{padding:1px 5px}pre{padding:8px 12px;overflow-x:auto}pre>code{border:0;padding-right:0;padding-left:0}.wrapper{max-width:800px;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}@media screen and (min-width: 800px){.wrapper{max-width:800px;padding-right:30px;padding-left:30px}}.wrapper:after,.footer-col-wrapper:after{content:"";display:table;clear:both}.orange{color:#f66a0a}.grey{color:var(--grey-color)}.svg-icon{width:16px;height:16px;display:inline-block;fill:currentColor;padding:5px 3px 2px 5px;vertical-align:text-bottom}table{margin-bottom:30px;width:100%;text-align:left;color:var(--table-text-color);border-collapse:collapse;border:1px solid var(--grey-color-light)}table tr:nth-child(even){background-color:var(--grey-color-light)}table th,table td{padding:10px 15px}table th{background-color:var(--grey-color-light);border:1px solid var(--grey-color)}table td{border:1px solid var(--grey-color-light)}@media screen and (max-width: 600px){table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.theme-toggle{background:none;border:none;font-size:1.2em;cursor:pointer;padding:0.5em;margin-left:auto;display:block}@media screen and (min-width: 600px){.theme-toggle{display:inline-block;margin-left:1em}}.site-header{border-top:5px solid var(--grey-color-dark);border-bottom:1px solid var(--grey-color-light);min-height:55.95px;line-height:54px;position:relative}.site-title{font-size:1.625rem;font-weight:300;letter-spacing:-1px;margin-bottom:0;float:left}@media screen and (max-width: 600px){.site-title{padding-right:45px}}.site-title,.site-title:visited{color:var(--grey-color-dark)}.site-nav{position:absolute;top:9px;right:15px;background-color:var(--background-color);border:1px solid var(--grey-color-light);border-radius:5px;text-align:right}.site-nav .nav-trigger{display:none}.site-nav .menu-icon{float:right;width:36px;height:26px;line-height:0;padding-top:10px;text-align:center}.site-nav .menu-icon>svg{fill:var(--grey-color-dark)}.site-nav label[for="nav-trigger"]{display:block;float:right;width:36px;height:36px;z-index:2;cursor:pointer}.site-nav .trigger{clear:both;display:none}.site-nav input ~ .trigger{clear:both;display:none}.site-nav input:checked ~ .trigger{display:block;padding-bottom:5px}.site-nav .page-link{color:var(--text-color);line-height:1.5;display:block;padding:5px 10px;margin-left:20px}.site-nav .page-link:not(:last-child){margin-right:0}@media screen and (min-width: 600px){.site-nav{position:static;float:right;border:none;background-color:inherit}.site-nav label[for="nav-trigger"]{display:none}.site-nav .menu-icon{display:none}.site-nav input ~ .trigger{display:block}.site-nav .trigger{display:flex;align-items:center}.site-nav .page-link{display:inline;padding:0;margin-left:auto}.site-nav .page-link:not(:last-child){margin-right:20px}}.site-footer{border-top:1px solid var(--grey-color-light);padding:30px 0}.footer-heading{font-size:1.125rem;margin-bottom:15px}.feed-subscribe .svg-icon{padding:5px 5px 2px 0}.contact-list,.social-media-list{list-style:none;margin-left:0}.footer-col-wrapper{font-size:.9375rem;color:var(--grey-color);margin-left:-15px}.footer-col{width:-webkit-calc(33% - (30px / 2));width:calc(33% - (30px / 2));margin-bottom:15px;padding-left:15px}.footer-col-1,.footer-col-2{width:-webkit-calc(50% - (30px / 2));width:calc(50% - (30px / 2))}.footer-col-3{width:-webkit-calc(100% - (30px / 2));width:calc(100% - (30px / 2))}@media screen and (min-width: 800px){.footer-col-1{width:-webkit-calc(35% - (30px / 2));width:calc(35% - (30px / 2))}.footer-col-2{width:-webkit-calc(20% - (30px / 2));width:calc(20% - (30px / 2))}.footer-col-3{width:-webkit-calc(45% - (30px / 2));width:calc(45% - (30px / 2))}}@media screen and (min-width: 600px){.footer-col-wrapper{display:flex}.footer-col{width:auto;flex:1 0 0}.footer-col-1{flex:1 0 auto;order:1}.footer-col-2{flex:0 1 auto;order:3}.footer-col-3{flex:1 0 auto;order:2}}.footer-bottom{text-align:center;margin-top:30px;padding-top:15px;border-top:1px solid var(--grey-color-light);font-size:.875rem;color:var(--grey-color)}.page-content{padding:30px 0;flex:1 0 auto}.page-heading{font-size:2rem}.post-list-heading{font-size:1.75rem}.post-list{margin-left:0;list-style:none}.post-list>li{margin-bottom:30px}.post-meta{font-size:14px;color:var(--grey-color)}.post-link{display:block;font-size:1.5rem}.post-header{margin-bottom:30px}.post-title,.post-content h1{font-size:2.625rem;letter-spacing:-1px;line-height:1}@media screen and (min-width: 800px){.post-title,.post-content h1{font-size:2.625rem}}.post-content{margin-bottom:30px}.post-content h1,.post-content h2,.post-content h3{margin-top:60px}.post-content h4,.post-content h5,.post-content h6{margin-top:30px}.post-content h2{font-size:1.75rem}@media screen and (min-width: 800px){.post-content h2{font-size:2rem}}.post-content h3{font-size:1.375rem}@media screen and (min-width: 800px){.post-content h3{font-size:1.625rem}}.post-content h4{font-size:1.25rem}.post-content h5{font-size:1.125rem}.post-content h6{font-size:1.0625rem}.social-media-list{display:table;margin:0 auto}.social-media-list li{float:left;margin:5px 10px 5px 0}.social-media-list li:last-of-type{margin-right:0}.social-media-list li a{display:block;padding:7.5px;border:1px solid var(--grey-color-light)}.social-media-list li a:hover{border-color:var(--grey-color)}.blog-page{display:grid;grid-template-columns:1fr 300px;gap:60px}@media screen and (max-width: 800px){.blog-page{grid-template-columns:1fr;gap:30px}}.posts-section{min-width:0}.posts-grid{display:grid;gap:45px}.post-preview{display:grid;grid-template-columns:200px 1fr;gap:30px;padding:30px;border:1px solid var(--grey-color-light);border-radius:8px;transition:all 0.2s ease}.post-preview:hover{box-shadow:0 4px 12px rgba(0,0,0,0.1);transform:translateY(-2px)}@media screen and (max-width: 600px){.post-preview{grid-template-columns:1fr;gap:15px}}.post-preview.hidden{display:none}.post-preview-image img{width:100%;height:120px;object-fit:cover;border-radius:4px}@media screen and (max-width: 600px){.post-preview-image img{height:180px}}.post-preview-content{display:flex;flex-direction:column;gap:15px}.post-title{font-size:1.25rem;margin:0;line-height:1.3}.post-title a{text-decoration:none;color:var(--text-color)}.post-title a:hover{color:var(--brand-color)}.post-meta{font-size:.875rem;color:var(--grey-color);display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem}.post-meta .meta-separator{color:var(--grey-color-light)}.category-link,.tag-link{color:var(--brand-color);text-decoration:none}.category-link:hover,.tag-link:hover{text-decoration:underline}.tag-link{font-weight:500}.post-excerpt{font-size:.9rem;color:var(--grey-color-dark);line-height:1.5;flex-grow:1}.post-actions{margin-top:auto}.read-more-link{color:var(--brand-color);text-decoration:none;font-weight:500}.read-more-link:hover{text-decoration:underline}.pagination{margin:60px 0;display:flex;justify-content:center}.pagination .pagination-list{display:flex;list-style:none;margin:0;padding:0;gap:0.5rem;align-items:center}.pagination .pagination-item{margin:0}.pagination .pagination-link{display:block;padding:0.5rem 0.75rem;text-decoration:none;border:1px solid var(--grey-color-light);border-radius:4px;color:var(--brand-color);transition:all 0.2s ease;min-width:44px;text-align:center}.pagination .pagination-link:hover:not(.disabled){background-color:var(--brand-color);color:white;border-color:var(--brand-color)}.pagination .pagination-link.current{background-color:var(--brand-color);color:white;border-color:var(--brand-color);font-weight:600}.pagination .pagination-link.disabled{color:var(--grey-color-light);cursor:not-allowed}.pagination .pagination-link.disabled:hover{background-color:transparent;color:var(--grey-color-light);border-color:var(--grey-color-light)}.pagination .pagination-link.pagination-prev,.pagination .pagination-link.pagination-next{font-weight:500;padding:0.5rem 1rem}.pagination .pagination-ellipsis{color:var(--grey-color);padding:0.5rem 0.25rem}.pagination-info{text-align:center;margin-top:30px}.pagination-info .pagination-summary{font-size:.875rem;color:var(--grey-color);margin:0}@media screen and (max-width: 800px){.blog-sidebar{order:-1}}.sidebar-section{background-color:var(--background-color);border:1px solid var(--grey-color-light);border-radius:8px;padding:30px;margin-bottom:30px}.sidebar-section h3{font-size:1.125rem;margin:0 0 15px 0;color:var(--text-color)}.sidebar-section ul{list-style:none;margin:0;padding:0}.sidebar-section li{margin-bottom:0.25rem}.sidebar-section li a{text-decoration:none;color:var(--brand-color);display:flex;justify-content:space-between;align-items:center;padding:0.25rem 0}.sidebar-section li a:hover{text-decoration:underline}.sidebar-section .category-count,.sidebar-section .archive-count{font-size:.875rem;color:var(--grey-color);font-weight:normal}.sidebar-section .rss-link{color:var(--brand-color);text-decoration:none;font-weight:500}.sidebar-section .rss-link:hover{text-decoration:underline}@media screen and (min-width: 800px){.one-half{width:-webkit-calc(50% - (30px / 2));width:calc(50% - (30px / 2))}}.project-header{margin-bottom:30px}.project-header .project-title{font-size:2.625rem;letter-spacing:-1px;line-height:1}.project-header .project-description{font-size:1.125rem;color:var(--grey-color);margin-bottom:15px}.project-meta{display:flex;flex-wrap:wrap;gap:30px;margin-bottom:30px}@media screen and (max-width: 600px){.project-meta{flex-direction:column;gap:15px}}.tech-stack{flex:1}.tech-stack h3{font-size:1.125rem;margin-bottom:7.5px}.tech-stack ul{list-style:none;margin-left:0;display:flex;flex-wrap:wrap;gap:0.5rem}.tech-stack ul li{background-color:var(--grey-color-light);padding:0.25rem 0.5rem;border-radius:3px;font-size:14px}.project-links{display:flex;gap:15px;align-items:flex-start}@media screen and (max-width: 600px){.project-links{flex-direction:column}}.btn{display:inline-block;padding:0.5rem 1rem;border:1px solid var(--brand-color);border-radius:3px;text-decoration:none;font-weight:500;transition:all 0.2s ease}.btn.btn-demo{background-color:var(--brand-color);color:white}.btn.btn-demo:hover{background-color:var(--brand-color-dark);border-color:var(--brand-color-dark)}.btn.btn-github{background-color:transparent;color:var(--brand-color)}.btn.btn-github:hover{background-color:var(--brand-color);color:white}.post-tags{margin-top:30px;padding-top:30px;border-top:1px solid var(--grey-color-light)}.post-tags p{margin-bottom:0;font-weight:600;color:var(--grey-color-dark)}.post-tags .tag{display:inline-block;background-color:var(--grey-color-light);color:var(--text-color);padding:0.25rem 0.75rem;border-radius:15px;font-size:14px;text-decoration:none;margin-right:0.5rem;margin-top:0.25rem;transition:all 0.2s ease;border:1px solid var(--grey-color);font-weight:500}.post-tags .tag:hover{background-color:var(--brand-color);color:white;border-color:var(--brand-color);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,0.1)}.post-tags .tag:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,0.1)}[data-theme="dark"] .post-tags .tag{background-color:#444444;color:#e0e0e0;border-color:#666666}[data-theme="dark"] .post-tags .tag:hover{background-color:var(--brand-color-light);color:#000000;border-color:var(--brand-color-light)}.highlight{background-color:var(--code-background-color)}.highlighter-rouge .highlight{background-color:var(--code-background-color)}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}[data-theme="dark"] .highlight{color:#f8f8f2}[data-theme="dark"] .highlight .c{color:#75715e;font-style:italic}[data-theme="dark"] .highlight .err{color:#960050;background-color:#1e0010}[data-theme="dark"] .highlight .k{color:#66d9ef}[data-theme="dark"] .highlight .o{color:#f92672}[data-theme="dark"] .highlight .p{color:#f8f8f2}[data-theme="dark"] .highlight .cm{color:#75715e;font-style:italic}[data-theme="dark"] .highlight .cp{color:#75715e}[data-theme="dark"] .highlight .c1{color:#75715e;font-style:italic}[data-theme="dark"] .highlight .cs{color:#75715e;font-style:italic}[data-theme="dark"] .highlight .ge{font-style:italic}[data-theme="dark"] .highlight .gs{font-weight:bold}[data-theme="dark"] .highlight .kc{color:#66d9ef}[data-theme="dark"] .highlight .kd{color:#66d9ef}[data-theme="dark"] .highlight .kn{color:#f92672}[data-theme="dark"] .highlight .kp{color:#66d9ef}[data-theme="dark"] .highlight .kr{color:#66d9ef}[data-theme="dark"] .highlight .kt{color:#66d9ef}[data-theme="dark"] .highlight .ld{color:#e6db74}[data-theme="dark"] .highlight .m{color:#ae81ff}[data-theme="dark"] .highlight .s{color:#e6db74}[data-theme="dark"] .highlight .na{color:#a6e22e}[data-theme="dark"] .highlight .nb{color:#f8f8f2}[data-theme="dark"] .highlight .nc{color:#a6e22e}[data-theme="dark"] .highlight .no{color:#66d9ef}[data-theme="dark"] .highlight .nd{color:#a6e22e}[data-theme="dark"] .highlight .ni{color:#f8f8f2}[data-theme="dark"] .highlight .ne{color:#a6e22e}[data-theme="dark"] .highlight .nf{color:#a6e22e}[data-theme="dark"] .highlight .nl{color:#f8f8f2}[data-theme="dark"] .highlight .nn{color:#f8f8f2}[data-theme="dark"] .highlight .nx{color:#a6e22e}[data-theme="dark"] .highlight .py{color:#f8f8f2}[data-theme="dark"] .highlight .nt{color:#f92672}[data-theme="dark"] .highlight .nv{color:#f8f8f2}[data-theme="dark"] .highlight .ow{color:#f92672}[data-theme="dark"] .highlight .w{color:#f8f8f2}[data-theme="dark"] .highlight .mf{color:#ae81ff}[data-theme="dark"] .highlight .mh{color:#ae81ff}[data-theme="dark"] .highlight .mi{color:#ae81ff}[data-theme="dark"] .highlight .mo{color:#ae81ff}[data-theme="dark"] .highlight .sb{color:#e6db74}[data-theme="dark"] .highlight .sc{color:#e6db74}[data-theme="dark"] .highlight .sd{color:#e6db74}[data-theme="dark"] .highlight .s2{color:#e6db74}[data-theme="dark"] .highlight .se{color:#ae81ff}[data-theme="dark"] .highlight .sh{color:#e6db74}[data-theme="dark"] .highlight .si{color:#e6db74}[data-theme="dark"] .highlight .sx{color:#e6db74}[data-theme="dark"] .highlight .sr{color:#e6db74}[data-theme="dark"] .highlight .s1{color:#e6db74}[data-theme="dark"] .highlight .ss{color:#ae81ff}[data-theme="dark"] .highlight .bp{color:#f8f8f2}[data-theme="dark"] .highlight .vc{color:#f8f8f2}[data-theme="dark"] .highlight .vg{color:#f8f8f2}[data-theme="dark"] .highlight .vi{color:#f8f8f2}[data-theme="dark"] .highlight .il{color:#ae81ff}.project-card{margin-bottom:2rem;padding:1.5rem;border:1px solid var(--grey-color-light);border-radius:8px;background-color:var(--background-color)}.project-card:hover{box-shadow:0 4px 12px rgba(0,0,0,0.1);transition:box-shadow 0.3s ease}.project-card h2{margin-top:0;margin-bottom:1rem}.project-card h2 a{text-decoration:none;color:var(--text-color)}.project-card h2 a:hover{color:var(--brand-color)}.project-card .project-description{color:var(--grey-color);margin-bottom:1rem}.tech-stack-preview{margin-bottom:1rem}.tech-stack-preview .tech-tag{display:inline-block;background-color:var(--brand-color);color:white;padding:0.25rem 0.5rem;border-radius:3px;font-size:0.8rem;margin-right:0.25rem;margin-bottom:0.25rem}.tech-stack-preview .tech-more{color:var(--grey-color);font-size:0.8rem;font-style:italic}.btn-details{background-color:var(--grey-color-light);color:var(--text-color);border-color:var(--grey-color-light)}.btn-details:hover{background-color:var(--grey-color);border-color:var(--grey-color);color:white}.post-preview{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--grey-color-light)}.post-preview:last-child{border-bottom:none}.post-preview h2{margin-bottom:0.5rem}.post-preview h2 a{text-decoration:none;color:var(--text-color)}.post-preview h2 a:hover{color:var(--brand-color)}.post-preview .post-meta{margin-bottom:1rem}.post-preview p:last-child{margin-bottom:0}.placeholder-content{text-align:center;padding:3rem 1rem;color:var(--grey-color)}.placeholder-content h2{color:var(--text-color);margin-bottom:1rem}.placeholder-content ul{text-align:left;display:inline-block;margin:1rem 0}.social-links{display:flex;gap:1rem}.social-links a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:var(--grey-color-light);color:var(--text-color);transition:all 0.3s ease}.social-links a:hover{background-color:var(--brand-color);color:white;transform:translateY(-2px)}@media screen and (max-width: 600px){.project-card{padding:1rem}.project-links .btn{display:block;text-align:center;margin-bottom:0.5rem}.project-links .btn:last-child{margin-bottom:0}.tech-stack-preview{text-align:center}.social-links{justify-content:center}}@media (forced-colors: active){*{forced-color-adjust:auto}}.site-header{border-bottom:1px solid #e8e8e8}.post-preview{background:white;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1);padding:0;margin-bottom:2rem;transition:transform 0.2s ease, box-shadow 0.2s ease, opacity 0.3s ease;display:grid;grid-template-columns:1fr 1fr;min-height:300px;gap:0;overflow:hidden;opacity:1}.post-preview:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.15)}.post-preview.hidden{display:none !important}.post-preview-left{display:grid;grid-template-rows:4fr 1fr;background:var(--background-color)}.post-preview-left .post-preview-image{grid-row:1}.post-preview-left .post-preview-image a{display:block;height:100%}.post-preview-left .post-preview-image img{width:100%;height:100%;object-fit:cover;border:none;border-radius:0}.post-preview-left .post-meta{grid-row:2;padding:1rem;background:rgba(0,0,0,0.02);border-top:1px solid var(--border-color);display:flex;align-items:center}.post-preview-left .post-meta time{font-size:0.9rem;color:var(--text-color-light);font-weight:500}.post-preview-content{display:grid;grid-template-rows:2fr 3fr}.post-preview-content .post-title{grid-row:1;padding:2rem 2rem 1rem 2rem;margin:0;font-size:1.5rem;line-height:1.3;display:flex;align-items:center}.post-preview-content .post-title a{color:var(--heading-color);text-decoration:none;transition:color 0.2s ease}.post-preview-content .post-title a:hover{color:var(--brand-color)}.post-preview-content .post-excerpt-container{grid-row:2;padding:1rem 2rem 2rem 2rem;display:flex;flex-direction:column;justify-content:space-between}.post-preview-content .post-excerpt-container .post-excerpt{margin:0 0 1.5rem 0;line-height:1.6;color:var(--text-color);flex:1}.post-preview-content .post-excerpt-container .post-actions .read-more-link{color:var(--brand-color);text-decoration:none;font-weight:500;font-size:0.95rem;transition:color 0.2s ease}.post-preview-content .post-excerpt-container .post-actions .read-more-link:hover{color:var(--link-hover-color)}@media (max-width: 768px){.post-preview{grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:auto}.post-preview .post-preview-left{grid-row:1 / 3;grid-template-rows:200px auto}.post-preview .post-preview-left .post-preview-image{min-height:200px}.post-preview .post-preview-left .post-meta{padding:0.75rem 1rem}.post-preview .post-preview-content{grid-row:3;grid-column:1;grid-template-rows:auto 1fr}.post-preview .post-preview-content .post-title{padding:1.5rem 1.5rem 1rem 1.5rem;font-size:1.3rem}.post-preview .post-preview-content .post-excerpt-container{padding:0 1.5rem 1.5rem 1.5rem}}.post-preview-no-image{grid-template-columns:1fr}.post-preview-no-image .post-preview-left{grid-template-rows:1fr}.post-preview-no-image .post-preview-left .post-meta{padding:2rem;background:rgba(0,0,0,0.02);display:flex;align-items:center;justify-content:center;font-size:1rem;border-top:none}.post-preview-no-image .post-preview-left .post-meta time{font-size:1rem;font-weight:600;color:var(--text-color)}.post-preview-no-image .post-preview-content{padding:2rem;grid-template-rows:auto 1fr}.post-meta .category{color:#2a7ae4;text-decoration:none;padding:0.1rem 0.3rem;border-radius:3px;background:rgba(42,122,228,0.1);transition:all 0.2s ease}.post-meta .category:hover{background:rgba(42,122,228,0.2);text-decoration:none}.project-card{margin-bottom:2rem;padding:1.5rem;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa}.project-card h2{margin-top:0;margin-bottom:1rem}.project-card h2 a{text-decoration:none;color:#111}.project-card h2 a:hover{color:#2a7ae4}.project-card .project-description{margin-bottom:1rem;color:#555}.project-card .tech-stack-preview{margin-bottom:1rem}.project-card .tech-stack-preview .tech-tag{display:inline-block;background:#e8f4fd;color:#0366d6;padding:0.2rem 0.5rem;margin:0.2rem 0.2rem 0.2rem 0;border-radius:3px;font-size:12px}.project-card .tech-stack-preview .tech-more{color:#666;font-size:12px;font-style:italic}.project-card .project-links .btn{display:inline-block;padding:0.5rem 1rem;margin-right:0.5rem;text-decoration:none;border-radius:4px;font-size:14px;font-weight:500}.project-card .project-links .btn.btn-demo{background:#28a745;color:white}.project-card .project-links .btn.btn-demo:hover{background:#218838}.project-card .project-links .btn.btn-github{background:#6f42c1;color:white}.project-card .project-links .btn.btn-github:hover{background:#5a32a3}.project-card .project-links .btn.btn-details{background:#007bff;color:white}.project-card .project-links .btn.btn-details:hover{background:#0056b3}.placeholder-content{text-align:center;padding:3rem 1rem;color:#666}.placeholder-content h2{color:#111;margin-bottom:1rem}.post-hero-image{margin-bottom:2rem;max-width:100%}.post-hero-image img{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,0.1);display:block}.site-footer{background-color:#f8f9fa;border-top:1px solid var(--border-color-01)}.site-footer .footer-col-wrapper{display:grid;grid-template-columns:1fr 2fr 1fr;gap:40px;align-items:start}.site-footer .footer-col{width:auto;margin-bottom:0;padding-left:0}.site-footer .footer-col:first-child .feed-subscribe{margin-bottom:1.5rem}.site-footer .footer-col:first-child .footer-logo{margin-bottom:1.5rem}.site-footer .footer-col:first-child .footer-logo a{display:inline-block;text-decoration:none}.site-footer .footer-col:first-child .footer-logo a img{height:60px;width:60px;object-fit:contain;object-position:center;transition:transform 0.2s ease;padding:0;margin:0;background:transparent}.site-footer .footer-col:first-child .footer-logo a img:hover{transform:scale(1.05)}.site-footer .footer-col:first-child .p-name{font-weight:600;font-size:1.1rem;color:var(--text-color);margin-bottom:8px}.site-footer .footer-col:first-child .contact-list{list-style:none;margin:0;padding:0}.site-footer .footer-col:first-child .contact-list li{margin-bottom:4px}.site-footer .footer-col:nth-child(2) p{line-height:1.6;margin:0;opacity:0.85;max-width:500px}.site-footer .footer-col:last-child{display:flex;flex-direction:column;align-items:flex-end}.site-footer .footer-col:last-child .social-links{display:flex;gap:12px}.site-footer .footer-col:last-child .social-links a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:var(--border-color-02);transition:all 0.3s ease}.site-footer .footer-col:last-child .social-links a:hover{background-color:var(--brand-color);transform:translateY(-2px)}.site-footer .footer-col:last-child .social-links a:hover .svg-icon{fill:white}.site-footer .footer-bottom{margin-top:30px;padding-top:20px;border-top:1px solid var(--border-color-02);text-align:center}.site-footer .footer-bottom p{margin:0;font-size:0.9rem;opacity:0.8}.site-footer .footer-bottom a{color:var(--brand-color);text-decoration:none}.site-footer .footer-bottom a:hover{text-decoration:underline}@media (max-width: 768px){.site-footer .footer-col-wrapper{grid-template-columns:1fr;gap:30px;text-align:center}.site-footer .footer-col:last-child{align-items:center}}[data-theme="dark"] body{background-color:#1a1a1a !important;color:#e0e0e0 !important}[data-theme="dark"] .wrapper{background-color:#1a1a1a !important}[data-theme="dark"] .page-content{background-color:#1a1a1a !important}[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4,[data-theme="dark"] h5,[data-theme="dark"] h6{color:#ffffff !important}[data-theme="dark"] p,[data-theme="dark"] span,[data-theme="dark"] div{color:#e0e0e0 !important}[data-theme="dark"] a{color:#4dabf7 !important}[data-theme="dark"] a:hover{color:#339af0 !important}[data-theme="dark"] a:visited{color:#9775fa !important}[data-theme="dark"] .site-header{background-color:#2d2d2d !important;border-bottom-color:#444 !important}[data-theme="dark"] .site-header .site-title{color:#ffffff !important}[data-theme="dark"] .site-header .site-title:hover{color:#4dabf7 !important}[data-theme="dark"] .site-header .page-link{color:#e0e0e0 !important}[data-theme="dark"] .site-header .page-link:hover{color:#4dabf7 !important}[data-theme="dark"] .site-nav .nav-trigger:checked ~ .trigger{background-color:#2d2d2d !important}[data-theme="dark"] .post,[data-theme="dark"] .page{background-color:#1a1a1a !important}[data-theme="dark"] .post-content,[data-theme="dark"] .page-content{color:#e0e0e0 !important}[data-theme="dark"] .post-title,[data-theme="dark"] .page-title{color:#ffffff !important}[data-theme="dark"] .site-footer{background-color:#181a1b !important;border-top-color:#333 !important;color:#e0e0e0 !important}[data-theme="dark"] .site-footer h2,[data-theme="dark"] .site-footer h3{color:#fff !important}[data-theme="dark"] .site-footer p,[data-theme="dark"] .site-footer .footer-col-wrapper,[data-theme="dark"] .site-footer .footer-bottom{color:#bfc4c9 !important}[data-theme="dark"] .site-footer a{color:#4dabf7 !important;text-decoration:none}[data-theme="dark"] .site-footer a:hover{color:#90caf9 !important;text-decoration:underline}[data-theme="dark"] .site-footer .footer-col .p-name{color:#fff !important}[data-theme="dark"] .site-footer .footer-col-wrapper{color:#bfc4c9 !important}[data-theme="dark"] .site-footer .footer-bottom{border-top:1px solid #333 !important;background:transparent !important;color:#bfc4c9 !important}[data-theme="dark"] .site-footer .social-links a:hover .svg-icon{fill:#e0e0e0 !important}[data-theme="dark"] pre,[data-theme="dark"] code{background-color:#2d2d2d !important;color:#e0e0e0 !important;border:1px solid #444 !important}[data-theme="dark"] .highlight{background-color:#2d2d2d !important}[data-theme="dark"] table{background-color:#2d2d2d !important}[data-theme="dark"] table th,[data-theme="dark"] table td{background-color:#2d2d2d !important;color:#e0e0e0 !important;border-color:#444 !important}[data-theme="dark"] table th{background-color:#3d3d3d !important}[data-theme="dark"] blockquote{background-color:#2d2d2d !important;border-left-color:#4dabf7 !important;color:#e0e0e0 !important}[data-theme="dark"] .project-card{background:#2d2d2d !important;border-color:#444 !important}[data-theme="dark"] .project-card h2 a{color:#fff !important}[data-theme="dark"] .project-card h2 a:hover{color:#4dabf7 !important}[data-theme="dark"] .project-card .project-description{color:#ccc !important}[data-theme="dark"] .project-card .tech-tag{background:#1c4966 !important;color:#4dabf7 !important}[data-theme="dark"] .post-preview{background:#2d2d2d !important;border-bottom-color:#444 !important;box-shadow:0 2px 8px rgba(0,0,0,0.3) !important}[data-theme="dark"] .post-preview:hover{box-shadow:0 4px 16px rgba(0,0,0,0.4) !important}[data-theme="dark"] .post-preview .post-title a{color:#ffffff !important}[data-theme="dark"] .post-preview .post-title a:hover{color:#4dabf7 !important}[data-theme="dark"] .post-preview .post-excerpt{color:#e0e0e0 !important}[data-theme="dark"] .post-preview .read-more-link{color:#4dabf7 !important}[data-theme="dark"] .post-preview .read-more-link:hover{color:#339af0 !important}[data-theme="dark"] .post-preview-left{background:#2d2d2d !important}[data-theme="dark"] .post-preview-left .post-meta{background:rgba(0,0,0,0.3) !important;border-top-color:#444 !important}[data-theme="dark"] .post-preview-left .post-meta time{color:#bbb !important}[data-theme="dark"] .post-preview-content{background:#2d2d2d !important}[data-theme="dark"] .post-preview-content .post-title{color:#ffffff !important}[data-theme="dark"] .post-preview-content .post-excerpt-container .post-excerpt{color:#e0e0e0 !important}[data-theme="dark"] .post-meta{color:#bbb !important}[data-theme="dark"] .post-meta a{color:#bbb !important}[data-theme="dark"] .post-meta a:hover{color:#4dabf7 !important}[data-theme="dark"] .post-meta .category{background:#1c4966 !important;color:#4dabf7 !important}[data-theme="dark"] .post-meta time{color:#bbb !important}[data-theme="dark"] .blog-sidebar .sidebar-section{background:#2d2d2d !important;box-shadow:0 2px 8px rgba(0,0,0,0.3) !important}[data-theme="dark"] .blog-sidebar .sidebar-section h3{color:#ffffff !important;border-bottom-color:#4dabf7 !important}[data-theme="dark"] .blog-sidebar .sidebar-section ul li a{color:#e0e0e0 !important}[data-theme="dark"] .blog-sidebar .sidebar-section ul li a:hover{color:#4dabf7 !important}[data-theme="dark"] .blog-sidebar .sidebar-section ul li a .category-count,[data-theme="dark"] .blog-sidebar .sidebar-section ul li a .archive-count{color:#bbb !important;background:#1a1a1a !important}[data-theme="dark"] .blog-sidebar .sidebar-section .rss-link{color:#4dabf7 !important}[data-theme="dark"] .blog-sidebar .sidebar-section .rss-link:hover{color:#339af0 !important}[data-theme="dark"] .placeholder-content{color:#999 !important}[data-theme="dark"] .placeholder-content h2{color:#fff !important}.blog-page{width:100%;max-width:800px;margin:0 auto;padding:0 2rem;display:grid !important;grid-template-columns:1fr !important;grid-template-rows:auto 1fr auto;gap:3rem;align-items:start}.blog-page .page-header{grid-column:1;grid-row:1;text-align:center;margin-bottom:3rem}.blog-page .page-header .page-heading{font-size:2.5rem;margin-bottom:1rem;color:var(--heading-color)}.blog-page .page-header .page-description{font-size:1.1rem;color:var(--text-color-light);max-width:600px;margin:0 auto;line-height:1.6}.posts-section{grid-column:1 !important;grid-row:2 !important;min-width:0}.posts-grid{display:flex;flex-direction:column;gap:2rem}.blog-sidebar{grid-column:1 !important;grid-row:3 !important;position:static;min-width:0;margin-top:0}.blog-sidebar .sidebar-section{background:white;border-radius:8px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 2px 8px rgba(0,0,0,0.1)}.blog-sidebar .sidebar-section h3{margin:0 0 1rem 0;font-size:1.2rem;color:var(--heading-color);border-bottom:2px solid var(--brand-color);padding-bottom:0.5rem}.blog-sidebar .sidebar-section ul{list-style:none;margin:0;padding:0}.blog-sidebar .sidebar-section ul li{margin-bottom:0.5rem}.blog-sidebar .sidebar-section ul li a{color:var(--text-color);text-decoration:none;display:flex;justify-content:space-between;align-items:center;padding:0.25rem 0;transition:color 0.2s ease}.blog-sidebar .sidebar-section ul li a:hover{color:var(--brand-color)}.blog-sidebar .sidebar-section ul li a .category-count,.blog-sidebar .sidebar-section ul li a .archive-count{font-size:0.9rem;color:var(--text-color-light);background:var(--background-color);padding:0.2rem 0.5rem;border-radius:4px}.blog-sidebar .sidebar-section .rss-link{color:var(--brand-color);text-decoration:none;font-weight:500}.blog-sidebar .sidebar-section .rss-link:hover{color:var(--link-hover-color)}@media (max-width: 768px){.blog-page{padding:0 1rem;gap:2rem}.blog-sidebar{grid-column:1;position:static}.blog-sidebar .sidebar-section{margin-bottom:1.5rem;padding:1rem}}.rss-copy-btn{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0;text-decoration:none;display:inline-flex;align-items:center;gap:0.25rem;transition:color 0.2s ease}.rss-copy-btn:hover{color:var(--brand-color)}.rss-copy-btn .svg-icon{width:16px;height:16px}.copy-toast{position:fixed;top:20px;right:20px;background:#ffffff;color:#333333;border:2px solid #4CAF50;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:1000;opacity:0;transform:translateX(100px);transition:all 0.3s ease;max-width:280px}.copy-toast.show{opacity:1;transform:translateX(0)}.copy-toast.hide{opacity:0;transform:translateX(100px)}.copy-toast .toast-icon{display:inline-block;margin-right:8px;font-size:16px}[data-theme="dark"] .copy-toast{background:#2d2d2d !important;color:#ffffff !important;border:2px solid #4CAF50 !important;box-shadow:0 4px 12px rgba(0,0,0,0.5)}.page-404{text-align:center;margin:3rem auto;max-width:600px;padding:2rem}.page-404 .hero-image{max-width:100%;width:auto;height:auto;max-height:400px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,0.15);margin:0 auto 2rem auto;display:block;transition:transform 0.3s ease, box-shadow 0.3s ease}.page-404 .hero-image:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.2)}.page-404 .page-404-content{margin-top:2rem}.page-404 .page-404-message{font-size:1.3rem;color:var(--text-color-light);margin-bottom:2rem;font-style:italic;line-height:1.5}.page-404 .page-404-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.page-404 .btn-404{display:inline-block;padding:0.8rem 2rem;border-radius:8px;text-decoration:none;font-weight:500;font-size:1rem;transition:all 0.3s ease;min-width:140px}.page-404 .btn-404.btn-primary{background-color:var(--brand-color);color:white}.page-404 .btn-404.btn-primary:hover{background-color:var(--link-hover-color);transform:translateY(-2px);box-shadow:0 4px 12px rgba(42,122,228,0.3)}.page-404 .btn-404.btn-secondary{background-color:transparent;color:var(--brand-color);border:2px solid var(--brand-color)}.page-404 .btn-404.btn-secondary:hover{background-color:var(--brand-color);color:white;transform:translateY(-2px);box-shadow:0 4px 12px rgba(42,122,228,0.3)}[data-theme="dark"] .page-404 .hero-image{box-shadow:0 8px 24px rgba(0,0,0,0.4) !important}[data-theme="dark"] .page-404 .hero-image:hover{box-shadow:0 12px 32px rgba(0,0,0,0.6) !important}[data-theme="dark"] .page-404 .page-404-message{color:#bbb !important}[data-theme="dark"] .page-404 .btn-404.btn-primary{background-color:#4dabf7 !important}[data-theme="dark"] .page-404 .btn-404.btn-primary:hover{background-color:#339af0 !important;box-shadow:0 4px 12px rgba(77,171,247,0.4) !important}[data-theme="dark"] .page-404 .btn-404.btn-secondary{color:#4dabf7 !important;border-color:#4dabf7 !important}[data-theme="dark"] .page-404 .btn-404.btn-secondary:hover{background-color:#4dabf7 !important;color:#1a1a1a !important;box-shadow:0 4px 12px rgba(77,171,247,0.4) !important}@media (max-width: 768px){.page-404{margin:2rem auto;padding:1rem}.page-404 .hero-image{max-height:300px;border-radius:8px}.page-404 .page-404-message{font-size:1.1rem;margin-bottom:1.5rem}.page-404 .page-404-actions{flex-direction:column;align-items:center;gap:0.8rem}.page-404 .btn-404{width:100%;max-width:280px}}.theme-toggle{background:none;border:2px solid var(--border-color-01);border-radius:50%;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s ease;margin-left:auto;position:relative;overflow:hidden}.theme-toggle:hover{border-color:var(--brand-color);transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,0.1)}.theme-toggle:active{transform:translateY(0)}.theme-toggle .theme-toggle-icon{position:relative;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.theme-toggle .sun-icon,.theme-toggle .moon-icon{position:absolute;font-size:16px;transition:all 0.4s ease;display:flex;align-items:center;justify-content:center}.theme-toggle .sun-icon{opacity:1;transform:rotate(0deg) scale(1);color:#f39c12}.theme-toggle .moon-icon{opacity:0;transform:rotate(180deg) scale(0.3);color:#3498db}.site-header .wrapper{display:flex;align-items:center;justify-content:space-between}.site-header .wrapper .site-nav{margin-left:auto;margin-right:1rem}[data-theme="dark"] .theme-toggle{border-color:#555}[data-theme="dark"] .theme-toggle:hover{border-color:#4dabf7;box-shadow:0 4px 8px rgba(0,0,0,0.3)}[data-theme="dark"] .theme-toggle .sun-icon{opacity:0;transform:rotate(-180deg) scale(0.3)}[data-theme="dark"] .theme-toggle .moon-icon{opacity:1;transform:rotate(0deg) scale(1)}@media (max-width: 768px){.theme-toggle{width:40px;height:40px;margin-left:0.5rem}.theme-toggle .theme-toggle-icon{width:18px;height:18px}.theme-toggle .sun-icon,.theme-toggle .moon-icon{font-size:14px}.site-header .wrapper .site-nav{margin-right:0.5rem}}.pagination{margin:2rem 0}.pagination .pagination-list{display:flex;list-style:none;padding:0;margin:0;justify-content:center;align-items:center;gap:0.5rem;flex-wrap:wrap}.pagination .pagination-item{margin:0}.pagination .pagination-link{display:inline-block;padding:0.5rem 0.75rem;color:var(--brand-color);text-decoration:none;border-radius:4px;transition:all 0.2s ease;font-weight:500;min-width:40px;text-align:center}.pagination .pagination-link:hover:not(.disabled):not(.current){background-color:var(--brand-color);color:white}.pagination .pagination-link.current{background-color:var(--brand-color);color:white;font-weight:600}.pagination .pagination-link.disabled{color:var(--text-color-light);cursor:not-allowed}.pagination .pagination-link.pagination-prev,.pagination .pagination-link.pagination-next{padding:0.5rem 1rem;font-weight:500}.pagination .pagination-ellipsis{padding:0.5rem 0.25rem;color:var(--text-color-light)}.pagination-info{text-align:center;margin-top:1.5rem}.pagination-info .pagination-summary{color:var(--text-color-light);font-size:0.9rem;margin:0}[data-theme="dark"] .pagination .pagination-link{color:#4dabf7 !important}[data-theme="dark"] .pagination .pagination-link:hover:not(.disabled):not(.current){background-color:#4dabf7 !important;color:#1a1a1a !important}[data-theme="dark"] .pagination .pagination-link.current{background-color:#4dabf7 !important;color:#1a1a1a !important}[data-theme="dark"] .pagination .pagination-link.disabled{color:#666 !important}[data-theme="dark"] .pagination .pagination-ellipsis{color:#666 !important}[data-theme="dark"] .pagination-info .pagination-summary{color:#bbb !important}@media (max-width: 768px){.pagination .pagination-list{gap:0.25rem}.pagination .pagination-link{padding:0.4rem 0.6rem;font-size:0.9rem;min-width:36px}.pagination .pagination-link.pagination-prev,.pagination .pagination-link.pagination-next{padding:0.4rem 0.8rem}}
