#reading-progress-wrapper{position:fixed;left:0;width:100%;height:3px;background:#00000014;z-index:9999;pointer-events:none}#reading-progress{width:0%;height:100%;background:#00000040;transition:width .1s linear}.view-counter[data-astro-cid-e75zxctz]{display:inline-flex;align-items:center;gap:.25rem;color:rgb(var(--gray));font-size:1em}.toc[data-astro-cid-xvrfupwn]{position:fixed;left:2rem;top:8rem;width:250px;max-height:calc(100vh - 12rem);overflow-y:auto;padding:1.5rem;background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(var(--gray-light),.3);border-radius:12px;box-shadow:0 2px 8px #0000000d;transition:all .3s ease;z-index:10}.dark .toc[data-astro-cid-xvrfupwn]{background:#1f2937b3;border-color:rgba(var(--gray-light),.2)}.toc-title[data-astro-cid-xvrfupwn]{margin:0 0 1rem;font-size:1.1rem;font-weight:700;color:rgb(var(--gray-dark));border-bottom:2px solid rgb(var(--accent));padding-bottom:.5rem}.toc-list[data-astro-cid-xvrfupwn]{list-style:none;padding:0;margin:0}.toc-list[data-astro-cid-xvrfupwn] li{margin:0;line-height:1.4}.toc-list[data-astro-cid-xvrfupwn] a{display:block;color:rgb(var(--gray));text-decoration:none;font-size:.9rem;transition:all .2s ease;border-left:3px solid transparent;padding:.5rem 0 .5rem .75rem}.toc-list[data-astro-cid-xvrfupwn] a:hover{color:rgb(var(--accent));padding-left:1rem}.toc-list[data-astro-cid-xvrfupwn] a.active{color:rgb(var(--accent));font-weight:600;border-left-color:rgb(var(--accent));background:rgba(var(--accent),.05);padding-left:1rem}.toc-list[data-astro-cid-xvrfupwn] .toc-h2{padding-left:.75rem}.toc-list[data-astro-cid-xvrfupwn] .toc-h3{padding-left:1.5rem;font-size:.85rem}.toc-list[data-astro-cid-xvrfupwn] .toc-h4{padding-left:2.25rem;font-size:.8rem}.toc-list[data-astro-cid-xvrfupwn] .active.toc-h2{padding-left:1rem}.toc-list[data-astro-cid-xvrfupwn] .active.toc-h3{padding-left:1.75rem}.toc-list[data-astro-cid-xvrfupwn] .active.toc-h4{padding-left:2.5rem}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar{width:6px}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar-track{background:rgba(var(--gray-light),.3);border-radius:3px}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar-thumb{background:rgb(var(--gray));border-radius:3px}.toc[data-astro-cid-xvrfupwn]::-webkit-scrollbar-thumb:hover{background:rgb(var(--accent))}@media(max-width:1200px){.toc[data-astro-cid-xvrfupwn]{display:none}}main{width:calc(100% - 2em);max-width:100%;margin:0}.hero-image{width:100%}.hero-image img{display:block;margin:0 auto;border-radius:12px;box-shadow:var(--box-shadow)}.prose{width:720px;max-width:calc(100% - 2em);margin:auto;padding:1em;color:rgb(var(--gray-dark))}.prose img{display:block;margin:1.5em auto;max-width:100%;height:auto;border-radius:8px;box-shadow:0 2px 8px #0000001a}.title{margin-bottom:1em;padding:1em 0;text-align:center;line-height:1}.title h1{margin:0 0 .5em}.date{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5em;margin-bottom:.5em;color:rgb(var(--gray))}.last-updated-on{font-style:italic}.date-separator{color:rgb(var(--gray-light))}.related-posts{width:720px;max-width:calc(100% - 2em);margin:2em auto;padding:2em 1em;border-top:1px solid rgb(var(--gray-light))}.related-posts h2{font-size:1.5em;margin-bottom:1.5em;color:rgb(var(--gray-dark));text-align:left}.related-posts ul{list-style:none;padding:0;display:grid;gap:1.5em}.related-posts li{border:1px solid rgb(var(--gray-light));border-radius:12px;overflow:hidden;transition:all .3s ease;background:var(--bg-card)}.related-posts li:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px);border-color:rgb(var(--accent))}.related-post-card{display:flex;gap:1em;padding:1em;text-decoration:none;color:inherit}.related-post-image{flex-shrink:0;width:120px;height:120px;border-radius:8px;overflow:hidden;background:rgb(var(--gray-light))}.related-post-image img{width:100%;height:100%;object-fit:cover}.related-post-content{flex:1;display:flex;flex-direction:column;justify-content:center}.related-post-title{font-size:1.1em;font-weight:600;color:rgb(var(--gray-dark));margin-bottom:.5em;transition:color .2s ease}.related-post-card:hover .related-post-title{color:rgb(var(--accent))}.related-post-date{font-size:.9em;color:rgb(var(--gray))}@media(max-width:640px){.related-post-card{flex-direction:column}.related-post-image{width:100%;height:160px}}.code-container{position:relative;margin:1.5rem 0;border:1px solid rgb(var(--gray-light));border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease,border-color .3s ease}.code-container:hover{box-shadow:0 4px 16px #00000026;border-color:rgb(var(--accent))}.code-container pre{background:rgb(var(--gray-dark));border-radius:0;padding:1.5rem;margin:0;overflow-x:auto;font-size:.9rem;line-height:1.6;border:none;box-shadow:none}.code-container code{background:none;padding:0;font-family:Fira Code,Monaco,Consolas,monospace}.code-toolbar{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;gap:.5rem;opacity:0;transform:translateY(-5px);transition:all .3s ease;z-index:10}.code-container:hover .code-toolbar{opacity:1;transform:translateY(0)}.code-lang{font-size:.875rem;font-weight:500;color:#fffc;text-transform:uppercase;letter-spacing:.05em}.btn-copy{display:flex;align-items:center;justify-content:center;background:#000000b3;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.5rem;color:#fff;cursor:pointer;transition:all .2s ease}.btn-copy:hover{background:#fff3;border-color:#fff6;transform:scale(1.05)}.btn-copy:active{transform:scale(.95)}.btn-copy:focus{outline:2px solid rgb(var(--accent));outline-offset:2px}.icon-copy,.icon-check{display:block;transition:all .2s ease}.icon-check{color:#10b981}.hidden{opacity:0;transform:scale(.8)}.code-container pre::-webkit-scrollbar{height:6px}.code-container pre::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.code-container pre::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.code-container pre::-webkit-scrollbar-thumb:hover{background:rgb(var(--accent))}@keyframes copySuccess{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.btn-copy.copied{animation:copySuccess .3s ease}@media(max-width:640px){.code-container{margin:1rem 0}.code-container pre{padding:1rem;font-size:.85rem}.code-toolbar{top:.5rem;right:.5rem}.code-lang{font-size:.8rem}.btn-copy{padding:.375rem}.icon-copy,.icon-check{width:16px;height:16px}}
