:root{--primary-color:#2563eb;--text-color:#1f2937;--background-color:#fff;--footer-bg:#f3f4f6;--max-width:1200px;--header-height:80px}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-color);flex-direction:column;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;display:flex}.container{width:92%;max-width:var(--max-width);margin:0 auto;padding:0 1rem}header{background:var(--background-color);z-index:1000;width:100%;position:fixed;top:0;box-shadow:0 1px 3px rgba(0,0,0,.1)}.header-content{height:var(--header-height);justify-content:space-between;align-items:center;gap:2rem;display:flex}.logo{flex-shrink:0;width:auto;height:40px}.main-nav{position:relative}.nav-list{align-items:center;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav-item{position:relative}.nav-item a{color:var(--text-color);padding:.5rem 0;font-size:1rem;font-weight:500;text-decoration:none;transition:color .2s;display:block}.nav-item a:hover{color:var(--primary-color)}.has-submenu{position:relative}.submenu{z-index:100;background:#fff;border-radius:4px;min-width:200px;padding:.5rem 0;list-style:none;display:none;position:absolute;top:100%;left:0;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.has-submenu:hover .submenu{display:block}.submenu li a{padding:.5rem 1rem;font-size:.95rem}.submenu li a:hover{background:#f3f4f6}.mobile-menu-button{cursor:pointer;background:0 0;border:none;padding:.5rem;display:none}.footer-grid{grid-template-columns:repeat(4,1fr);gap:2rem;margin-bottom:1.5rem;display:grid}@media (max-width:768px){.footer-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}.footer-section h3{color:var(--text-color);margin-bottom:.75rem;font-size:1rem;font-weight:600}.footer-section ul{padding:0;list-style:none}.footer-section ul li{margin-bottom:.4rem}.footer-section ul li a{color:#4b5563;font-size:.9rem;text-decoration:none;transition:color .2s}.footer-section ul li a:hover{color:var(--primary-color)}.footer-logo{margin-bottom:1rem}.footer-description{color:#4b5563;max-width:280px;font-size:.9rem}.copyright{color:#6b7280;margin-top:1rem;font-size:.85rem}.page{margin-top:var(--header-height);padding:2rem 0}.page-container{max-width:800px;margin:0 auto}.page-header{text-align:center;margin-bottom:2rem}.page-title{color:var(--text-color);margin-bottom:1rem;font-size:2.5rem;font-weight:700}.page-meta{color:#6b7280;font-size:.9rem}.page-date{display:inline-block}.page-content{font-size:1.1rem;line-height:1.7}blockquote{border-left:4px solid var(--primary-color);color:#4a5568;background-color:#f8fafc;border-radius:.375rem;margin:2rem 0;padding:1.5rem 2rem;font-style:italic;box-shadow:0 1px 3px rgba(0,0,0,.1)}blockquote p{margin:0;line-height:1.75}blockquote cite{color:#64748b;margin-top:1rem;font-size:.875rem;font-style:normal;display:block}main{margin-top:var(--header-height);flex:1;padding:2rem 0}.page-content{width:92%;max-width:800px;margin:0 auto;padding:2rem 0}.page-title{color:var(--text-color);margin:0 0 1.5rem;font-size:2.5rem;font-weight:700;line-height:1.2}.page-body{font-size:1.125rem}.page-body p{margin-bottom:1.5rem}.page-body strong{font-weight:600}.post-container{max-width:800px;margin:0 auto;padding:2rem 0}.post-header{text-align:center;margin-bottom:2rem}.post-title{color:var(--text-color);margin-bottom:1rem;font-size:2.75rem;font-weight:800;line-height:1.2}.post-meta{color:#666;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;font-size:.95rem;display:flex}.post-cover-image{width:100%;margin:2rem 0}.post-cover-image img{object-fit:cover;border-radius:8px;width:100%;height:auto;max-height:600px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.post-tags{color:var(--primary-color);flex-wrap:wrap;gap:.5rem;display:flex}.tag a{color:#fff;text-decoration:none}.tag{background-color:var(--primary-color);border-radius:9999px;padding:.25rem .75rem;font-size:.875rem;text-decoration:none;transition:opacity .2s;display:inline-block}.tag:hover{opacity:.9}.reading-time{align-items:center;gap:.375rem;display:flex}.reading-time svg{color:#666}.post-content{font-size:1.125rem;line-height:1.8}.post-content table,.page-content table{border-collapse:collapse;border-radius:8px;width:100%;margin:2rem 0;font-size:.95em;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.05)}.post-content th,.page-content th{text-align:left;color:#1f2937;background:#f8f9fa;border-bottom:2px solid #e5e7eb;padding:1rem;font-weight:600}.post-content td,.page-content td{color:#4b5563;border-bottom:1px solid #e5e7eb;padding:1rem}.post-content tr:last-child td,.page-content tr:last-child td{border-bottom:none}.post-content tr:nth-child(2n),.page-content tr:nth-child(2n){background:#f9fafb}.post-content ul,.post-content ol{margin:1rem 0;padding-left:1.5rem}.post-content ul{list-style-type:none}.post-content ul li{margin-bottom:.4rem;padding-left:1.5rem;line-height:1.5;position:relative}.post-content ul li:before{content:"•";color:var(--primary-color);font-size:1.2em;font-weight:700;position:absolute;top:-.1em;left:0}.post-content ol{counter-reset:item;list-style-type:none}.post-content ol li{counter-increment:item;margin-bottom:.4rem;padding-left:2rem;line-height:1.5;position:relative}.post-content ol li:before{content:counter(item)".";color:var(--primary-color);text-align:right;width:1.5rem;font-weight:600;position:absolute;left:0}.post-content ul ul,.post-content ol ol,.post-content ul ol,.post-content ol ul{margin:.4rem 0}.post-content>*+*{margin-top:1.5rem}.post-content p{margin-bottom:1.5rem}.post-content li p{margin:0}.post-content h2{margin-top:3rem;margin-bottom:1.5rem;font-size:1.875rem;font-weight:700}.post-content h3{margin-top:2.5rem;margin-bottom:1rem;font-size:1.5rem;font-weight:600}.post-content img,.page-content img{border-radius:.5rem;max-width:100%;height:auto;margin:2rem auto;display:block;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.post-content pre{background:#f8f9fa;border-radius:.5rem;padding:1.5rem;overflow-x:auto}.post-content code{background:#f8f9fa;border-radius:.25rem;padding:.2em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.95em}.post-content pre code{background:0 0;padding:0}.post-footer{border-top:1px solid #e5e7eb;margin-top:4rem;padding-top:2rem}.author-bio{align-items:center;gap:1.5rem;display:flex}.author-avatar{object-fit:cover;border-radius:9999px;width:60px;height:60px}.author-info{flex:1}.author-name{margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.author-description{color:#666;margin-bottom:.75rem;font-size:.95rem}.author-social{gap:1rem;display:flex}.author-social a{color:var(--primary-color);font-size:.875rem;text-decoration:none}.related-posts{background:#f9fafb;margin-top:4rem;padding:4rem 0}.related-posts h2{text-align:center;margin-bottom:2rem;font-size:2rem;font-weight:700}.related-posts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;display:grid}.related-post{background:#fff;border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1)}.related-post h3{margin-bottom:.75rem;font-size:1.25rem;font-weight:600}.related-post h3 a{color:var(--text-color);text-decoration:none}.related-post h3 a:hover{color:var(--primary-color)}.related-post p{color:#666;font-size:.95rem;line-height:1.5}@media (max-width:768px){.post-title{font-size:2rem}.post-meta{flex-direction:column;gap:.75rem}.author-bio{text-align:center;flex-direction:column}.author-social{justify-content:center}.related-posts{padding:3rem 0}.related-posts h2{font-size:1.75rem}}.post-card-tags{flex-wrap:wrap;margin-top:1rem;display:flex}.post-card-tag{background:var(--primary-color);color:#fff;border-radius:9999px;align-items:center;margin-bottom:.5rem;margin-right:.5rem;padding:.25rem .75rem;font-size:.875rem;text-decoration:none;transition:opacity .2s;display:inline-flex}.post-card-tag:hover{opacity:.9}.content-with-sidebar{grid-template-columns:1fr 300px;gap:2rem;padding:2rem 0;display:grid}.posts-grid{gap:2rem;padding:0;display:grid}.post-card-link{color:inherit;text-decoration:none;transition:transform .2s;display:block}.post-card-link:hover{transform:translateY(-2px)}.featured-posts{background:var(--footer-bg);border-radius:8px;padding:1.5rem}.featured-posts h2{color:var(--text-color);margin-bottom:1rem;font-size:1.25rem}.featured-post-card{grid-template-columns:80px 1fr;gap:1rem;margin-bottom:1rem;display:grid}.featured-post-card:last-child{margin-bottom:0}.featured-post-thumbnail-link{border-radius:4px;width:80px;height:80px;display:block;overflow:hidden}.featured-post-thumbnail{object-fit:cover;width:100%;height:100%;transition:transform .2s}.featured-post-thumbnail:hover{transform:scale(1.05)}.featured-post-title{margin:0;font-size:1rem;line-height:1.4}.featured-post-title a{color:var(--text-color);text-decoration:none}.featured-post-title a:hover{color:var(--primary-color)}@media (max-width:768px){.content-with-sidebar{grid-template-columns:1fr}}@media (min-width:768px){.posts-grid{grid-template-columns:repeat(2,1fr)}}.post-card{flex-direction:column;display:flex}.post-card-content{flex-direction:column;flex-grow:1;display:flex}.post-card-title{margin-bottom:1rem}.post-card-meta{margin-top:auto;padding-top:1rem}@media (min-width:1024px){.posts-grid{grid-template-columns:repeat(3,1fr)}}.post-card{background:var(--background-color);border-radius:.5rem;transition:transform .2s,box-shadow .2s;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.post-card:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.post-card-image{object-fit:cover;width:100%;height:200px}.post-card-content{flex-direction:column;flex-grow:1;padding:1.5rem;display:flex}.post-card-title{color:var(--text-color);margin-bottom:.75rem;font-size:1.25rem;font-weight:600;line-height:1.4}.post-card-title a{color:inherit;text-decoration:none;transition:color .2s}.post-card-title a:hover{color:var(--primary-color)}.post-card-description{color:#4b5563;margin-bottom:1rem;font-size:.95rem}.post-card-meta{color:#6b7280;align-items:center;font-size:.875rem;display:flex}.post-card-tags{flex-wrap:wrap;gap:.5rem;display:flex}.post-card-tag{border-radius:9999px;padding:.25rem .75rem;font-size:.75rem}.post-card-tag a{color:#fff;text-decoration:none}footer{background:var(--footer-bg);margin-top:auto;padding:2rem 0}.footer-content{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;display:flex}.footer-logo{width:auto;height:30px}.footer-description{max-width:600px;margin:0 auto;font-size:.95rem}.copyright{color:#666;font-size:.875rem}@media (min-width:768px){.footer-content{text-align:left;flex-direction:row;justify-content:space-between}.footer-left{flex:1}.footer-description{margin:1rem 0}}#search{align-items:center;height:100%;display:flex;position:relative}.pagefind-ui__drawer{z-index:2000;z-index:2000;background:#fff;border-radius:8px;max-width:640px;margin-top:.5rem;padding:1.25rem 1.5rem 1.5rem;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 32px rgba(0,0,0,.18),0 1.5px 4px rgba(0,0,0,.08)}.pagefind-ui__results{background:0 0}.pagefind-ui__result{background:#f8fafc;border-radius:6px;margin-bottom:.75rem;padding:.75rem 1rem;transition:background .15s;box-shadow:0 1px 3px rgba(0,0,0,.05)}.pagefind-ui__result:hover{background:#e0e7ef}.pagefind-ui__search-input{background:#fff;border:1px solid #d1d5db;border-radius:6px;width:100%;margin-bottom:1.25rem;padding:.5rem 1rem;font-size:1rem;box-shadow:0 1px 2px rgba(0,0,0,.03)}.pagefind-ui__search-clear{color:#888}.pagefind-ui__result-title a{color:var(--primary-color);font-weight:600;text-decoration:none}.pagefind-ui__result-title a:hover{text-decoration:underline}.pagefind-ui__drawer{border:1px solid #e5e7eb}@media (max-width:600px){.pagefind-ui__drawer{max-width:98vw;padding:1rem .5rem;left:1vw;right:1vw}}@media (max-width:768px){.mobile-menu-button{display:block}.main-nav{top:var(--header-height);background:#fff;padding:1rem;display:none;position:absolute;left:0;right:0;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.main-nav.is-active{display:block}.nav-list{flex-direction:column;align-items:stretch}.submenu{box-shadow:none;padding-left:1rem;position:static}.has-submenu:hover .submenu{display:none}.has-submenu.is-active .submenu{display:block}}