:root{color-scheme:light dark;--bg:#fdfdfc;--surface:#ffffff;--text:#1a1a1a;--muted:#666666;--line:#eeeeee;--accent:#0f766e;--accent-strong:#b42318;--code-bg:#f6f8fa;--code-text:#1f2328;--code-border:#d8dee4;--code-inline-bg:#eff2f5;--code-comment:#57606a;--code-keyword:#cf222e;--code-constant:#0550ae;--code-function:#6639ba;--code-string:#0a3069;--code-variable:#953800;--code-label:#900000;--code-namespace:#24292e;--code-error:#f6f8fa;--code-error-bg:#82071e;--code-line-number:#6e7781;--code-line-highlight:#eaeef2;--code-inserted:#116329;--code-inserted-bg:#dafbe1;--code-deleted:#82071e;--code-deleted-bg:#ffebe9;--shadow:0 4px 20px rgba(0, 0, 0, 0.04);--radius:8px}@media(prefers-color-scheme:dark){:root{--bg:#0d0d0d;--surface:#141414;--text:#eeeeee;--muted:#a0a0a0;--line:#222222;--accent:#2dd4bf;--accent-strong:#fb7185;--code-bg:#0d1117;--code-text:#e6edf3;--code-border:#30363d;--code-inline-bg:#1f2937;--code-comment:#8b949e;--code-keyword:#ff7b72;--code-constant:#79c0ff;--code-function:#d2a8ff;--code-string:#a5d6ff;--code-variable:#ffa657;--code-label:#f85149;--code-namespace:#c9d1d9;--code-error:#f0f6fc;--code-error-bg:#8e1519;--code-line-number:#6e7681;--code-line-highlight:#161b22;--code-inserted:#aff5b4;--code-inserted-bg:#033a16;--code-deleted:#ffdcd7;--code-deleted-bg:#67060c;--shadow:0 4px 20px rgba(0, 0, 0, 0.4)}}*{box-sizing:border-box}html{scroll-behavior:smooth;font-feature-settings:"cv02","cv03","cv04","cv11"}body{margin:0;background:var(--bg);color:var(--text);font-family:inter variable,Inter,ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration-color:color-mix(in srgb,var(--accent),transparent 60%);text-underline-offset:.2em;transition:all .2s ease}a:hover{color:var(--accent);text-decoration-color:var(--accent)}img{display:block;max-width:100%;height:auto;border-radius:var(--radius)}h1,h2,h3,h4{color:var(--text);font-weight:750;letter-spacing:-.02em;line-height:1.2;margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.chroma{color:var(--code-text);background:var(--code-bg);-webkit-text-size-adjust:none}.chroma .err{color:var(--code-error);background-color:var(--code-error-bg)}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto}.chroma .hl{background-color:var(--code-line-highlight)}.chroma .lnt,.chroma .ln{color:var(--code-line-number);margin-right:.75rem;padding:0 .75rem 0 0;user-select:none;white-space:pre}.chroma .line{display:flex}.chroma .cl{min-width:0}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:var(--code-keyword)}.chroma .na,.chroma .nc,.chroma .nx,.chroma .p,.chroma .ge,.chroma .go{color:var(--code-text)}.chroma .no,.chroma .nd,.chroma .nt,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .o,.chroma .ow,.chroma .or{color:var(--code-constant)}.chroma .ni,.chroma .nb,.chroma .nf,.chroma .fm{color:var(--code-function)}.chroma .nl{color:var(--code-label);font-weight:700}.chroma .nn{color:var(--code-namespace)}.chroma .bp,.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--code-comment)}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--code-variable)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--code-string)}.chroma .gd{color:var(--code-deleted);background-color:var(--code-deleted-bg)}.chroma .gi{color:var(--code-inserted);background-color:var(--code-inserted-bg)}.chroma .gl{text-decoration:underline}.chroma .w{color:inherit}@media(prefers-color-scheme:dark){.chroma .ge,.chroma .go,.chroma .na,.chroma .nc,.chroma .nx,.chroma .p{color:var(--code-text)}}.wrap{width:calc(100% - 40px);max-width:1080px;margin-inline:auto}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg),transparent 10%);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:20px}.site-footer{border-top:1px solid var(--line);padding:48px 0;margin-top:80px;color:var(--muted);font-size:.9rem}.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px}@media(max-width:760px){.header-inner,.footer-inner{flex-direction:column;align-items:flex-start}}.home-hero{border-bottom:1px solid var(--line);padding:80px 0;background-image:radial-gradient(circle at 0% 0%,color-mix(in srgb,var(--accent),transparent 97%),transparent 40%);margin-bottom:64px}.hero-grid{display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:center}.eyebrow{color:var(--accent);font-size:.85rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.home-hero h1{font-size:clamp(2.5rem,8vw,4rem);line-height:1.1;max-width:15ch;margin-bottom:24px}.hero-copy{font-size:1.25rem;color:var(--muted);max-width:45ch;line-height:1.5}.featured{display:block;text-decoration:none;background:var(--surface);border:1px solid var(--line);padding:24px;border-radius:12px;box-shadow:var(--shadow);transition:all .3s cubic-bezier(.16,1,.3,1)}.featured:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,8%);border-color:color-mix(in srgb,var(--accent),transparent 80%)}.featured picture img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-bottom:20px}.featured-label{display:inline-block;color:var(--accent-strong);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.featured strong{display:block;font-size:1.4rem;color:var(--text);line-height:1.3;margin-bottom:12px}.featured span{font-size:.85rem;color:var(--muted)}@media(max-width:960px){.hero-grid{grid-template-columns:1fr;gap:48px}.featured{max-width:500px}}.brand{font-weight:800;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-mark{background:var(--text);color:var(--bg);padding:4px 8px;border-radius:4px;font-size:.8rem}.site-nav{display:flex;align-items:center;gap:20px;font-size:.95rem;color:var(--muted)}.site-nav a{text-decoration:none}.site-nav a[aria-current=page]{color:var(--text);font-weight:600}.post-card{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:40px 0;border-bottom:1px solid var(--line);transition:transform .2s ease}.post-card:hover{transform:translateX(4px)}.post-card h2{font-size:1.5rem;margin:8px 0}.post-card h2 a{text-decoration:none}.post-card p{color:var(--muted);margin:0}.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--code-bg)}.card-meta,.post-meta{font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:8px}.button{display:inline-flex;align-items:center;padding:10px 20px;background:var(--text);color:var(--bg);border-radius:var(--radius);text-decoration:none;font-weight:600;transition:opacity .2s}.button:hover{opacity:.9}#progress-bar{height:3px;background:var(--accent);position:absolute;bottom:0;left:0;z-index:100}.section-footer{margin-top:40px;display:flex;justify-content:center}.more-link{text-decoration:none;font-weight:700;font-size:1.1rem;color:var(--text);padding:12px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:all .2s ease}.more-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;list-style:none;padding:0;margin-top:64px}.pagination li a{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--muted);font-weight:600;transition:all .2s ease}.pagination li.active a{background:var(--text);color:var(--bg);border-color:var(--text)}.pagination li a:hover:not(.active){border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.pagination li.disabled{display:none}@media(max-width:760px){.post-card{grid-template-columns:1fr;gap:16px}.site-nav{width:100%;overflow-x:auto;padding-bottom:10px}}.post{max-width:720px;margin-inline:auto;padding:64px 0}.cover{margin-bottom:48px}.cover figcaption{text-align:right;font-size:.8rem;color:var(--muted);margin-top:8px}.cover figcaption a{text-decoration:none}.post-header{margin-bottom:48px}.post-header h1{font-size:3rem;margin-bottom:16px}.content>*+*{margin-top:1.5rem}.content h2{font-size:1.8rem;margin-top:3rem}.content h3{font-size:1.4rem;margin-top:2rem}.content blockquote{border-left:4px solid var(--accent);margin:2rem 0;padding:.5rem 1.5rem;color:var(--muted);font-style:italic;background:var(--surface)}.content pre{margin:0;padding:22px 24px;background:var(--code-bg);border:1px solid var(--code-border);border-radius:calc(var(--radius) + 4px);color:var(--code-text);overflow-x:auto;position:relative;tab-size:2;box-shadow:inset 0 1px color-mix(in srgb,#fff,transparent 82%)}.content code{font-family:jetbrains mono,ui-monospace,monospace;font-size:.9rem}.content :not(pre)>code{padding:.15em .35em;background:var(--code-inline-bg);border:1px solid color-mix(in srgb,var(--code-border),transparent 30%);border-radius:.35em;color:var(--code-text);white-space:break-spaces}.content pre code{display:block;min-width:max-content;padding-right:3.75rem;font-size:.86rem;line-height:1.7}.content .highlight{margin:1.75rem 0;position:relative}.content .highlight pre{margin:0}.content .highlight table{display:table;width:auto;min-width:100%;margin:0;border:0;border-radius:0;background:0 0}.content .highlight th,.content .highlight td{min-width:0;padding:0;border:0;background:0 0}.content table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);font-size:.95rem;line-height:1.45}.content th,.content td{min-width:140px;padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.content th{background:var(--accent);color:var(--bg);font-weight:700}.content tr:last-child td{border-bottom:0}.content td+td,.content th+th{border-left:1px solid var(--line)}.content tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface),var(--text) 3%)}@media(max-width:760px){.content pre{margin-inline:-20px;border-inline:0;border-radius:0}.content pre code{font-size:.82rem}.content table{display:block;overflow-x:auto}.content th,.content td{min-width:180px}}.toc{background:var(--surface);border:1px solid var(--line);padding:24px;border-radius:var(--radius);margin-bottom:40px}.toc summary{font-weight:700;cursor:pointer;margin-bottom:12px}.toc nav ul{list-style:none;padding-left:0}.toc nav ul ul{padding-left:20px;margin-top:8px}.toc a{text-decoration:none;color:var(--muted);font-size:.95rem}.toc a:hover{color:var(--accent)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:80px;padding-top:40px;border-top:1px solid var(--line)}.post-nav+.related-posts{margin-top:64px}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.post-card,.featured,.post{animation:fadeIn .6s cubic-bezier(.16,1,.3,1)forwards}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.footer-links{display:flex;gap:20px;align-items:center}.footer-links a{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.copy-code{position:absolute;top:10px;right:10px;z-index:2;background:color-mix(in srgb,var(--surface),var(--code-bg) 18%);border:1px solid var(--code-border);padding:5px 9px;border-radius:999px;color:var(--text);font:700 .68rem/1 inter variable,Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.02em;opacity:0;transition:opacity .2s ease,transform .2s ease,border-color .2s ease;cursor:pointer;box-shadow:var(--shadow)}.copy-code:hover,.copy-code:focus-visible{border-color:var(--accent);transform:translateY(-1px)}pre:hover .copy-code,pre:focus-within .copy-code,.copy-code:focus-visible{opacity:1}