@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:#fff;--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 #0000000a;--shadow-md:0 2px 8px -2px #00000014}.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{color:var(--blog-text-primary);letter-spacing:-.03em;font-weight:700}.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}.blog-link:hover{color:var(--blog-primary-light)}.blog-badge{color:var(--blog-text-secondary);font-size:.8125rem;font-weight:500;transition:color .15s}.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;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);border-radius:var(--radius);width:100%;padding:.625rem 1rem;font-size:.9375rem;transition:border-color .15s}.blog-input:focus{border-color:var(--blog-primary);outline:none}.blog-input::placeholder{color:var(--blog-text-muted)}.prose{max-width:none;color:var(--blog-text-primary)}.prose p{color:var(--blog-text-secondary);margin:.875rem 0;font-size:.9375rem;line-height:1.75}@media (width>=768px){.prose p{margin:1.25rem 0;font-size:1rem}}.prose h1{color:var(--blog-text-primary);letter-spacing:-.025em;margin:1.75rem 0 .75rem;font-size:clamp(2rem,5vw,2.5rem);font-weight:800;line-height:1.2}.prose h2{color:var(--blog-text-primary);letter-spacing:-.02em;border-bottom:1px solid var(--blog-border-light);margin:1.75rem 0 .75rem;padding-bottom:.5rem;font-size:clamp(1.375rem,3.5vw,1.5rem);font-weight:700;line-height:1.3}.prose h3{color:var(--blog-text-primary);letter-spacing:-.015em;margin:1.5rem 0 .5rem;font-size:clamp(1.125rem,2.5vw,1.25rem);font-weight:600;line-height:1.4}.prose h4{color:var(--blog-text-primary);margin:1.25rem 0 .5rem;font-size:1rem;font-weight:600;line-height:1.4}@media (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{color:var(--blog-text-primary);margin:1.25rem 0 .5rem;font-size:.9375rem;font-weight:600;line-height:1.4}.prose h6{color:var(--blog-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:1rem 0 .5rem;font-size:.8125rem;font-weight:600;line-height:1.4}.prose strong{color:var(--blog-text-primary);font-weight:600}.prose em{color:var(--blog-text-secondary);font-style:italic}.prose ul,.prose ol{margin:.875rem 0;padding-left:1.5rem}@media (width>=768px){.prose ul,.prose ol{margin:1.25rem 0}}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{color:var(--blog-text-secondary);margin:.5rem 0;font-size:.9375rem;line-height:1.75}@media (width>=768px){.prose li{font-size:1rem}}.prose li::marker{color:var(--blog-text-muted)}.prose a{color:var(--blog-primary);text-decoration:underline;-webkit-text-decoration-color:var(--blog-primary-light);text-decoration-color:var(--blog-primary-light);text-underline-offset:3px;overflow-wrap:anywhere;word-break:break-word;text-decoration-thickness:1px;transition:text-decoration-color .15s}.prose a:hover{-webkit-text-decoration-color:var(--blog-primary);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);color:var(--blog-text-muted);margin:1rem 0;padding:.75rem 1.25rem;font-style:italic}@media (width>=768px){.prose blockquote{margin:1.5rem 0}}.prose blockquote p{color:var(--blog-text-muted);margin:.5rem 0}.prose hr{background:var(--blog-border-light);border:none;height:1px;margin:1.5rem 0}@media (width>=768px){.prose hr{margin:2.5rem 0}}.prose table{border-collapse:collapse;border:1px solid var(--blog-border);border-radius:var(--radius);width:100%;margin:1rem 0;overflow:hidden}.prose th{background:var(--blog-surface);color:var(--blog-text-primary);text-align:left;border-bottom:1px solid var(--blog-border);padding:.75rem 1rem;font-weight:600}.prose td{border-bottom:1px solid var(--blog-border-light);color:var(--blog-text-secondary);padding:.75rem 1rem}.prose tr:last-child td{border-bottom:none}.prose code:not(pre code){background:var(--blog-surface);color:var(--blog-text-primary);font-size:.8125rem;font-family:var(--font-mono);border:1px solid var(--blog-border-light);border-radius:.25rem;padding:.125rem .375rem;font-weight:500}.prose input[type=checkbox]{appearance:none;border:2px solid var(--blog-border);background:var(--blog-bg);vertical-align:middle;cursor:pointer;border-radius:.25rem;width:1rem;height:1rem;margin-top:-3px;margin-right:.2rem;transition:all .15s;position:relative}.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:"✓";color:#fff;font-size:.75rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.prose li:has(input[type=checkbox]){margin-left:-1.5rem;padding-left:0;list-style:none}.prose ul:has(li input[type=checkbox]){padding-left:1.5rem}.dark .prose blockquote{border-left-color:var(--blog-border)}.prose pre{background:#0d1117;border:1px solid #30363d;border-radius:.625rem;margin:1rem 0;padding:0;position:relative;overflow:auto hidden;box-shadow:0 2px 8px -2px #00000040}.prose pre code{min-width:100%;font-family:var(--font-mono);tab-size:2;counter-reset:none;white-space:pre;color:#e6edf3;box-sizing:border-box;padding:.875rem 0;font-size:.875rem;line-height:1.7;display:inline-block}.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{min-height:1.7em;padding:0 2.5rem 0 3.75rem;line-height:1.7;display:block;position:relative}.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{text-align:right;color:#484f58;-webkit-user-select:none;user-select:none;pointer-events:none;width:3.25rem;font-size:inherit;font-family:var(--font-mono);line-height:inherit;box-sizing:border-box;padding-right:.75rem;position:absolute;top:0;left:0}.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:0 0}.prose pre::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.prose pre::-webkit-scrollbar-thumb:hover{background:#ffffff40}@media (width<=640px){.prose pre{border-left:none;border-right:none;border-radius:0;margin-left:-.75rem;margin-right:-.75rem}.prose pre code{padding:.625rem 0;font-size:.8125rem}.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 (width>=641px) and (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 (width>=768px){.prose pre{margin:1.5rem 0}}.blog-divider{background:var(--blog-border-light);border:none;height:1px;margin:2rem 0}.blog-fade-in{animation:.4s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.blog-scrollbar::-webkit-scrollbar{width:4px;height:4px}.blog-scrollbar::-webkit-scrollbar-track{background:0 0}.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{transition:box-shadow .3s,transform .3s;box-shadow:0 4px 16px -4px #00000026}.blog-hero-card:hover{box-shadow:0 8px 30px -6px #00000040}.blog-grid-card{box-shadow:var(--shadow-sm);transition:box-shadow .3s,transform .3s}.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{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}
