html{font-family:Inter,system-ui,sans-serif;scroll-behavior:smooth}body{margin:0;padding:0;transition:background-color .3s ease,color .3s ease}.dark{color-scheme:dark}.brutal-shadow{box-shadow:8px 8px #000}.brutal-shadow-sm{box-shadow:4px 4px #000}.brutal-shadow-lg{box-shadow:12px 12px #000}.brutal-border{border:4px solid black;border-radius:18px}.brutal-border-sm{border:2px solid black;border-radius:10px}.brutal-hover:hover{transform:translateY(-2px);box-shadow:4px 4px #000}.dark .brutal-border,.dark .brutal-border-sm{border-color:#fff}.dark .brutal-shadow{box-shadow:8px 8px #fff}.dark .brutal-shadow-sm{box-shadow:4px 4px #fff}.dark .brutal-shadow-lg{box-shadow:12px 12px #fff}.dark .brutal-hover:hover{box-shadow:4px 4px #fff}.blog-main h1,.blog-main h2,.blog-main h3,.blog-main h4,.blog-main h5{line-height:1;font-weight:700;margin-top:2.5rem;margin-bottom:1.2rem;color:#591449;text-shadow:none}.dark .blog-main h1,.dark .blog-main h2,.dark .blog-main h3,.dark .blog-main h4,.dark .blog-main h5{color:#f9fafb}.blog-main h1{font-size:3rem;margin-top:0;margin-bottom:2rem;font-weight:900}.blog-main h2{font-size:2.25rem;font-weight:900}.blog-main h3{font-size:1.75rem;font-weight:800}.blog-main h4{font-size:1.25rem;font-weight:600}.blog-main h5{font-size:1.1rem;font-weight:600}.blog-main p{font-size:1.15rem;line-height:1.7;margin:1.2rem 0;color:#374151}.dark .blog-main p{color:#d1d5db}.blog-main ul,.blog-main ol{margin:1.5rem 0 1.5rem 2rem;font-size:1.1rem;color:#374151}.dark .blog-main ul,.dark .blog-main ol{color:#d1d5db}.blog-main li{margin-bottom:.5rem;list-style-type:disc}.blog-main blockquote{background:transparent;border-left:6px solid #6b7280;padding:1.5rem 2rem;font-size:1.25rem;font-style:italic;margin:2rem 0;box-shadow:none;font-weight:400;border-radius:0;color:#374151;font-family:Inter,system-ui,sans-serif}.dark .blog-main blockquote{background:transparent;color:#d1d5db;border-left-color:#9ca3af;box-shadow:none}.blog-main code:not(pre code){background:#f1f5f9;color:#dc2626;border:2px solid #1f2937;border-radius:.25rem;padding:.2em .4em;font-size:.9em;font-family:Fira Code,Fira Mono,Consolas,Menlo,monospace;font-weight:500;box-shadow:2px 2px #1f2937}.dark .blog-main code:not(pre code){background:#374151;color:#fca5a5;border-color:#f9fafb;box-shadow:2px 2px #f9fafb}.blog-main pre{background:#f8fafc;color:#1f2937;border:3px solid #1f2937;border-radius:.5rem;padding:1.5rem;box-shadow:6px 6px #1f2937;overflow-x:auto;margin:2.5rem 0;position:relative;font-family:Fira Code,Fira Mono,Consolas,Menlo,monospace;font-size:.95rem;line-height:1.6}.dark .blog-main pre{background:#1f2937;border-color:#f9fafb;box-shadow:6px 6px #f9fafb;color:#e5e7eb}.blog-main pre code{background:transparent;color:inherit;border:none;border-radius:0;padding:0;font-size:inherit;font-family:inherit;font-weight:400;box-shadow:none}.blog-main .token.comment,.blog-main .token.prolog,.blog-main .token.doctype,.blog-main .token.cdata{color:#6b7280;font-style:italic}.blog-main .token.punctuation{color:#374151}.dark .blog-main .token.punctuation{color:#9ca3af}.blog-main .token.namespace{opacity:.7}.blog-main .token.property,.blog-main .token.tag,.blog-main .token.boolean,.blog-main .token.number,.blog-main .token.constant,.blog-main .token.symbol,.blog-main .token.deleted{color:#059669}.dark .blog-main .token.property,.dark .blog-main .token.tag,.dark .blog-main .token.boolean,.dark .blog-main .token.number,.dark .blog-main .token.constant,.dark .blog-main .token.symbol,.dark .blog-main .token.deleted{color:#34d399}.blog-main .token.selector,.blog-main .token.attr-name,.blog-main .token.string,.blog-main .token.char,.blog-main .token.builtin,.blog-main .token.inserted{color:#dc2626}.dark .blog-main .token.selector,.dark .blog-main .token.attr-name,.dark .blog-main .token.string,.dark .blog-main .token.char,.dark .blog-main .token.builtin,.dark .blog-main .token.inserted{color:#fca5a5}.blog-main .token.operator,.blog-main .token.entity,.blog-main .token.url,.blog-main .language-css .token.string,.blog-main .style .token.string{color:#7c3aed}.dark .blog-main .token.operator,.dark .blog-main .token.entity,.dark .blog-main .token.url,.dark .blog-main .language-css .token.string,.dark .blog-main .style .token.string{color:#c4b5fd}.blog-main .token.atrule,.blog-main .token.attr-value,.blog-main .token.keyword{color:#1d4ed8}.dark .blog-main .token.atrule,.dark .blog-main .token.attr-value,.dark .blog-main .token.keyword{color:#93c5fd}.blog-main .token.function,.blog-main .token.class-name{color:#dc2626}.dark .blog-main .token.function,.dark .blog-main .token.class-name{color:#fca5a5}.blog-main .token.regex,.blog-main .token.important,.blog-main .token.variable{color:#059669}.dark .blog-main .token.regex,.dark .blog-main .token.important,.dark .blog-main .token.variable{color:#34d399}.blog-main .token.important,.blog-main .token.bold{font-weight:700}.blog-main .token.italic{font-style:italic}.blog-main .token.entity{cursor:help}.blog-main pre::-webkit-scrollbar{height:8px}.blog-main pre::-webkit-scrollbar-track{background:#e5e7eb;border-radius:4px}.dark .blog-main pre::-webkit-scrollbar-track{background:#374151}.blog-main pre::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:4px;border:1px solid #e5e7eb}.dark .blog-main pre::-webkit-scrollbar-thumb{background:#6b7280;border-color:#374151}.blog-main pre::-webkit-scrollbar-thumb:hover{background:#6b7280}.dark .blog-main pre::-webkit-scrollbar-thumb:hover{background:#9ca3af}.blog-main strong{color:#1f2937;font-weight:700}.dark .blog-main strong{color:#f9fafb}.blog-main sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline;top:-.5em}.blog-main sup a{color:#374151;text-decoration:none;font-weight:500;padding:.8em .4em;border-radius:.375rem;background:#f8f9fa;border:1px solid #e5e7eb;transition:all .2s ease;display:inline-block;font-size:.9em;min-width:1.2em;text-align:center}.blog-main sup a:hover{background:#f1f3f4;border-color:#d1d5db;color:#1f2937}.dark .blog-main sup a{color:#d1d5db;background:#374151;border-color:#4b5563}.dark .blog-main sup a:hover{background:#4b5563;border-color:#6b7280;color:#f9fafb}.blog-main .footnotes{margin-top:3rem;padding-top:2rem;border-top:2px solid #e5e7eb;font-size:.9rem;color:#6b7280;max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.dark .blog-main .footnotes{border-top-color:#4b5563;color:#9ca3af}.blog-main .footnotes ol{margin:1rem 0;padding-left:1.5rem;counter-reset:footnote-counter;max-width:100%}.blog-main .footnotes li{margin-bottom:.75rem;line-height:1.6;counter-increment:footnote-counter;position:relative;padding-left:0;max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.blog-main .footnotes li::marker{content:counter(footnote-counter) ".";font-weight:600;color:#6b7280}.dark .blog-main .footnotes li::marker{color:#9ca3af}.blog-main .footnotes li p{margin:.5rem 0;font-size:.9rem;color:#6b7280;display:inline;max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.dark .blog-main .footnotes li p{color:#9ca3af}.blog-main .footnotes .reversefootnote{color:#9ca3af;text-decoration:none;font-weight:600;margin-left:.5rem}.dark .blog-main .footnotes .reversefootnote{color:#6b7280}.blog-main .footnotes .reversefootnote:hover{color:#374151;text-decoration:underline}.dark .blog-main .footnotes .reversefootnote:hover{color:#d1d5db}.blog-main img{box-shadow:4px 4px #1f2937;background:#f8fafc;border:2px solid #1f2937;max-width:100%;display:block;border-radius:.5rem}.dark .blog-main img{background:#1f2937;border-color:#f9fafb;box-shadow:4px 4px #f9fafb}@media (max-width: 900px){.blog-main{max-width:98vw;padding:2rem .5rem}}@media (max-width: 600px){.blog-main{padding:1rem .2rem 1.5rem}.blog-layout-wrapper{padding:1rem 0}.blog-main p{font-size:1rem}.blog-main h1{font-size:2rem}.blog-main h2{font-size:1.5rem}.blog-main h3{font-size:1.25rem}.blog-main h4{font-size:1rem}.blog-main h5{font-size:.8rem}.blog-main li{font-size:1rem}.blog-main pre{padding:1.5rem 1rem;font-size:.85rem;margin:2rem 0}.blog-main pre:before{font-size:.7rem;padding:.4rem .8rem;left:.5rem}.blog-main code:not(pre code){font-size:.8em;padding:.2em .4em}.blog-main .footnotes{margin-top:2rem;padding-top:1.5rem;font-size:.85rem;padding-left:.5rem;padding-right:.5rem}.blog-main .footnotes ol{padding-left:1rem;margin:.75rem 0}.blog-main .footnotes li{margin-bottom:.5rem;line-height:1.5;padding-right:.5rem}.blog-main .footnotes li p{font-size:.85rem;line-height:1.5}.blog-main .footnotes .reversefootnote{margin-left:.25rem;font-size:.8rem}}@media (max-width: 400px){.blog-main .footnotes{font-size:.8rem;padding-left:.25rem;padding-right:.25rem}.blog-main .footnotes ol{padding-left:.75rem}.blog-main .footnotes li p{font-size:.8rem}.blog-main .footnotes .reversefootnote{font-size:.75rem}}.blog-main table{width:100%;border-collapse:separate;border-spacing:0;margin:2rem 0;background:#fff;border:3px solid #1f2937;box-shadow:6px 6px #1f2937;border-radius:0;overflow:hidden}.dark .blog-main table{background:#1f2937;border-color:#f9fafb;box-shadow:6px 6px #f9fafb}.blog-main table thead{background:#1f2937;color:#fff}.dark .blog-main table thead{background:#f9fafb;color:#1f2937}.blog-main table th{padding:1rem;text-align:left;font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:3px solid #1f2937}.dark .blog-main table th{border-bottom-color:#f9fafb}.blog-main table td{padding:1rem;border-bottom:2px solid #e5e7eb;font-size:.875rem;line-height:1.6;color:#374151}.dark .blog-main table td{border-bottom-color:#374151;color:#d1d5db}.blog-main table tbody tr:last-child td{border-bottom:none}.blog-main table tbody tr:hover{background:#f8fafc;transform:translateY(-1px);transition:all .2s ease}.dark .blog-main table tbody tr:hover{background:#374151}@media (max-width: 768px){.blog-main table{font-size:.875rem}.blog-main table th,.blog-main table td{padding:.75rem .5rem}.blog-main table{box-shadow:4px 4px #1f2937}.dark .blog-main table{box-shadow:4px 4px #f9fafb}}@media (max-width: 455px){.blog-main table{font-size:.75rem}.blog-main table th,.blog-main table td{padding:.5rem .3rem}}.blog-main table blockquote{text-align:center;font-size:.8rem;font-weight:600;margin-top:1rem;padding:.5rem 1rem;background:#fff;color:#1f2937;border:2px solid #1f2937;border-radius:50px;box-shadow:0 0 0 2px #fff,4px 4px #1f2937;font-style:normal;text-transform:none;letter-spacing:.025em;position:relative;display:inline-block;max-width:70%;word-wrap:break-word;transition:all .2s ease;font-family:Inter,system-ui,sans-serif}.blog-main table blockquote:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:6px;height:6px;background:#ef4444;border-radius:50%;border:2px solid #1f2937;box-shadow:2px 2px #1f2937}.blog-main table blockquote:after{content:"";position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:6px;height:6px;background:#10b981;border-radius:50%;border:2px solid #1f2937;box-shadow:2px 2px #1f2937}.dark .blog-main table blockquote{background:#1f2937;color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 2px #1f2937,4px 4px #f9fafb}.dark .blog-main table blockquote:before{background:#f87171;border-color:#f9fafb;box-shadow:2px 2px #f9fafb}.dark .blog-main table blockquote:after{background:#34d399;border-color:#f9fafb;box-shadow:2px 2px #f9fafb}.blog-main table blockquote:hover{transform:translateY(-2px);box-shadow:0 0 0 2px #fff,6px 6px #1f2937;background:#f8fafc}.dark .blog-main table blockquote:hover{box-shadow:0 0 0 2px #1f2937,6px 6px #f9fafb;background:#374151}@media (max-width: 768px){.blog-main table blockquote{font-size:.75rem;padding:.4rem .8rem;margin-top:.8rem;max-width:80%;box-shadow:0 0 0 2px #fff,3px 3px #1f2937}.blog-main table blockquote:before,.blog-main table blockquote:after{width:4px;height:4px;left:-6px;right:-6px}.dark .blog-main table blockquote{box-shadow:0 0 0 2px #1f2937,3px 3px #f9fafb}.blog-main table blockquote:hover{box-shadow:0 0 0 2px #fff,4px 4px #1f2937}.dark .blog-main table blockquote:hover{box-shadow:0 0 0 2px #1f2937,4px 4px #f9fafb}}@media (max-width: 455px){.blog-main table blockquote{font-size:.7rem;padding:.3rem .6rem;margin-top:.6rem;max-width:85%;box-shadow:0 0 0 1px #fff,2px 2px #1f2937}.blog-main table blockquote:before,.blog-main table blockquote:after{display:none}.dark .blog-main table blockquote{box-shadow:0 0 0 1px #1f2937,2px 2px #f9fafb}.blog-main table blockquote:hover{box-shadow:0 0 0 1px #fff,3px 3px #1f2937}.dark .blog-main table blockquote:hover{box-shadow:0 0 0 1px #1f2937,3px 3px #f9fafb}}.line-clamp-2[data-astro-cid-4sn4zg3r]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3[data-astro-cid-4sn4zg3r]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.brutal-border[data-astro-cid-4sn4zg3r]{border:3px solid #000}.brutal-shadow[data-astro-cid-4sn4zg3r]{box-shadow:4px 4px #000}.dark[data-astro-cid-4sn4zg3r] .brutal-border[data-astro-cid-4sn4zg3r]{border-color:#fff}.dark[data-astro-cid-4sn4zg3r] .brutal-shadow[data-astro-cid-4sn4zg3r]{box-shadow:4px 4px #fff}.content[data-astro-cid-4sn4zg3r]{max-width:100%;margin-inline:auto}.content[data-astro-cid-4sn4zg3r]>*+*{margin-top:1rem}.content[data-astro-cid-4sn4zg3r] h1,.content[data-astro-cid-4sn4zg3r] h2,.content[data-astro-cid-4sn4zg3r] h3,.content[data-astro-cid-4sn4zg3r] h4,.content[data-astro-cid-4sn4zg3r] h5{margin:1.5rem 0}.content[data-astro-cid-4sn4zg3r] p{line-height:1.5;margin-bottom:1rem}.content[data-astro-cid-4sn4zg3r] img{border-radius:1.5rem;box-shadow:var(--shadow-sm);background:var(--gradient-subtle);border:1px solid var(--gray-800)}code[data-astro-cid-4sn4zg3r]{font-family:var(--monospace-font);font-size:var(--monospace-font-size);line-height:var(--monospace-line-height);color:#7757eb;background-color:#0b911d;padding:.15em .4em;border-radius:.25rem}
