@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-sans-v23-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:italic;font-weight:400;src:url(/fonts/ibm-plex-sans-v23-latin-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/fonts/ibm-plex-sans-v23-latin-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:italic;font-weight:500;src:url(/fonts/ibm-plex-sans-v23-latin-500italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/fonts/ibm-plex-sans-v23-latin-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:italic;font-weight:600;src:url(/fonts/ibm-plex-sans-v23-latin-600italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/fonts/ibm-plex-sans-v23-latin-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:italic;font-weight:700;src:url(/fonts/ibm-plex-sans-v23-latin-700italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400;src:url(/fonts/jetbrains-mono-v24-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:500;src:url(/fonts/jetbrains-mono-v24-latin-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:600;src:url(/fonts/jetbrains-mono-v24-latin-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:700;src:url(/fonts/jetbrains-mono-v24-latin-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:800;src:url(/fonts/jetbrains-mono-v24-latin-800.woff2) format("woff2")}:root{--bg-color: #1a1a1a;--text-color: #ececec;--text-muted: #a0a0a0;--link-color: #3bc26d;--link-hover: #86efac;--border-color: #3d3d3d;--code-bg: #242424;--table-header-bg: var(--code-bg);--table-border: #2f2f2f;--callout-info-bg: rgba(93, 169, 246, .1);--callout-info-border: #5da9f6;--callout-warn-bg: rgba(246, 179, 93, .1);--callout-warn-border: #f6b35d;--primary-font: "IBM Plex Sans", sans-serif;--code-font: "JetBrains Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;background-color:var(--bg-color);color:var(--text-color);font-family:var(--primary-font);line-height:1.6;font-size:16px}.layout-container{max-width:720px;margin:0 auto;padding:2rem 1.5rem;position:relative}a{color:var(--link-color);text-decoration:underline;text-underline-offset:3px}a:hover{color:var(--link-hover)}.post-preview h3 a{text-decoration:none;color:var(--link-color);transition:color .2s}.post-preview h3 a:hover{color:var(--link-hover)}.btn{display:inline-block;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:4px;text-decoration:none;color:var(--text-color)!important;font-weight:500;cursor:pointer;transition:border-color .1s}.btn:hover{border-color:var(--text-muted);text-decoration:none}header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);padding-bottom:1.5rem}header h1{margin:0;font-size:1.8rem;font-weight:700;letter-spacing:-.02em}header h1 a{color:var(--text-color);text-decoration:none}.social-links{display:flex;gap:1.2rem;align-items:center}.social-links a{color:var(--text-muted);text-decoration:none;font-size:.95rem;transition:color .2s}@media(max-width:550px){.social-links a:nth-child(n+5){display:none}}.social-links a:hover{color:var(--text-color)}.icon{width:20px;height:20px;fill:currentColor;vertical-align:middle}footer{margin-top:2rem;border-top:1px solid var(--border-color);padding-top:2rem;font-size:.9rem;color:var(--text-muted);display:flex;flex-direction:column;gap:.5rem;align-items:center}@media(min-width:600px){footer{flex-direction:row;justify-content:space-between}}.footer-links a{color:var(--text-muted);margin-left:1rem;text-decoration:none}.footer-links a:hover{text-decoration:underline;color:var(--text-color)}h1,h2,h3,h4,h5,h6{line-height:1.3;margin-top:1.5rem;margin-bottom:.5rem;color:var(--text-color);font-weight:600}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{color:var(--text-color)}.post-content h1,.post-content h2{border-bottom:1px solid var(--border-color);padding-bottom:.3em}.heading-link{text-decoration:none;color:inherit;cursor:pointer}p{margin-bottom:1rem;text-align:justify;text-justify:auto}code{background-color:var(--code-bg);padding:.2em .4em;border-radius:4px;font-family:var(--code-font);font-size:14px}pre{background-color:var(--code-bg);padding:1rem;border-radius:4px;overflow-x:auto;margin:1.5rem 0}pre code{background-color:transparent;padding:0;border:none;font-size:14px;line-height:1.35}.astro-code,.astro-code code,.astro-code .line{background-color:var(--code-bg)!important;line-height:1.35!important}blockquote:before{content:open-quote;font-size:3em;line-height:.1em;margin-right:.5rem;vertical-align:-1rem}blockquote{border-left:4px solid var(--border-color);margin:1.5rem 0;padding:.5rem 0 .5rem 1.2rem;color:var(--text-muted);font-style:italic}blockquote p{display:inline}blockquote>*:first-child{margin-top:0}blockquote>*:last-child{margin-bottom:0}.table-wrapper{overflow-x:auto;margin:2rem 0}table{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem;border-radius:4px;overflow:hidden;border:1px solid var(--table-border)}th,td{border-bottom:1px solid var(--table-border);padding:.5rem 1rem;text-align:left}th:last-child,td:last-child{border-right:none}tr:last-child td{border-bottom:none}th{background-color:var(--table-header-bg);font-weight:600;color:var(--text-color)}tr:nth-child(2n){background-color:#0000001a}img{max-width:100%;height:auto;border-radius:4px;display:block}figure.custom-figure{margin:1.5rem 0;padding:0}figure.custom-figure a.figure-link{display:block}figure.custom-figure figcaption{margin-top:.75rem;font-size:.85rem;color:var(--text-muted);text-align:center;font-style:italic}::selection{background:var(--link-color);color:var(--bg-color)}::-webkit-scrollbar{width:10px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#9b9b9b66;border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:#9b9b9bb3}::-webkit-scrollbar-thumb:active{background-color:#9b9b9be6}::-webkit-scrollbar-corner{background:transparent}
