﻿@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;0,900;1,300;1,400;1,500;1,700;1,900&display=swap");@import url("/static/styles/prism-one-light.css");@import url("/static/styles/color-palette.css");@font-face{font-family:"FiraCode";src:url("static/fonts/FiraCode-VF.woff2") format("woff2-variations"),url("static/fonts/FiraCode-VF.woff") format("woff-variations"),url("static/fonts/FiraCode.ttf") format("truetype");font-weight:300 700;font-style:normal}@font-face{font-family:"RedHatText";src:url("static/fonts/RedHatText-VF.ttf") format("truetype");font-weight:300 700;font-style:normal}html,body{height:100%;margin:0}body{font-family:"FiraCode",monospace}h1,h2,h3,h4,h5,h6{font-family:"Roboto",sans-serif;color:#333;margin-top:0}img#small{max-width:300px !important}header{clear:both;width:100%}div.header{padding-left:8em;border-bottom:1px solid var(--accent-2);height:80px}main{width:100%;padding:1em}article:not(.post-list-item):not(.post-card){max-width:800px;margin:0 auto;padding:2em}.post-header{margin-bottom:.2em;border-bottom:2px solid var(--accent-3, #eee);padding-bottom:1em}.post-header h1{margin:0 0 .5em 0;font-size:2.5em;line-height:1.2}.post-header time{color:#666;font-size:.9em}.post-header .description{font-size:1.1em;color:#555;font-style:italic;margin:1em 0}.tags{margin-top:1em}.tag{display:inline-block;background:var(--accent-2, #f0f0f0);padding:.25em .5em;margin-right:.5em;border-radius:3px;font-size:.8em;color:#666}.post-content{line-height:1.6;font-size:1.1em}.post-view-container{width:100%;margin-bottom:2em}.post-view-title{font-size:2.5em;line-height:1.2;margin:0 0 .5em 0;border-bottom:2px solid #eee;padding-bottom:.5em}.post-view-meta{display:flex;gap:1em;margin-bottom:1em;font-size:.9em;color:#666;align-items:center}.post-view-meta .post-date{font-weight:600;color:#333}.post-view-meta .post-author{color:#555}.post-view-meta .featured-badge{background:#ff6b35;color:#fff;padding:.3em .6em;border-radius:4px;font-size:.8em;font-weight:600}.post-view-taxonomy{display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:1.5em;align-items:center}.post-view-taxonomy .category{background:#e3f2fd;color:#1565c0;padding:.3em .6em;border-radius:4px;font-size:.8em;font-weight:500;border:1px solid #bbdefb;cursor:pointer;transition:all .2s ease}.post-view-taxonomy .category:hover{background:#bbdefb;transform:translateY(-1px);box-shadow:0 2px 4px rgba(21,101,192,.2)}.post-view-taxonomy .tag{background:#f1f8e9;border:1px solid #c8e6c9;color:#2e7d32;padding:.3em .6em;border-radius:4px;font-size:.8em;cursor:pointer;transition:all .2s ease}.post-view-taxonomy .tag:hover{background:#dcedc8;transform:translateY(-1px);box-shadow:0 2px 4px rgba(46,125,50,.2)}.post-view-summary{font-size:1.1em;color:#555;font-style:italic;margin-bottom:2em;line-height:1.6}.post-view-content{position:relative}.post-view-featured-image{float:right;width:33.33%;margin:0 0 1.5em 2em;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15)}.post-markdown-content{width:100%;margin:0;padding:0;background:none;border-radius:0;box-shadow:none}.post-markdown-content h1,.post-markdown-content h2,.post-markdown-content h3,.post-markdown-content h4,.post-markdown-content h5,.post-markdown-content h6{margin-top:2em;margin-bottom:.5em;line-height:1.3}.post-markdown-content h1{font-size:2em;border-bottom:2px solid #eee;padding-bottom:.5em}.post-markdown-content h2{font-size:1.5em;border-bottom:1px solid #eee;padding-bottom:.3em}.post-markdown-content h3{font-size:1.3em}.post-markdown-content p{margin:1em 0;line-height:1.7}.post-markdown-content ul,.post-markdown-content ol{margin:1em 0;padding-left:2em}.post-markdown-content li{margin:.5em 0;line-height:1.6}.post-markdown-content blockquote{margin:1.5em 0;padding:1em 1.5em;background:#f8f9fa;border-left:4px solid #007bff;font-style:italic}.post-markdown-content code:not([class*=language-]){background:#f1f3f4;padding:.2em .4em;border-radius:3px;font-family:"FiraCode",monospace;font-size:.9em}.post-markdown-content pre{background:#f8f9fa;padding:1.5em;border-radius:6px;overflow-x:auto;margin:1.5em 0;font-family:"FiraCode",monospace;font-size:.9em;line-height:1.4}.code-block-wrapper{position:relative;margin:1.5em 0}.copy-code-button{position:absolute;top:.5em;right:.5em;padding:.5em;background:rgba(255,255,255,.9);border:1px solid #d1d5db;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .2s ease,background-color .2s ease,border-color .2s ease;z-index:10;display:flex;align-items:center;justify-content:center;color:#4b5563}.code-block-wrapper:hover .copy-code-button{opacity:1}.copy-code-button:hover{background:#fff;border-color:#9ca3af;color:#1f2937}.copy-code-button:active{background:#f3f4f6}.copy-code-button.copied{background:#10b981;border-color:#10b981;color:#fff}.copy-code-button svg{width:16px;height:16px}.post-markdown-content pre code{background:none;padding:0;font-family:inherit;font-size:inherit}.post-markdown-content pre[class*=language-]{background:var(--prism-background, #f8f9fa);border:1px solid #e1e4e8}.post-markdown-content code[class*=language-]{font-family:"FiraCode",monospace}.token.comment{color:#6a737d}.token.string{color:#032f62}.token.keyword{color:#d73a49;font-weight:bold}.token.function{color:#6f42c1}.token.number{color:#005cc5}.token.operator{color:#d73a49}.token.punctuation{color:#24292e}.token.macro{color:#e36209}.token.attribute{color:#6f42c1}.token.decorator{color:#6f42c1}.post-markdown-content img{max-width:100%;height:auto;margin:1.5em 0;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.post-markdown-content a{color:#007bff;text-decoration:none}.post-markdown-content a:hover{text-decoration:underline}.post-markdown-content table{width:100%;border-collapse:collapse;margin:1.5em 0}.post-markdown-content th,.post-markdown-content td{padding:.8em;border:1px solid #dee2e6;text-align:left}.post-markdown-content th{background:#f8f9fa;font-weight:600}.post-markdown-content hr{margin:2em 0;border:none;border-top:2px solid #eee}@media (max-width: 768px){.post-view-title{font-size:2em}.post-view-featured-image{float:none;width:100%;max-width:none;margin:0 0 1.5em 0}.post-view-meta{flex-direction:column;align-items:flex-start;gap:.5em}.posts-container{width:95%;padding:.5em}.home-header,.blog-header{width:95%;padding:1em .5em 0 .5em}.home-header h1,.blog-header h1{font-size:2.2em}.home-header p,.blog-header p{font-size:1.1em}}.loading,.error{text-align:center;padding:2em;font-style:italic}.error{color:#d00}.home-page,.blog-page{width:100%}.home-header,.blog-header{width:80%;margin:0 auto 2em auto;padding:2em 1em 0 1em;text-align:center}.home-header h1,.blog-header h1{font-size:3em;margin:0 0 .5em 0;line-height:1.2;color:#333}.home-header p,.blog-header p{font-size:1.2em;line-height:1.6;color:#666;margin:0 auto}.posts-container{width:80%;margin:0 auto;padding:1em;display:flex;flex-direction:column;align-items:flex-start}.posts-container h1{margin:0 0 .5em 0;font-size:2.5em;line-height:1.2}.active-filters{background:#f8f9fa;padding:1em;border-radius:8px;margin-bottom:2em}.filter-tag{display:inline-block;background:#007bff;color:#fff;padding:.25em .5em;margin-right:.5em;border-radius:15px;font-size:.8em}.posts-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(350px, 1fr));gap:2em;margin-top:2em}.post-card{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s;background:#fff}.post-card:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.1)}.post-image{width:100%;height:200px;overflow:hidden}.post-image img{width:100%;height:100%;object-fit:cover}.post-card-content{padding:1.5em;position:relative}.post-title{margin:0 0 .5em 0;font-size:1.25em}.post-title a{text-decoration:none;color:#333}.post-title a:hover{color:#007bff}.post-meta{display:flex;gap:1em;margin-bottom:1em;font-size:.9em;color:#666}.post-meta time{font-weight:500}.post-meta .author{color:#555}.post-meta .category{background:#f0f0f0;padding:.2em .5em;border-radius:4px;font-size:.8em}.post-summary{color:#555;line-height:1.5;margin-bottom:1em}.post-tags{display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:1em}.post-tags .tag{background:#f8f9fa;border:1px solid #dee2e6;padding:.2em .5em;border-radius:4px;font-size:.8em;color:#666}.post-tags .tag.more{background:#6c757d;color:#fff;border-color:#6c757d}.featured-badge{position:absolute;top:1em;right:1em;background:#ffc107;color:#000;padding:.25em .5em;border-radius:4px;font-size:.8em;font-weight:bold}.no-posts{text-align:center;padding:3em;color:#666;font-style:italic}div.header-left{float:left}div.header-right{float:right}.header-left h2{margin:0;display:inline}header-leftsub{display:inline;margin-left:3em}footer{clear:both;width:100%;padding:1em;text-align:center;border-top:1px solid var(--accent-2);font-size:.75em}.posts-list{display:flex;flex-direction:column;gap:1.5em;margin-top:2em;width:100%}.post-list-item{display:flex;gap:1.5em;padding:1.5em;border:1px solid #e0e0e0;border-radius:8px;background:#fff;transition:box-shadow .2s;width:100%;box-sizing:border-box}.post-list-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.post-list-item .post-image-section{display:flex;flex-direction:column;gap:.5em;flex-shrink:0}.post-list-item .post-image{width:120px;height:80px;border-radius:6px;overflow:hidden}.post-list-item .post-image img{width:100%;height:100%;object-fit:cover}.post-list-item .placeholder-image{width:100%;height:100%;background:linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);display:flex;align-items:center;justify-content:center;color:#999;font-size:.8em}.post-list-item .placeholder-image::after{content:"📄";font-size:2em}.post-list-item .post-meta{width:120px;display:flex;flex-direction:column;gap:.2em;font-size:.8em;color:#666}.post-list-item .post-date{font-weight:600;color:#333;font-size:1em}.post-list-item .post-category{background:#f0f0f0;padding:.3em .6em;border-radius:4px;font-size:.8em;text-align:center;width:fit-content}.post-list-item .featured-badge{background:#ff6b35;color:#fff;padding:.3em .6em;border-radius:4px;font-size:.8em;font-weight:600;text-align:center;width:fit-content}.post-list-item .post-content{flex:1;display:flex;flex-direction:column;gap:.2em}.post-list-item .post-header{display:flex;align-items:flex-start;gap:1em;flex-wrap:wrap}.post-list-item .post-title{margin:0;font-size:1.4em;line-height:1.3;flex-shrink:0}.post-list-item .post-title a{text-decoration:none;color:#333}.post-list-item .post-title a:hover{color:#007bff}.post-list-item .post-summary{color:#666;line-height:1.5;margin:.1em 0 0 0}.post-list-item .post-taxonomy{display:flex;flex-wrap:wrap;gap:.5em;align-items:center}.post-list-item .post-author{color:#555;font-size:.8em;font-weight:500}.post-list-item .post-taxonomy .category{background:#e3f2fd;color:#1565c0;padding:.3em .6em;border-radius:4px;font-size:.8em;font-weight:500;border:1px solid #bbdefb}.post-list-item .post-taxonomy .category.clickable{cursor:pointer;transition:all .2s ease}.post-list-item .post-taxonomy .category.clickable:hover{background:#bbdefb;transform:translateY(-1px);box-shadow:0 2px 4px rgba(21,101,192,.2)}.post-list-item .post-taxonomy .tag{background:#f1f8e9;border:1px solid #c8e6c9;color:#2e7d32;padding:.3em .6em;border-radius:4px;font-size:.8em;transition:background-color .2s}.post-list-item .post-taxonomy .tag.clickable{cursor:pointer;transition:all .2s ease}.post-list-item .post-taxonomy .tag:hover,.post-list-item .post-taxonomy .tag.clickable:hover{background:#dcedc8;transform:translateY(-1px);box-shadow:0 2px 4px rgba(46,125,50,.2)}@media (max-width: 768px){.post-list-item{flex-direction:column;gap:1em}.post-list-item .post-image-section{flex-direction:row;align-items:flex-start;gap:1em}.post-list-item .post-image{width:80px;height:60px}.post-list-item .post-meta{width:auto;flex:1;justify-content:center}.post-list-item .post-header{flex-direction:column;gap:.5em}.post-list-item .post-taxonomy{margin-top:.5em}}.header-right nav{float:right;margin-top:3em;margin-right:1em;vertical-align:bottom;border-bottom:1px solid var(--accent-1)}.header-right nav span{margin-top:3em;margin-left:1em;vertical-align:bottom;color:var(--accent-1)}.header-right nav a{margin-right:1em;text-decoration-line:none}.not-found{width:80%;margin:0 auto;padding:2em 1em}.not-found-content{display:flex;align-items:center;gap:3em;max-width:1200px;margin:0 auto}.not-found-image{flex-shrink:0}.not-found-image img{max-width:300px;width:100%;height:auto;border-radius:8px}.not-found-text{flex:4}.not-found-text h1{font-size:2.5em;margin:0 0 .5em 0;color:#333;line-height:1.2}.not-found-text p{font-size:1.4em;color:#666;line-height:1.6;margin:0}@media (max-width: 768px){.not-found-content{flex-direction:column;text-align:center;gap:2em}.not-found-image img{max-width:250px}.not-found-text h1{font-size:2em}.not-found-text p{font-size:1.2em}}.online-places{display:flex;flex-direction:row;gap:1.5em;align-items:center;flex-wrap:wrap;margin:1em 0}.online-place{display:flex;align-items:center;justify-content:center}.online-place a{display:flex;align-items:center;justify-content:center;transition:transform .2s ease,opacity .2s ease;text-decoration:none;position:relative}.online-place a:hover{transform:scale(1.25);opacity:.8}.online-place a:hover::after{content:attr(title);position:absolute;top:-35px;left:50%;transform:translateX(-50%);background-color:#e53e3e;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:1000;pointer-events:none}.online-place a:hover::before{content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);border:4px solid rgba(0,0,0,0);border-top-color:#e53e3e;z-index:1000;pointer-events:none}.certifications{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0;justify-content:flex-start}.certification-badge{display:flex;align-items:center;justify-content:center}.certification-badge .certification-link{display:block;text-decoration:none;transition:transform .2s ease,filter .2s ease}.certification-badge .certification-link:hover{transform:scale(1.05);filter:brightness(1.1)}.certification-badge .certification-link img{display:block;max-width:100%;height:auto;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.certification-badge .certification-link img:hover{box-shadow:0 4px 16px rgba(0,0,0,.15)}.certification-link{width:100%;height:100%}.technologies{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0;align-items:center}.technology-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;cursor:pointer;position:relative}.technology-icon svg{width:100%;height:100%;transition:fill .2s ease}.technology-icon:hover{transform:scale(1.3)}.technology-icon.languages svg{fill:#a8c8ec}.technology-icon.languages:hover svg{fill:#4a90e2}.technology-icon.tools svg{fill:#c8a8ec}.technology-icon.tools:hover svg{fill:#8e4ae2}.technology-icon:hover::after{content:attr(title);position:absolute;top:-35px;left:50%;transform:translateX(-50%);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:1000;pointer-events:none}.technology-icon:hover::before{content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);border:4px solid rgba(0,0,0,0);z-index:1000;pointer-events:none}.technology-icon.languages:hover::after{background-color:#4a90e2}.technology-icon.languages:hover::before{border-top-color:#4a90e2}.technology-icon.tools:hover::after{background-color:#8e4ae2}.technology-icon.tools:hover::before{border-top-color:#8e4ae2}.online-place svg{width:3em;height:3em;display:block;pointer-events:none;fill:#f5a3a3;transition:fill .2s ease}.online-place a:hover svg{fill:#e53e3e}.page{width:100%;max-width:100%}.page.loading{text-align:center;padding:2rem;color:var(--text-muted)}.page.error{text-align:center;padding:2rem;color:var(--error-color, #e74c3c);background-color:var(--error-bg, #ffeaea);border-radius:8px;margin:1rem 0}.page .markdown-content{margin-bottom:2rem;text-align:left !important}.page .markdown-content *{text-align:left !important}.page .page-children{margin-top:2rem}.about-page,.home-page,.blog-page{width:100%;padding:1rem;text-align:left !important}.home-page .markdown-content,.blog-page .markdown-content{margin-bottom:2rem}.home-page .page-children,.blog-page .page-children{margin-top:1rem}table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.9rem}table th,table td{border:1px solid #ddd;padding:8px 12px;text-align:left}table th{background-color:#f5f5f5;font-weight:600;color:#333}table tr:nth-child(even){background-color:#f9f9f9}table tr:hover{background-color:#f0f0f0}@media (max-width: 768px){table{font-size:.8rem}table th,table td{padding:6px 8px}}.page-stats{margin-top:1rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#6c757d;line-height:1}.stats-loading,.stats-error,.stats-placeholder{color:#6c757d;font-style:italic;font-size:.9rem}.stat-item{color:#6c757d;font-size:.9rem}.stat-separator{color:#adb5bd}.like-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:.25rem;cursor:pointer;border-radius:4px;transition:all .2s ease}.like-button:hover{background:#f8f9fa;transform:scale(1.1)}.like-button:active{background:#e9ecef;transform:scale(.95)}.thumbs-up-svg{width:16px;height:16px;color:#6c757d;transition:color .2s ease}.like-button:hover .thumbs-up-svg{color:#495057}@media (max-width: 768px){.page-stats{flex-wrap:wrap;gap:.25rem}.stat-separator{display:none}}.image-thumbnail{border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .3s ease}.image-thumbnail:hover{transform:scale(1.05);box-shadow:0 4px 16px rgba(0,0,0,.2)}.image-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);overflow-y:auto}.image-modal.open{display:flex;align-items:flex-start;justify-content:center;padding:20px 0}.image-modal-content{position:relative;max-width:90vw;max-height:none;margin:auto;background:rgba(0,0,0,0);border-radius:0;overflow:visible;min-height:fit-content}.image-modal-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:4px;box-shadow:0 4px 20px rgba(0,0,0,.5)}.image-modal-close{position:absolute;top:10px;right:15px;background:rgba(0,0,0,.7);color:#fff;border:none;font-size:28px;font-weight:bold;cursor:pointer;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.image-modal-close:hover{background:rgba(0,0,0,.9)}