:root{--color-bg: #ffffff;--color-text: #333333;--color-border: #dddddd;--color-text-muted: #666666;--color-hover-bg: #f5f5f5;--color-accent: #cc9900;--color-accent-hover: #b8860b;--color-nav-a: #333333;--hint-tip-bg: #fef9e7;--hint-tip-border: #e6c466;--hint-tip-text: #997700;--hint-warning-bg: #fff5f5;--hint-warning-border: #fc8181;--hint-warning-text: #c53030;--hint-info-bg: #f7fafc;--hint-info-border: #63b3ed;--hint-info-text: #2b6cb0;--hint-important-bg: #faf5ff;--hint-important-border: #b794f6;--hint-important-text: #805ad5;--hint-note-bg: #fafafa;--hint-note-border: #a0a0a0;--hint-note-text: #666666}[data-theme=dark]{--color-bg: #1a1a1a;--color-text: #e8e6d3;--color-border: #333333;--color-text-muted: #a8a595;--color-hover-bg: #2a2a2a;--color-accent: #ffcc33;--color-accent-hover: #ffd700;--color-nav-a: #e8e6d3;--hint-tip-bg: #2b2416;--hint-tip-border: #e6c466;--hint-tip-text: #f7e98e;--hint-warning-bg: #2d1b1b;--hint-warning-border: #fc8181;--hint-warning-text: #fed7d7;--hint-info-bg: #1a252f;--hint-info-border: #63b3ed;--hint-info-text: #bee3f8;--hint-important-bg: #251a2e;--hint-important-border: #b794f6;--hint-important-text: #e9d8fd;--hint-note-bg: #232323;--hint-note-border: #999999;--hint-note-text: #cccccc}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/PTSans-Regular.woff2") format("woff2")}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/PTSans-Bold.woff2") format("woff2")}@font-face{font-family:"PT Sans";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/PTSans-Italic.woff2") format("woff2")}@font-face{font-family:"PT Sans";font-style:italic;font-weight:700;font-display:swap;src:url("/fonts/PTSans-BoldItalic.woff2") format("woff2")}@font-face{font-family:"Source Code Pro";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/SourceCodePro-Regular.woff2") format("woff2")}@font-face{font-family:"Source Code Pro";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/SourceCodePro-Italic.woff2") format("woff2")}html,body{height:auto;min-height:100%}body{display:flex;flex-direction:column;min-height:100vh}main{flex:1}.search-container input{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:1rem;padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);width:180px;max-width:100%;height:40px;box-sizing:border-box}.search-container input:focus{outline:none;border-color:var(--color-accent)}.search-container input::placeholder{color:var(--color-text-muted)}.theme-toggle{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--color-text);box-sizing:border-box;flex-shrink:0}.theme-toggle:hover{background:var(--color-hover-bg)}.theme-toggle img{width:24px;height:24px}.search-results{margin-bottom:2rem}.search-results h2{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-weight:700;color:var(--color-text);margin-bottom:1.5rem}.search-results__list{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;list-style:none;padding:0}.search-results__list li{margin-bottom:1rem}.search-results__list a{color:var(--color-accent);text-decoration:none}.search-results__list a:hover{color:var(--color-accent-hover);text-decoration:underline}footer{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;border-top:1px solid var(--color-border);padding:1.5rem;color:var(--color-text-muted);margin-top:auto}.footer-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.footer-links a{color:var(--color-text-muted);text-decoration:none;font-size:.9rem;transition:color .2s ease}.footer-links a:hover{color:var(--color-accent);text-decoration:none}.footer-feeds-and-copyright{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.footer-content p{margin:0;font-size:.85rem;text-align:center}.footer-feeds{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}footer .feed-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--color-text-muted) !important;text-decoration:none;font-size:.85rem;transition:color .2s ease}footer .feed-link:hover{color:var(--color-accent) !important;text-decoration:none}footer .feed-link svg{width:16px;height:16px;flex-shrink:0}.feed-separator{color:var(--color-text-muted);font-size:.85rem;margin:0 .25rem}.copyright{color:var(--color-text-muted);font-size:.85rem}footer{margin-top:2rem;position:relative}@media (max-width: 768px){.footer-links{gap:1rem}.footer-links a{font-size:.85rem}.footer-feeds-and-copyright{gap:.375rem}footer .feed-link{font-size:.8rem}.feed-separator{font-size:.8rem;margin:0 .125rem}.copyright{font-size:.8rem}}@media (max-width: 480px){footer{padding:1rem}.footer-content{gap:.375rem}.footer-links{gap:.75rem}.footer-links a{font-size:.8rem}.footer-content p{font-size:.8rem}.footer-feeds-and-copyright{gap:.25rem}footer .feed-link{font-size:.75rem}footer .feed-link svg{width:14px;height:14px}.feed-separator{font-size:.75rem;margin:0 .125rem}.copyright{font-size:.75rem}}body.homepage{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:1.2rem;line-height:1.6rem;color:var(--color-text)}body.homepage h1,body.homepage h2,body.homepage h3,body.homepage h4,body.homepage h5,body.homepage h6{font-weight:700}body.homepage a{color:var(--color-accent);text-decoration:none}body.homepage a:hover{color:var(--color-accent-hover);text-decoration:underline}body.homepage hr{margin:1.5rem 0;border:none;height:1px;background-color:var(--color-border)}body.homepage ul,body.homepage ol{margin-bottom:1.5rem;padding-left:2rem}body.homepage blockquote{border-left:3px solid var(--color-border);padding-left:1.5rem;margin:1.5rem 0;color:var(--color-text-muted)}body.homepage p{margin-bottom:1.5rem}body.homepage h2,body.homepage h3,body.homepage h4{margin:2rem 0 1.5rem 0}body.homepage .tag{display:inline-block;padding:.3rem .8rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:.95rem;line-height:1.3;color:var(--color-text);background:var(--color-bg)}body.homepage .tag:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.homepage .tag.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.homepage .tag.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.homepage .series{display:block;width:100%;padding:.4rem 1rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:1rem;line-height:1.4;color:var(--color-text);background:var(--color-bg);text-align:left;box-sizing:border-box}body.homepage .series:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.homepage .series.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.homepage .series.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.homepage .nav-button a{display:block;padding:.4rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;transition:all .2s ease;width:100%;text-align:center;font-size:.85rem;line-height:1.3;white-space:normal;word-wrap:break-word}body.homepage .nav-button a:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}body.homepage .series-navigation h3 a{color:var(--color-accent);text-decoration:none}body.homepage .series-navigation h3 a:hover{color:var(--color-accent-hover);text-decoration:underline}body.homepage .post-meta{color:var(--color-text-muted);font-size:.95rem}body.homepage .homepage{max-width:1200px;margin:0 auto;padding:2rem;overflow-x:visible;word-wrap:break-word}body.homepage .hero-ksp{border-left:4px solid var(--color-accent);padding-left:1.5rem;padding-top:1.5rem;padding-bottom:1.5rem;text-align:left}body.homepage .hero-ksp p{color:var(--color-text);line-height:1rem}body.homepage .hero-ksp p:last-child{margin-bottom:0}body.homepage .projects-showcase{margin:2rem 0;overflow-x:visible}body.homepage .project-row{display:flex;gap:2rem;margin-bottom:2rem;align-items:center;padding:1.5rem}body.homepage .project-row.reverse{flex-direction:row-reverse}body.homepage .project-image{flex:0 0 40%}body.homepage .project-image img{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}@media (min-width: 769px) and (max-width: 1024px){body.homepage .project-row .project-image{margin-left:-1.5rem}body.homepage .project-row.reverse .project-image{margin-left:0;margin-right:-1.5rem}}@media (min-width: 1200px){body.homepage html.homepage-overflow-visible,body.homepage body.homepage.homepage-overflow-visible,body.homepage body.homepage main.homepage-overflow-visible,body.homepage body.homepage .content.homepage-overflow-visible{overflow-x:visible !important}body.homepage .homepage,body.homepage main,body.homepage .content{overflow-x:visible !important}body.homepage .project-row .project-image{margin-left:-6rem}body.homepage .project-row.reverse .project-image{margin-left:0;margin-right:-6rem}}body.homepage .project-content{flex:1}body.homepage .project-content h3{margin:0 0 1rem 0;font-size:1.4rem}body.homepage .project-content h3 a{color:var(--color-text);text-decoration:none}body.homepage .project-content h3 a:hover{color:var(--color-accent)}body.homepage .project-content p{margin:0;line-height:1.6}body.homepage .homepage h1{margin-bottom:1.5rem}body.homepage .homepage h2{margin-top:2rem;margin-bottom:1.5rem}@media (max-width: 768px){body.homepage .homepage{padding:1.5rem 1rem}body.homepage .project-row{flex-direction:column !important;gap:1.5rem;padding:1.5rem .5rem}body.homepage .project-row.reverse{flex-direction:column !important}body.homepage .project-image{flex:none;margin-left:0 !important;margin-right:0 !important}body.homepage .homepage h1{font-size:1.8rem}body.homepage .homepage h2{font-size:1.2rem;margin-top:1.5rem}body.homepage .hero-ksp p{line-height:1.4rem}}@media (max-width: 480px){body.homepage .homepage{padding:1rem .4rem}body.homepage .project-content h3{font-size:1.25rem}body.homepage .homepage h1{font-size:1.6rem}body.homepage .homepage h2{font-size:1.3rem}}body.blog{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:1.2rem;line-height:1.6rem;color:var(--color-text)}body.blog h1,body.blog h2,body.blog h3,body.blog h4,body.blog h5,body.blog h6{font-weight:700}body.blog a{color:var(--color-accent);text-decoration:none}body.blog a:hover{color:var(--color-accent-hover);text-decoration:underline}body.blog hr{margin:1.5rem 0;border:none;height:1px;background-color:var(--color-border)}body.blog ul,body.blog ol{margin-bottom:1.5rem;padding-left:2rem}body.blog blockquote{border-left:3px solid var(--color-border);padding-left:1.5rem;margin:1.5rem 0;color:var(--color-text-muted)}body.blog p{margin-bottom:1.5rem}body.blog h2,body.blog h3,body.blog h4{margin:2rem 0 1.5rem 0}body.blog .tag{display:inline-block;padding:.3rem .8rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:.95rem;line-height:1.3;color:var(--color-text);background:var(--color-bg)}body.blog .tag:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.blog .tag.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.blog .tag.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.blog .series{display:block;width:100%;padding:.4rem 1rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:1rem;line-height:1.4;color:var(--color-text);background:var(--color-bg);text-align:left;box-sizing:border-box}body.blog .series:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.blog .series.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.blog .series.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.blog .nav-button a{display:block;padding:.4rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;transition:all .2s ease;width:100%;text-align:center;font-size:.85rem;line-height:1.3;white-space:normal;word-wrap:break-word}body.blog .nav-button a:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}body.blog .series-navigation h3 a{color:var(--color-accent);text-decoration:none}body.blog .series-navigation h3 a:hover{color:var(--color-accent-hover);text-decoration:underline}body.blog .post-meta{color:var(--color-text-muted);font-size:.95rem}body.blog body{max-width:100vw;overflow-x:hidden}body.blog .blog-layout{display:grid;grid-template-columns:250px 1fr;gap:2rem;width:100%;max-width:calc(1200px - 2rem);margin:0 auto;padding:0 1rem;box-sizing:border-box}body.blog .blog-sidebar{width:250px;overflow-wrap:break-word}body.blog .sidebar-section{margin-bottom:2rem}body.blog .sidebar-section h3{margin-bottom:1rem}body.blog .tag-list{display:flex;flex-wrap:wrap;gap:.5rem}body.blog .series-list{display:flex;flex-direction:column;gap:.6rem}body.blog .blog-posts{min-width:0;overflow-wrap:break-word;overflow-x:hidden;word-break:break-word;hyphens:auto;display:flex;flex-direction:column;min-height:0}body.blog .blog-posts h1{font-size:2rem;margin-bottom:2rem;margin-top:0}body.blog .blog-posts-content{flex:1}body.blog .blog-posts-pagination{margin-top:auto;padding-top:2rem}body.blog .blog-post{max-width:800px}body.blog .post-header{margin-bottom:2rem;padding-bottom:1.5rem}body.blog .post-header h1{margin-bottom:1rem}body.blog .post-content{line-height:1.6rem}body.blog .post-content h2,body.blog .post-content h3,body.blog .post-content h4{padding-top:1.5rem}body.blog .post-tags{margin-bottom:2rem;padding-bottom:1.5rem}body.blog .post-tags span{margin-right:1rem}body.blog .series-navigation{margin-top:2rem;padding-top:2rem}body.blog .series-navigation h3{margin-bottom:1.5rem}body.blog .series-nav-buttons{display:flex;justify-content:space-between;margin-bottom:1.5rem;gap:1.5rem;width:100%}body.blog .nav-button{flex:0 0 40%;max-width:40%}body.blog .nav-button.next{margin-left:auto}body.blog .post-preview{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}body.blog .post-preview:last-of-type{border-bottom:none}body.blog .post-preview h2{margin-bottom:.5rem}body.blog .post-meta{margin-bottom:1rem}body.blog .post-series{color:var(--color-text);font-weight:400;font-size:.9rem;margin-bottom:.5rem}body.blog .post-series a{color:var(--color-accent);text-decoration:none}body.blog .post-series a:hover{color:var(--color-accent-hover);text-decoration:underline}body.blog .post-preview p{color:var(--color-text-muted);line-height:1.6rem;overflow-wrap:break-word;word-break:break-word;hyphens:auto}body.blog .pagination{margin-top:0;padding-top:1.5rem}body.blog .pagination-info{text-align:center;margin-bottom:1.5rem;color:var(--color-text-muted);font-size:.9rem}body.blog .pagination-count{margin-left:.5rem;opacity:.8}body.blog .pagination-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem}body.blog .pagination-numbers{display:flex;align-items:center;gap:.5rem}body.blog .pagination-btn{display:inline-flex;align-items:center;padding:.5rem 1rem;color:var(--color-accent);text-decoration:none;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);font-size:.9rem;transition:all .2s ease;min-width:80px;justify-content:center}body.blog .pagination-btn:hover:not(.disabled){color:var(--color-accent-hover);background:var(--color-hover-bg);border-color:var(--color-accent)}body.blog .pagination-btn.disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.6}body.blog .pagination-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-accent);text-decoration:none;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);font-size:.9rem;transition:all .2s ease}body.blog .pagination-number:hover{color:var(--color-accent-hover);background:var(--color-hover-bg);border-color:var(--color-accent)}body.blog .pagination-number.current{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent);font-weight:600}body.blog .pagination-ellipsis{color:var(--color-text-muted);padding:0 .5rem}@media (max-width: 768px){body.blog .blog-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:1.5rem;padding:0 1rem;max-width:calc(100vw - 2rem)}body.blog .blog-sidebar{width:100%;order:2;margin-top:2rem;padding-top:2rem}body.blog .blog-posts{order:1}body.blog .sidebar-section{margin-bottom:1.5rem}body.blog .tag-list{gap:.35rem}body.blog .tag,body.blog .series{font-size:.85rem;padding:.25rem .8rem}body.blog .pagination-controls{flex-direction:column;gap:1rem}body.blog .pagination-numbers{order:2;justify-content:center;flex-wrap:wrap}body.blog .pagination-btn{min-width:60px;font-size:.85rem}body.blog .pagination-number{width:28px;height:28px;font-size:.85rem}}@media (max-width: 480px){body.blog .blog-layout{padding:0 .5rem;max-width:calc(100vw - 1rem)}body.blog .blog-posts h1{font-size:1.6rem}body.blog .post-preview h2{font-size:1.3rem}body.blog .tag,body.blog .series{font-size:.8rem;padding:.2rem .6rem}body.blog .pagination-btn{min-width:50px;font-size:.8rem;padding:.35rem .7rem}body.blog .pagination-number{width:26px;height:26px;font-size:.8rem}}body.post{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:1.2rem;line-height:1.6rem;color:var(--color-text)}body.post h1,body.post h2,body.post h3,body.post h4,body.post h5,body.post h6{font-weight:700}body.post a{color:var(--color-accent);text-decoration:none}body.post a:hover{color:var(--color-accent-hover);text-decoration:underline}body.post hr{margin:1.5rem 0;border:none;height:1px;background-color:var(--color-border)}body.post ul,body.post ol{margin-bottom:1.5rem;padding-left:2rem}body.post blockquote{border-left:3px solid var(--color-border);padding-left:1.5rem;margin:1.5rem 0;color:var(--color-text-muted)}body.post p{margin-bottom:1.5rem}body.post h2,body.post h3,body.post h4{margin:2rem 0 1.5rem 0}body.post .tag{display:inline-block;padding:.3rem .8rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:.95rem;line-height:1.3;color:var(--color-text);background:var(--color-bg)}body.post .tag:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.post .tag.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.post .tag.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.post .series{display:block;width:100%;padding:.4rem 1rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:1rem;line-height:1.4;color:var(--color-text);background:var(--color-bg);text-align:left;box-sizing:border-box}body.post .series:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.post .series.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.post .series.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.post .nav-button a{display:block;padding:.4rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;transition:all .2s ease;width:100%;text-align:center;font-size:.85rem;line-height:1.3;white-space:normal;word-wrap:break-word}body.post .nav-button a:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}body.post .series-navigation h3 a{color:var(--color-accent);text-decoration:none}body.post .series-navigation h3 a:hover{color:var(--color-accent-hover);text-decoration:underline}body.post .post-meta{color:var(--color-text-muted);font-size:.95rem}body.post .blog-post{max-width:800px;margin:0 auto;padding:0 1rem;word-wrap:break-word;overflow-wrap:break-word}body.post .post-header{padding-bottom:1.5rem}body.post .post-hero{margin:0 -6rem 2rem -6rem}body.post .post-hero img{width:100%;height:300px;object-fit:cover;display:block}body.post .post-header h1{margin-bottom:1rem;word-wrap:break-word}body.post .post-content{line-height:1.6rem;border-top:1px solid var(--color-border);padding-top:1.5rem;overflow-x:auto}body.post .post-content img{max-width:100%;height:auto;display:block;margin:1.5rem auto}body.post .post-content h2,body.post .post-content h3,body.post .post-content h4{padding-top:1.5rem;word-wrap:break-word}body.post .post-tags{padding-bottom:1.5rem}body.post .post-tags span{margin-right:1rem}body.post .post-tags .tag{margin-right:.25rem;margin-bottom:.25rem}body.post .series-navigation{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-border)}body.post .series-navigation h3{margin-bottom:1.5rem;text-align:center;word-wrap:break-word}body.post .series-nav-buttons{display:flex;justify-content:space-between;margin-bottom:1.5rem;gap:1.5rem;width:100%}body.post .series-nav-buttons a{color:var(--color-text)}body.post .nav-button{flex:0 0 40%;max-width:40%}body.post .nav-button.next{margin-left:auto}@media (max-width: 768px){body.post .blog-post{padding:0 .5rem}body.post .post-hero{width:100vw;margin:0 0 2rem 0;position:relative;left:50%;transform:translateX(-50%)}body.post .post-hero img{height:200px}body.post .series-nav-buttons{flex-direction:column;gap:1rem}body.post .nav-button{flex:1;max-width:100%}body.post .nav-button.next{margin-left:0}body.post .post-header h1{font-size:1.6rem}body.post .post-content{font-size:1.1rem}body.post .post-tags .tag{font-size:.85rem;padding:.25rem .5rem}}body.post .hint-container{position:relative;margin:1.5rem 0;padding:1rem 1.5rem;border-radius:6px;border-left:4px solid;word-wrap:break-word;overflow-wrap:break-word}body.post .hint-container-title{font-weight:700;margin-bottom:.5rem;font-size:.95rem}body.post .hint-content{margin:0}body.post .hint-content p:last-child{margin-bottom:0}body.post .hint-container.tip{background-color:var(--hint-tip-bg);border-left-color:var(--hint-tip-border);color:var(--color-text)}body.post .hint-container.warning{background-color:var(--hint-warning-bg);border-left-color:var(--hint-warning-border);color:var(--color-text)}body.post .hint-container.info{background-color:var(--hint-info-bg);border-left-color:var(--hint-info-border);color:var(--color-text)}body.post .hint-container.important{background-color:var(--hint-important-bg);border-left-color:var(--hint-important-border);color:var(--color-text)}body.post .hint-container.note{background-color:var(--hint-note-bg);border-left-color:var(--hint-note-border);color:var(--color-text)}@media (max-width: 480px){body.post .blog-post{padding:0 .25rem}body.post .post-hero img{height:150px}body.post .post-header h1{font-size:1.4rem}body.post .post-content{font-size:1rem}body.post .series-navigation h3{font-size:1.2rem}body.post .hint-container{padding:.75rem 1rem;margin:1rem 0}body.post .hint-container-title{font-size:.9rem}}body.default{font-family:"PT Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:1.2rem;line-height:1.6rem;color:var(--color-text)}body.default h1,body.default h2,body.default h3,body.default h4,body.default h5,body.default h6{font-weight:700}body.default a{color:var(--color-accent);text-decoration:none}body.default a:hover{color:var(--color-accent-hover);text-decoration:underline}body.default hr{margin:1.5rem 0;border:none;height:1px;background-color:var(--color-border)}body.default ul,body.default ol{margin-bottom:1.5rem;padding-left:2rem}body.default blockquote{border-left:3px solid var(--color-border);padding-left:1.5rem;margin:1.5rem 0;color:var(--color-text-muted)}body.default p{margin-bottom:1.5rem}body.default h2,body.default h3,body.default h4{margin:2rem 0 1.5rem 0}body.default .tag{display:inline-block;padding:.3rem .8rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:.95rem;line-height:1.3;color:var(--color-text);background:var(--color-bg)}body.default .tag:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.default .tag.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.default .tag.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.default .series{display:block;width:100%;padding:.4rem 1rem;text-decoration:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s ease;font-size:1rem;line-height:1.4;color:var(--color-text);background:var(--color-bg);text-align:left;box-sizing:border-box}body.default .series:hover{background:var(--color-hover-bg);color:var(--color-accent);text-decoration:none;border-color:var(--color-accent)}body.default .series.active{background:var(--color-hover-bg);color:var(--color-text);border-color:var(--color-text-muted)}body.default .series.active:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent)}body.default .nav-button a{display:block;padding:.4rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;transition:all .2s ease;width:100%;text-align:center;font-size:.85rem;line-height:1.3;white-space:normal;word-wrap:break-word}body.default .nav-button a:hover{background:var(--color-hover-bg);color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}body.default .series-navigation h3 a{color:var(--color-accent);text-decoration:none}body.default .series-navigation h3 a:hover{color:var(--color-accent-hover);text-decoration:underline}body.default .post-meta{color:var(--color-text-muted);font-size:.95rem}@media (max-width: 768px){*{max-width:100%;overflow-wrap:break-word;word-wrap:break-word}pre,code{overflow-x:auto;max-width:calc(100vw - 2rem)}img{max-width:100%;height:auto}table{overflow-x:auto;display:block;white-space:nowrap}}@media (max-width: 480px){pre,code{max-width:calc(100vw - 1rem);font-size:.85em}}