*{margin:0;padding:0;box-sizing:border-box}html{font-family:Atkinson Hyperlegible Mono,Courier New,monospace;font-size:16px;line-height:1.65}body{background:#fafaf8;min-height:100vh;color:#2a2a2a}main{margin-top:60px;min-height:calc(100vh - 60px);padding:3rem 0}.blog-post{max-width:700px;margin:0 auto;background:#fafaf8;padding:0 2rem}.post-header{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid #e4e4e4;position:relative}.series-link{display:flex;align-items:center;gap:.5rem;color:#6a6a6a;text-decoration:none;font-size:.85rem;padding:.5rem .75rem;border:1px solid #d4d4d4;transition:all .2s ease;position:absolute;top:50%;transform:translateY(-50%)}.series-link.prev{right:calc(100% + 2rem)}.series-link.next{left:calc(100% + 2rem)}.series-link:hover{color:#2a2a2a;border-color:#2a2a2a}.series-arrow{font-size:1rem}.series-label{font-weight:500}.post-breadcrumb{display:inline-block;margin-bottom:1rem;font-size:.85rem;color:#6a6a6a;text-decoration:none;transition:color .2s ease}.post-breadcrumb:hover{color:#2a2a2a}.post-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.post-meta time{color:#6a6a6a;font-size:.85rem;font-weight:500}.post-title{font-size:2rem;font-weight:600;color:#2a2a2a;line-height:1.3;margin-bottom:1rem;letter-spacing:-.02em}.post-description{font-size:.95rem;color:#6a6a6a;line-height:1.7}.post-content{font-size:.95rem;line-height:1.75;color:#2a2a2a}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin-top:2.5rem;margin-bottom:1rem;font-weight:600;color:#2a2a2a;line-height:1.3;letter-spacing:-.01em;scroll-margin-top:80px}.post-content h1{font-size:1.75rem;border-bottom:1px solid #e4e4e4;padding-bottom:.5rem}.post-content h2{font-size:1.5rem}.post-content h3{font-size:1.25rem}.post-content p{margin-bottom:1.5rem}.post-content a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid #2a2a2a;transition:all .2s ease}.post-content a:hover{border-bottom-color:#6a6a6a;color:#6a6a6a}.post-content ul,.post-content ol{margin-bottom:1.5rem;padding-left:2rem}.post-content li{margin-bottom:.75rem;line-height:1.7}.post-content li ul,.post-content li ol{margin-top:.75rem;margin-bottom:0}.post-content code{background:#f0f0f0;color:#2a2a2a;padding:.2rem .5rem;font-family:Atkinson Hyperlegible Mono,Courier New,monospace;font-size:.9em;font-weight:500}.post-content pre{background:#2a2a2a;color:#fafaf8;padding:1.5rem;overflow-x:auto;margin-bottom:1.5rem;border:1px solid #4a4a4a}.post-content pre code{background:transparent;color:inherit;padding:0;font-size:.9rem;line-height:1.6}.post-content blockquote{border-left:3px solid #2a2a2a;padding-left:1.5rem;margin:1.5rem 0;color:#4a4a4a;font-style:italic}.post-content img{max-width:100%;height:auto;margin:2rem 0;border:1px solid #e4e4e4}.post-content strong{font-weight:600;color:#2a2a2a}.post-content em{font-style:italic}.post-content hr{border:none;border-top:1px solid #e4e4e4;margin:3rem 0}.post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;border:1px solid #d4d4d4}.post-content th,.post-content td{border:1px solid #d4d4d4;padding:.75rem 1rem;text-align:left}.post-content th{background:#f0f0f0;font-weight:600}.post-content tr:nth-child(2n){background:#f8f8f6}.post-footer-nav{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid #e4e4e4;font-size:.85rem}.post-footer-link{color:#6a6a6a;text-decoration:none;border-left:3px solid #a9b4cd;padding-left:.75rem;max-width:45%;transition:color .2s ease,border-color .2s ease}.post-footer-link:hover{color:#2a2a2a;border-left-color:#5372aa}.post-footer-link.index{margin-left:auto;border-left:none;border-bottom:1px solid #d4d4d4;padding-left:0}@media (max-width: 768px){main{padding:2rem 0}.post-footer-nav{flex-direction:column;align-items:flex-start}.post-footer-link{max-width:100%}.post-footer-link.index{margin-left:0}.blog-post{padding:0 1rem}.series-link{display:none}.post-title{font-size:1.75rem}.post-description,.post-content{font-size:.9rem}.post-content h1{font-size:1.5rem}.post-content h2{font-size:1.25rem}.post-content h3{font-size:1.1rem}.post-content pre{padding:1rem;font-size:.85rem}}
