@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--blog-primary: #2563eb;--blog-primary-light: #3b82f6;--blog-secondary: #64748b;--blog-bg: #ffffff;--blog-surface: #f8fafc;--blog-border: #e2e8f0;--blog-border-light: #f1f5f9;--blog-text-primary: #1a1a1a;--blog-text-secondary: #4a4a4a;--blog-text-muted: #8a8a8a;--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius: .5rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .04);--shadow-md: 0 2px 8px -2px rgb(0 0 0 / .08)}.dark{--blog-primary: #3b82f6;--blog-primary-light: #60a5fa;--blog-secondary: #94a3b8;--blog-bg: #0f172a;--blog-surface: #1e293b;--blog-border: #334155;--blog-border-light: #475569;--blog-text-primary: #f1f1f1;--blog-text-secondary: #b0b0b0;--blog-text-muted: #707070}.blog-container{background:var(--blog-bg);color:var(--blog-text-primary);min-height:100vh;font-family:var(--font-sans);line-height:1.7}.blog-heading{font-weight:700;color:var(--blog-text-primary);letter-spacing:-.03em}.blog-heading-xl{font-size:clamp(2rem,5vw,2.75rem);line-height:1.15}.blog-heading-lg{font-size:clamp(1.75rem,4vw,2.25rem);line-height:1.2}.blog-heading-md{font-size:clamp(1.25rem,3vw,1.5rem);line-height:1.3}.blog-heading-sm{font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.4}.blog-text-primary{color:var(--blog-text-primary)}.blog-text-secondary{color:var(--blog-text-secondary)}.blog-text-muted{color:var(--blog-text-muted)}.blog-link{color:var(--blog-primary);text-decoration:none;transition:color .15s ease}.blog-link:hover{color:var(--blog-primary-light)}.blog-badge{color:var(--blog-text-secondary);font-size:.8125rem;font-weight:500;transition:color .15s ease}.blog-badge:hover{color:var(--blog-primary)}.blog-badge-secondary{color:var(--blog-text-muted);font-size:.8125rem}.blog-card{background:var(--blog-bg);border-bottom:1px solid var(--blog-border-light);transition:background-color .15s ease;overflow:hidden}.blog-card:hover{background:var(--blog-surface)}.blog-input{background:var(--blog-surface);border:1px solid var(--blog-border);color:var(--blog-text-primary);font-family:var(--font-sans);padding:.625rem 1rem;border-radius:var(--radius);font-size:.9375rem;transition:border-color .15s ease;width:100%}.blog-input:focus{outline:none;border-color:var(--blog-primary)}.blog-input::placeholder{color:var(--blog-text-muted)}.prose{max-width:none;color:var(--blog-text-primary)}.prose p{margin:.875rem 0;color:var(--blog-text-secondary);line-height:1.75;font-size:.9375rem}@media(min-width:768px){.prose p{margin:1.25rem 0;font-size:1rem}}.prose h1{font-size:clamp(2rem,5vw,2.5rem);line-height:1.2;font-weight:800;margin:1.75rem 0 .75rem;color:var(--blog-text-primary);letter-spacing:-.025em}.prose h2{font-size:clamp(1.375rem,3.5vw,1.5rem);line-height:1.3;font-weight:700;margin:1.75rem 0 .75rem;color:var(--blog-text-primary);letter-spacing:-.02em;padding-bottom:.5rem;border-bottom:1px solid var(--blog-border-light)}.prose h3{font-size:clamp(1.125rem,2.5vw,1.25rem);line-height:1.4;font-weight:600;margin:1.5rem 0 .5rem;color:var(--blog-text-primary);letter-spacing:-.015em}.prose h4{font-size:1rem;line-height:1.4;font-weight:600;margin:1.25rem 0 .5rem;color:var(--blog-text-primary)}@media(min-width:768px){.prose h1,.prose h2{margin:2.5rem 0 1rem}.prose h3{margin:2rem 0 .75rem}.prose h4{margin:1.5rem 0 .5rem}}.prose h5{font-size:.9375rem;line-height:1.4;font-weight:600;margin:1.25rem 0 .5rem;color:var(--blog-text-primary)}.prose h6{font-size:.8125rem;line-height:1.4;font-weight:600;margin:1rem 0 .5rem;color:var(--blog-text-secondary);text-transform:uppercase;letter-spacing:.05em}.prose strong{font-weight:600;color:var(--blog-text-primary)}.prose em{font-style:italic;color:var(--blog-text-secondary)}.prose ul,.prose ol{margin:.875rem 0;padding-left:1.5rem}@media(min-width:768px){.prose ul,.prose ol{margin:1.25rem 0}}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin:.5rem 0;line-height:1.75;color:var(--blog-text-secondary);font-size:.9375rem}@media(min-width:768px){.prose li{font-size:1rem}}.prose li::marker{color:var(--blog-text-muted)}.prose a{color:var(--blog-primary);text-decoration:underline;text-decoration-color:var(--blog-primary-light);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .15s ease;overflow-wrap:anywhere;word-break:break-word}.prose a:hover{text-decoration-color:var(--blog-primary)}.prose h1 a,.prose h2 a,.prose h3 a,.prose h4 a,.prose h5 a,.prose h6 a{color:inherit;text-decoration:none;transition:none}.prose h1 a:hover,.prose h2 a:hover,.prose h3 a:hover,.prose h4 a:hover,.prose h5 a:hover,.prose h6 a:hover{color:inherit}.prose blockquote{border-left:3px solid var(--blog-border);padding:.75rem 1.25rem;color:var(--blog-text-muted);margin:1rem 0;font-style:italic}@media(min-width:768px){.prose blockquote{margin:1.5rem 0}}.prose blockquote p{margin:.5rem 0;color:var(--blog-text-muted)}.prose hr{border:none;height:1px;background:var(--blog-border-light);margin:1.5rem 0}@media(min-width:768px){.prose hr{margin:2.5rem 0}}.prose table{width:100%;margin:1rem 0;border-collapse:collapse;border:1px solid var(--blog-border);border-radius:var(--radius);overflow:hidden}.prose th{background:var(--blog-surface);color:var(--blog-text-primary);font-weight:600;padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--blog-border)}.prose td{padding:.75rem 1rem;border-bottom:1px solid var(--blog-border-light);color:var(--blog-text-secondary)}.prose tr:last-child td{border-bottom:none}.prose code:not(pre code){background:var(--blog-surface);color:var(--blog-text-primary);padding:.125rem .375rem;border-radius:.25rem;font-size:.8125rem;font-family:var(--font-mono);border:1px solid var(--blog-border-light);font-weight:500}.prose input[type=checkbox]{appearance:none;-webkit-appearance:none;width:1rem;height:1rem;border:2px solid var(--blog-border);border-radius:.25rem;background:var(--blog-bg);margin-right:.2rem;margin-top:-3px;vertical-align:middle;position:relative;cursor:pointer;transition:all .15s ease}.prose input[type=checkbox]:hover{border-color:var(--blog-primary)}.prose input[type=checkbox]:checked{background:var(--blog-primary);border-color:var(--blog-primary)}.prose input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:.75rem;font-weight:700}.prose li:has(input[type=checkbox]){list-style:none;margin-left:-1.5rem;padding-left:0}.prose ul:has(li input[type=checkbox]){padding-left:1.5rem}.dark .prose blockquote{border-left-color:var(--blog-border)}.prose pre{position:relative;background:#0d1117;border:1px solid #30363d;border-radius:.625rem;margin:1rem 0;padding:0;overflow-x:auto;overflow-y:hidden;box-shadow:0 2px 8px -2px #00000040}.prose pre code{display:inline-block;min-width:100%;padding:.875rem 0;font-family:var(--font-mono);font-size:.875rem;line-height:1.7;tab-size:2;counter-reset:none;white-space:pre;color:#e6edf3;box-sizing:border-box}.prose pre code,.prose pre code *{font-family:var(--font-mono);white-space:pre}.prose pre code>span:before,.prose pre code .line:before{content:none!important;display:none!important}.prose pre code:before{display:none!important}.prose pre code>span.line{display:block;position:relative;padding:0 2.5rem 0 3.75rem;min-height:1.7em;line-height:1.7}.prose pre code>span.line[data-empty-line=true]{min-height:1.7em}.prose pre code>span.line>.ln,.prose pre code span.line .ln{position:absolute;left:0;top:0;width:3.25rem;text-align:right;padding-right:.75rem;color:#484f58;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:inherit;font-family:var(--font-mono);line-height:inherit;box-sizing:border-box}.prose pre code span[style*=--shiki-dark]{color:var(--shiki-dark)!important}.prose pre:not([data-code-block]) code{color:#e6edf3;padding:.875rem 1.25rem}.prose pre:not([data-code-block]) code span:not([style]){color:#e6edf3}.prose pre::-webkit-scrollbar{height:6px}.prose pre::-webkit-scrollbar-track{background:transparent}.prose pre::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.prose pre::-webkit-scrollbar-thumb:hover{background:#ffffff40}@media(max-width:640px){.prose pre{margin-left:-.75rem;margin-right:-.75rem;border-radius:0;border-left:none;border-right:none}.prose pre code{font-size:.8125rem;padding:.625rem 0}.prose pre code>span.line{padding-left:3.25rem;padding-right:2rem}.prose pre code>span.line>.ln,.prose pre code span.line .ln{width:2.75rem;padding-right:.5rem}}@media(min-width:641px)and (max-width:768px){.prose pre code{font-size:.8125rem}.prose pre code>span.line{padding-left:3.5rem}.prose pre code>span.line>.ln,.prose pre code span.line .ln{width:3rem}}@media(min-width:768px){.prose pre{margin:1.5rem 0}}.blog-divider{border:none;height:1px;background:var(--blog-border-light);margin:2rem 0}.blog-fade-in{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.blog-scrollbar::-webkit-scrollbar{width:4px;height:4px}.blog-scrollbar::-webkit-scrollbar-track{background:transparent}.blog-scrollbar::-webkit-scrollbar-thumb{background:var(--blog-border);border-radius:2px}.blog-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--blog-text-muted)}.blog-card-grid{container-type:inline-size}.blog-hero-card{box-shadow:0 4px 16px -4px #00000026;transition:box-shadow .3s ease,transform .3s ease}.blog-hero-card:hover{box-shadow:0 8px 30px -6px #00000040}.blog-grid-card{box-shadow:var(--shadow-sm);transition:box-shadow .3s ease,transform .3s ease}.blog-grid-card:hover{box-shadow:0 8px 24px -8px #00000026}.dark .blog-grid-card{border-color:var(--blog-border)}.dark .blog-grid-card:hover{box-shadow:0 8px 24px -8px #0006}.dark .blog-hero-card:hover{box-shadow:0 8px 30px -6px #00000080}.blog-category-badge{letter-spacing:.02em;text-transform:capitalize}.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
