@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500.woff2)format("woff2")}:root{--accent:#0f8;--accent-dark:#00cc6a;--accent-glow:#00ff881f;--accent-subtle:#00ff880d;--black:200, 215, 240;--gray:100, 120, 150;--gray-light:30, 38, 50;--gray-dark:210, 218, 230;--bg:#0a0e14;--bg-card:#111820;--bg-card-hover:#182230;--bg-code:#151d28;--border:#1e2d40;--border-light:#28354a;--border-hover:#3a4d68;--text-primary:#f0f6fc;--text-secondary:#8b95a5;--font-sans:var(--font-atkinson), "Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--radius:8px;--radius-lg:12px;--shadow-card:0 2px 8px #0000004d, 0 8px 24px #0006;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 8px 24px #00000073;--shadow-screenshot:0 8px 40px #0009, 0 0 0 1px #ffffff0d;--nav-height:64px}html[data-theme=light]{--accent:#047857;--accent-dark:#065f46;--accent-glow:#04785724;--accent-subtle:#ecfdf5;--black:15,23,42;--gray:100,116,139;--gray-light:203,213,225;--gray-dark:51,65,85;--bg:#f6f8fa;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-code:#f1f5f9;--border:#dbe2ea;--border-light:#e8edf3;--border-hover:#b9c6d6;--text-primary:#0f172a;--text-secondary:#475569;--shadow-card:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a1a;--shadow-screenshot:0 8px 40px #0f172a24, 0 0 0 1px #0f172a0f;--accent-primary:#047857;--accent-primary-hover:#065f46;--verified-text:#15803d;--verified-border:#86efac;--text-muted:#556376;--text-faint:#5b6b80;--on-accent:#fff;--c-g-00ff88:#00a85a;--c-g-00ff881a:#00a85a1a;--c-g-00ff881f:#00a85a1f;--c-g-00ff8826:#00a85a26;--c-g-00ff882e:#00a85a2e;--c-g-00ff8866:#00a85a66;--c-g-0a0e14:#f4f6f8;--c-g-0b1017:#f3f4f7;--c-g-182230:#e5e9ee;--c-g-1a2636:#e2e6ec;--c-g-1e2d40:#dde2e9;--c-g-22c55e:#9cd7b2;--c-g-22c55e73:#9cd7b273;--c-g-22d3ee:#0e9fb6;--c-g-26332c:#e2e7e4;--c-g-2a3b52:#d3d9e1;--c-g-2dd4bf:#21a392;--c-g-33415c:#cdd2db;--c-g-35443b:#d8ddda;--c-g-3a4a5c:#ccd2d8;--c-g-3b82f6:#3b82f6;--c-g-4db6ac:#42a299;--c-g-4dd0e1:#1ea3b4;--c-g-4fc3f7:#0a9ee0;--c-g-55607a:#babec8;--c-g-6b7280:#b5b7bc;--c-g-7986cb:#7986cb;--c-g-79c0ff4c:#2297ff4c;--c-g-7ee7874c:#20ac2c4c;--c-g-8b95a5:#8b95a5;--c-g-8b95a51f:#8b95a51f;--c-g-a3e635:#6ca114;--c-g-a78bfa:#9c7cf9;--c-g-a855f7:#a855f7;--c-g-aed581:#6fa136;--c-g-c7d1df:#8096b6;--c-g-ce93d8:#c279cf;--c-g-d2a8ff4c:#b570ff4c;--c-g-eab308:#dfcb8e;--c-g-eab3082e:#dfcb8e2e;--c-g-eab30833:#dfcb8e33;--c-g-eab30873:#dfcb8e73;--c-g-eab30880:#dfcb8e80;--c-g-ef4444:#ef4444;--c-g-ef444433:#ef444433;--c-g-ef444438:#ef444438;--c-g-ef444442:#ef444442;--c-g-ef444466:#ef444466;--c-g-ef444473:#ef444473;--c-g-ef444480:#ef444480;--c-g-f06292:#f06292;--c-g-f472b6:#f25aaa;--c-g-f851494c:#f851494c;--c-g-f97316:#f46806;--c-g-f9731638:#f4680638;--c-g-fb923c:#f06f05;--c-g-ff5470:#ff5470;--c-g-ff547073:#ff547073;--c-g-ff547099:#ff547099;--c-g-ff6b6b:#ff5c5c;--c-g-ff7b724c:#ff5e534c;--c-g-ff8a65:#ff5f2d;--c-g-ffa6574c:#eb6e004c;--c-g-ffb454:#de7c00;--c-g-ffd54f:#ba8e00;--c-g-fff59d:#a29200;--c-g-ffffff:#949494;--c-g-ffffff1f:#0f172a1f;--c-k-05090f00:#05090f00;--c-k-05090fcc:#05090fcc;--c-k-05090ff0:#05090ff0;--c-s-0000001a:#ffffff1a;--c-s-00000033:#fff3;--c-s-00000038:#ffffff38;--c-s-0000004c:#ffffff4c;--c-s-00000099:#fff9;--c-s-00add8:#c3e7f0;--c-s-00cc6a:#c6f1dc;--c-s-00ff88:#0f8;--c-s-00ff8808:#00ff8808;--c-s-00ff880a:#00ff880a;--c-s-00ff880d:#00ff880d;--c-s-00ff880f:#00ff880f;--c-s-00ff8814:#00ff8814;--c-s-00ff881a:#00ff881a;--c-s-00ff8826:#00ff8826;--c-s-00ff8840:#00ff8840;--c-s-080b0a:#fbfcfc;--c-s-0a0e14e0:#f9fafbe0;--c-s-0a0e14f5:#f9fafbf5;--c-s-0a7a50:#dcf4eb;--c-s-0b1017:#f8f9fa;--c-s-0b1017bf:#f8f9fabf;--c-s-0c4a3a:#e9f6f3;--c-s-0d1117:#f8f8fa;--c-s-0d1210:#f9fafa;--c-s-0d121c:#f6f7f9;--c-s-101714:#f7f9f8;--c-s-111820:#f5f6f8;--c-s-18221c:#f4f6f5;--c-s-1a2636:#eef1f4;--c-s-1e2d40:#ebeef2;--c-s-22c55e:#c5e8d2;--c-s-22d3ee:#22d3ee;--c-s-2563eb:#1d4ed8;--c-s-27c93f:#c4e6c9;--c-s-2ecc711a:#c3e4d11a;--c-s-3178c6:#c4d3e3;--c-s-3776ab:#cbd8e4;--c-s-3a4a5c:#e1e5e8;--c-s-3b82f6:#1d4ed8;--c-s-3b82f626:#3b82f626;--c-s-3b82f62e:#3b82f62e;--c-s-4eaa25:#d5e9cd;--c-s-4fc3f7:#4fc3f7;--c-s-4fc3f71a:#4fc3f71a;--c-s-6b7280:#d4d5d8;--c-s-6b728026:#d4d5d826;--c-s-8b95a514:#8b95a514;--c-s-a855f7:#a855f7;--c-s-dea584:#dea584;--c-s-eab308:#ece1bd;--c-s-eab3080f:#ece1bd0f;--c-s-eab30814:#ece1bd14;--c-s-eab3081a:#ece1bd1a;--c-s-eab3081f:#ece1bd1f;--c-s-ef4444:#ef4444;--c-s-ef444414:#ef444414;--c-s-ef44441a:#ef44441a;--c-s-ef44441f:#ef44441f;--c-s-ef444426:#ef444426;--c-s-f7df1e:#f7df1e;--c-s-f97316:#f97316;--c-s-f973161f:#f973161f;--c-s-facc1526:#facc1526;--c-s-ff5470:#ff5470;--c-s-ff547014:#ff547014;--c-s-ff54701a:#ff54701a;--c-s-ff5f56:#ff5f56;--c-s-ff6b6b:#ff6b6b;--c-s-ffb454:#ffb454;--c-s-ffb4541a:#ffb4541a;--c-s-ffbd2e:#ffbd2e;--c-s-ffd54f:#ffd54f;--c-s-ffffff05:#0f172a05;--c-s-ffffff08:#0f172a08;--c-s-ffffff0a:#0f172a0a;--c-s-ffffff0d:#0f172a0d;--c-t-000000:#000;--c-t-00000000:#000;--c-t-00ff88:#00753f;--c-t-03140b:#03140b;--c-t-07140d:#07140d;--c-t-0a0a0a:#0a0a0a;--c-t-0a0e14:#0a0e14;--c-t-0d121c:#0d121c;--c-t-1b2534:#1b2534;--c-t-1d2a3d:#1d2a3d;--c-t-22c55e:#147739;--c-t-22d3ee:#0a7281;--c-t-2ecc71:#1a7541;--c-t-33415c:#33415c;--c-t-34d399:#197453;--c-t-3b82f6:#0b5fe9;--c-t-3d5170:#3d5170;--c-t-4a4a58:#4a4a58;--c-t-55637a:#55637a;--c-t-60a5fa:#0763d4;--c-t-66ffb0:#007539;--c-t-79c0ff:#0069c5;--c-t-7dffb8:#007836;--c-t-7ec8e3:#1f718f;--c-t-7ee787:#16781f;--c-t-8b95a58c:#626872;--c-t-93a2b8:#576984;--c-t-9adcff:#006ba4;--c-t-9ca3af:#626974;--c-t-9dc0f7:#1260da;--c-t-a5d6ff:#0068be;--c-t-a78bfa:#6f42f7;--c-t-a855f7:#8f24f5;--c-t-a8dcff:#006bb2;--c-t-aab8b0:#5d6c63;--c-t-c98a8a:#a64c4c;--c-t-c9d4e2:#616973;--c-t-c9d6e8:#43699d;--c-t-d0d8e0:#626a73;--c-t-d2a8ff:#8d23ff;--c-t-d4e5da:#5d6c63;--c-t-dbe4ef:#606870;--c-t-dce9e0:#5a6c61;--c-t-e6edf3:#5f6b70;--c-t-e74c3c:#c82919;--c-t-e7efea:#586b61;--c-t-e8d9a0:#7b671e;--c-t-e8e8e8:#686868;--c-t-e8eef6:#61686e;--c-t-eab308:#826404;--c-t-ef4444:#d01212;--c-t-f0c57a:#8e6010;--c-t-f0f6fc:#0f172a;--c-t-f3a6a6:#cb1b1b;--c-t-f472b6:#c81070;--c-t-f85149:#ce1108;--c-t-f87171:#d00a0a;--c-t-f97316:#af4a04;--c-t-facc15:#7e6503;--c-t-fb923c:#aa4e03;--c-t-fbbf24:#846002;--c-t-fca5a5:#d30707;--c-t-fde68a:#7c6302;--c-t-ff5470:#d30023;--c-t-ff6b6b:#d10000;--c-t-ff7b72:#d30d00;--c-t-ff8fa3:#d10025;--c-t-ff9e54:#ab4a00;--c-t-ffa657:#a94f00;--c-t-ffb454:#9b5700;--c-t-ffd54f:#826300;--c-t-ffd9a8:#995600;--c-t-ffffff:#fff}html[data-theme=light] pre.astro-code[style*="color:#e1e4e8" i],html[data-theme=light] pre.astro-code [style*="color:#e1e4e8" i]{color:#606874!important}html[data-theme=light] pre.astro-code[style*="color:#f97583" i],html[data-theme=light] pre.astro-code [style*="color:#f97583" i]{color:#d1091e!important}html[data-theme=light] pre.astro-code[style*="color:#79b8ff" i],html[data-theme=light] pre.astro-code [style*="color:#79b8ff" i]{color:#0064d5!important}html[data-theme=light] pre.astro-code[style*="color:#9ecbff" i],html[data-theme=light] pre.astro-code [style*="color:#9ecbff" i]{color:#0063d6!important}html[data-theme=light] pre.astro-code[style*="color:#b392f0" i],html[data-theme=light] pre.astro-code [style*="color:#b392f0" i]{color:#7b41e5!important}html[data-theme=light] pre.astro-code[style*="color:#6a737d" i],html[data-theme=light] pre.astro-code [style*="color:#6a737d" i]{color:#616972!important}html[data-theme=light] pre.astro-code[style*="color:#85e89d" i],html[data-theme=light] pre.astro-code [style*="color:#85e89d" i]{color:#16762e!important}html[data-theme=light] pre.astro-code[style*="color:#ffab70" i],html[data-theme=light] pre.astro-code [style*="color:#ffab70" i]{color:#ad4700!important}html[data-theme=light] pre.astro-code[style*="color:#fdaeb7" i],html[data-theme=light] pre.astro-code [style*="color:#fdaeb7" i]{color:#d0051c!important}html[data-theme=light] pre.astro-code[style*="color:#dbedff" i],html[data-theme=light] pre.astro-code [style*="color:#dbedff" i]{color:#06c!important}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text-secondary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;transition:background .2s,color .2s}body:before{content:"";background-image:radial-gradient(var(--c-s-00ff8808,#00ff8808) 1px, transparent 1px);pointer-events:none;z-index:-1;background-size:24px 24px;width:100%;height:100%;position:fixed;top:0;left:0}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-dark)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);line-height:1.3}h1{font-size:clamp(1.75em,5vw,2.5em)}h2{font-size:clamp(1.3em,3vw,1.5em)}code{font-family:var(--font-mono)}pre{border:1px solid var(--border);border-radius:10px;margin:1.25em 0;font-size:.86em;line-height:1.55;overflow-x:auto;background:var(--bg-code)!important;padding:1.25em!important}pre code{font-size:inherit;background:0 0!important;border:none!important;padding:0!important}code:not(pre code){background:var(--accent-subtle);color:var(--c-t-66ffb0,#66ffb0);border:1px solid var(--c-g-00ff881a,#00ff881a);border-radius:4px;padding:.15em .45em;font-size:.88em}img{border-radius:var(--radius-lg);max-width:100%;height:auto}.card,article,.post-card,.blog-card{border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s,background .2s,box-shadow .2s}.card:hover,article:hover,.post-card:hover,.blog-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover);box-shadow:var(--shadow-md)}.screenshot{border-radius:var(--radius-lg);box-shadow:var(--shadow-screenshot);border:1px solid var(--border);overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.prose{margin:auto;padding:0 1.5em}.prose h2{border-bottom:1px solid var(--border);margin:1.5em 0 .6em;padding-bottom:.3em;font-size:1.5em}.prose h3{margin:1.3em 0 .5em;font-size:1.2em}.prose p{margin:.8em 0}.prose ul,.prose ol{margin:.8em 0;padding-left:1.5em}.prose li{margin:.3em 0}.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-subtle);border-radius:0 var(--radius) var(--radius) 0;color:var(--text-secondary);margin:1em 0;padding:.5em 1em}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}footer[data-astro-cid-jo6i4kqk]{background:var(--bg-card);border-top:1px solid var(--border);margin-top:3em}.footer-inner[data-astro-cid-jo6i4kqk]{text-align:center;max-width:960px;margin:0 auto;padding:1.5em}.network[data-astro-cid-jo6i4kqk]{margin-bottom:1em}.network-heading[data-astro-cid-jo6i4kqk]{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted,rgba(var(--gray), .5));margin-bottom:.6em;font-size:.7em;font-weight:600;display:block}.network-links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:center;gap:.4em 1em;display:flex}.network-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-muted,rgba(var(--gray), .6));font-size:.8em;text-decoration:none;transition:color .15s}.network-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.copyright[data-astro-cid-jo6i4kqk]{color:var(--text-muted,rgba(var(--gray), .7));font-size:.82em}@media (min-width:1360px){.footer-inner[data-astro-cid-jo6i4kqk]{max-width:1200px}}@media (min-width:1800px){.footer-inner[data-astro-cid-jo6i4kqk]{max-width:1400px}}@media (min-width:2000px){.footer-inner[data-astro-cid-jo6i4kqk]{max-width:1760px}}@media (min-width:2400px){.footer-inner[data-astro-cid-jo6i4kqk]{max-width:1920px}}header[data-astro-cid-nen7h5rs]{background:var(--c-s-0a0e14e0,#0a0e14e0);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);z-index:100;position:sticky;top:0}nav[data-astro-cid-nen7h5rs]{justify-content:flex-start;align-items:center;max-width:960px;height:56px;margin:0 auto;padding:0 1.5em;display:flex}.logo[data-astro-cid-nen7h5rs]{color:var(--c-t-f0f6fc,#f0f6fc);align-items:center;gap:.5em;font-size:1.05em;font-weight:600;text-decoration:none;display:flex}.logo-icon[data-astro-cid-nen7h5rs]{color:var(--accent);font-size:1.1em}.logo[data-astro-cid-nen7h5rs]:hover{color:var(--accent)}.nav-links[data-astro-cid-nen7h5rs]{align-items:center;gap:.2em;margin-left:auto;margin-right:2.5em;display:flex}.nav-link[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);color:var(--text-secondary);border:1px solid #0000;border-radius:6px;align-items:center;padding:.3em .8em;font-size:.75em;text-decoration:none;transition:all .2s;display:inline-flex}.nav-link[data-astro-cid-nen7h5rs]:hover{color:var(--accent);border-color:var(--border);background:var(--c-s-ffffff08,#ffffff08)}@media (min-width:1360px){nav[data-astro-cid-nen7h5rs]{max-width:1200px}}@media (min-width:1800px){nav[data-astro-cid-nen7h5rs]{max-width:1400px}}@media (min-width:2000px){nav[data-astro-cid-nen7h5rs]{max-width:1760px}}@media (min-width:2400px){nav[data-astro-cid-nen7h5rs]{max-width:1920px}}.theme-toggle[data-astro-cid-nen7h5rs]{min-width:32px;min-height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;margin-left:.2em;padding:0;transition:all .2s;display:inline-flex}.theme-toggle[data-astro-cid-nen7h5rs]:hover{color:var(--accent);border-color:var(--border-hover);background:var(--bg-card-hover)}.theme-toggle[data-astro-cid-nen7h5rs]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle__icon--sun[data-astro-cid-nen7h5rs],html[data-theme=light] .theme-toggle__icon--moon[data-astro-cid-nen7h5rs]{display:none}html[data-theme=light] .theme-toggle__icon--sun[data-astro-cid-nen7h5rs]{display:block}.hamburger[data-astro-cid-nen7h5rs]{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;gap:4px;margin-left:auto;padding:8px;display:none}.hamburger-line[data-astro-cid-nen7h5rs]{background:var(--text-secondary);border-radius:2px;width:20px;height:2px;transition:transform .3s,opacity .3s;display:block}.hamburger[data-astro-cid-nen7h5rs].active .hamburger-line[data-astro-cid-nen7h5rs]:first-child{transform:translateY(6px)rotate(45deg)}.hamburger[data-astro-cid-nen7h5rs].active .hamburger-line[data-astro-cid-nen7h5rs]:nth-child(2){opacity:0}.hamburger[data-astro-cid-nen7h5rs].active .hamburger-line[data-astro-cid-nen7h5rs]:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (max-width:768px){.nav-links[data-astro-cid-nen7h5rs]{background:var(--c-s-0a0e14f5,#0a0e14f5);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);z-index:99;opacity:0;flex-direction:column;gap:.25em;max-height:0;margin:0;padding:0 1em;transition:max-height .3s,opacity .3s,padding .3s;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nav-links[data-astro-cid-nen7h5rs][data-menu-open]{opacity:1;max-height:500px;padding:.5em 1em 1em}.nav-links[data-astro-cid-nen7h5rs] .nav-link[data-astro-cid-nen7h5rs]{width:100%;padding:.7em .75em;font-size:.9em}.hamburger[data-astro-cid-nen7h5rs]{display:flex}nav[data-astro-cid-nen7h5rs]{position:relative}}
