:root{--bg:#faf9f6;--bg-elev:#fff;--bg-sunk:#f2f0eb;--text:#15171c;--text-muted:#555b69;--text-faint:#8a8f9b;--border:#e5e2da;--border-strong:#d3cfc4;--accent:#2747b8;--accent-hover:#1b358f;--accent-soft:#e8edfb;--accent-ink:#fff;--code-bg:#f4f2ed;--grid:#15171c0b;--shadow:0 1px 2px #15171c0a, 0 8px 24px -12px #15171c1f;--art-1:#2747b8;--art-2:#f0a830;--art-3:#15171c;--art-4:#dfe6fb;--art-5:#f1e6d2;--measure:42rem;--wide:72rem;--gutter:clamp(1rem, 4vw, 2rem);--radius:10px;--header-h:4rem;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d0f13;--bg-elev:#14171d;--bg-sunk:#0a0b0e;--text:#e7e8ec;--text-muted:#a3a8b4;--text-faint:#6c7280;--border:#232731;--border-strong:#323744;--accent:#8ea6ff;--accent-hover:#b4c3ff;--accent-soft:#19213d;--accent-ink:#0d0f13;--code-bg:#12151b;--grid:#e7e8ec0a;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #0009;--art-1:#5b78e6;--art-2:#e0a040;--art-3:#d9dbe2;--art-4:#1b2340;--art-5:#2a251c;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d0f13;--bg-elev:#14171d;--bg-sunk:#0a0b0e;--text:#e7e8ec;--text-muted:#a3a8b4;--text-faint:#6c7280;--border:#232731;--border-strong:#323744;--accent:#8ea6ff;--accent-hover:#b4c3ff;--accent-soft:#19213d;--accent-ink:#0d0f13;--code-bg:#12151b;--grid:#e7e8ec0a;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #0009;--art-1:#5b78e6;--art-2:#e0a040;--art-3:#d9dbe2;--art-4:#1b2340;--art-5:#2a251c;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1.5rem)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:1rem;line-height:1.6;display:flex}main{flex:1}img,svg{max-width:100%;height:auto}a{color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3,h4{font-family:var(--font-serif);letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:500;line-height:1.15}p{text-wrap:pretty}.wrap{width:100%;max-width:var(--wide);padding-inline:var(--gutter);margin-inline:auto}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.75rem;font-weight:500}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grid-bg{pointer-events:none;background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 80% at 70% 0,#000 30%,#0000 75%);mask-image:radial-gradient(70% 80% at 70% 0,#000 30%,#0000 75%)}@media (prefers-reduced-motion:no-preference){.js .reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0s);transform:translateY(16px)}.js .reveal.is-visible{opacity:1;transform:none}}.btn{height:2.5rem;font:500 .9rem/1 var(--font-sans);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:0 1.1rem;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}.btn svg{flex:none;width:1rem;height:1rem}.btn-primary{background:var(--text);color:var(--bg)}.btn-primary:hover{background:var(--accent);color:var(--accent-ink)}.btn-ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.btn-ghost:hover{border-color:var(--text)}.tag{background:var(--bg-sunk);border:1px solid var(--border);height:1.6rem;color:var(--text-muted);font:500 .75rem/1 var(--font-mono);border-radius:999px;align-items:center;padding:0 .6rem;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}a.tag:hover{color:var(--accent);border-color:var(--accent)}.astro-code,.astro-code span{color:var(--shiki-light)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not([data-theme]) .astro-code,:root:not([data-theme]) .astro-code span{color:var(--shiki-dark)}}.prose{font-family:var(--font-serif);color:var(--text);font-size:1.2rem;line-height:1.7}:where(.prose) :where(p,ul,ol,blockquote,pre,table,figure){margin-block:0}.prose>*+*{margin-top:1.3em}.prose h2{margin-top:2.2em;font-size:1.75rem}.prose h3{margin-top:1.8em;font-size:1.35rem}.prose :is(h2,h3)+*{margin-top:.6em}.prose a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}.prose a:hover{color:var(--accent-hover);text-decoration-thickness:2px}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--text-faint)}.prose blockquote{border-left:3px solid var(--accent);color:var(--text);margin-inline:0;padding:.2em 0 .2em 1.2em;font-size:1.35rem;font-style:italic;line-height:1.5}.prose blockquote p{margin:0}.prose hr{background:var(--border);border:0;height:1px;margin-block:3em}.prose img{border-radius:var(--radius)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);border-radius:5px;padding:.15em .4em;font-size:.82em}.prose pre{font-family:var(--font-mono);border-radius:var(--radius);border:1px solid var(--border);padding:1.25rem 1.4rem;font-size:.85rem;line-height:1.65;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-family:inherit}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:.95rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);padding:.6em .8em}.prose th{font-weight:600}@media (width<=640px){.prose{font-size:1.1rem}.prose pre{margin-inline:calc(var(--gutter) * -1);border-inline:0;border-radius:0}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);color:var(--text-faint);margin-top:clamp(4rem,10vw,7rem);padding-block:2rem 2.5rem;font-size:.875rem}.inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}p[data-astro-cid-jo6i4kqk]{margin:0}.copyright[data-astro-cid-jo6i4kqk]{color:var(--text-muted);font-weight:500}.disclaimer[data-astro-cid-jo6i4kqk]{margin-top:.2rem}.social[data-astro-cid-jo6i4kqk]{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{width:2.25rem;height:2.25rem;color:var(--text-muted);border-radius:999px;place-items:center;transition:color .15s,background-color .15s;display:grid}.social[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--text);background:var(--bg-sunk)}.social[data-astro-cid-jo6i4kqk] svg{width:1.1rem;height:1.1rem}.site-header[data-astro-cid-nen7h5rs]{z-index:10;height:var(--header-h);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1rem;height:100%;display:flex}.brand[data-astro-cid-nen7h5rs]{letter-spacing:-.01em;align-items:center;gap:.7rem;font-weight:600;text-decoration:none;display:inline-flex}.mark[data-astro-cid-nen7h5rs]{background:var(--text);width:2rem;height:2rem;color:var(--bg);font:500 .95rem/1 var(--font-serif);letter-spacing:.02em;border-radius:8px;place-items:center;transition:background-color .2s;display:grid}.brand[data-astro-cid-nen7h5rs]:hover .mark[data-astro-cid-nen7h5rs]{background:var(--accent);color:var(--accent-ink)}nav[data-astro-cid-nen7h5rs]{align-items:center;gap:.25rem;display:flex}ul[data-astro-cid-nen7h5rs]{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-nen7h5rs]{height:2.25rem;color:var(--text-muted);border-radius:999px;align-items:center;padding:0 .75rem;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex}.nav-link[data-astro-cid-nen7h5rs]:hover{color:var(--text)}.nav-link[data-astro-cid-nen7h5rs].active{color:var(--text);background:var(--bg-sunk)}.theme-toggle[data-astro-cid-nen7h5rs]{width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;margin-inline:.25rem .5rem;transition:color .15s,background-color .15s;display:grid}.theme-toggle[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:var(--bg-sunk)}.theme-toggle[data-astro-cid-nen7h5rs] svg{width:1.1rem;height:1.1rem}.icon-moon,[data-theme=dark] .icon-sun{display:none}[data-theme=dark] .icon-moon{display:block}@media (width<=600px){.name[data-astro-cid-nen7h5rs],.cta[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{display:none}.cta[data-astro-cid-nen7h5rs]{justify-content:center;width:2.5rem;padding:0}.theme-toggle[data-astro-cid-nen7h5rs]{margin-inline:0}}.skip-link[data-astro-cid-hkbrpulz]{z-index:20;background:var(--text);color:var(--bg);border-radius:999px;padding:.5rem 1rem;text-decoration:none;position:absolute;top:-3rem;left:1rem}.skip-link[data-astro-cid-hkbrpulz]:focus{top:.75rem}
