.site-header[data-astro-cid-nen7h5rs]{z-index:10;background:var(--header-bg);color:#fff;view-transition-name:site-header;position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:1rem;min-height:3.5rem;display:flex}.wordmark[data-astro-cid-nen7h5rs]{color:#fff;font-family:var(--font-heading), system-ui, sans-serif;letter-spacing:-.02em;margin-right:auto;font-size:1.35rem;font-weight:800;text-decoration:none}.dot[data-astro-cid-nen7h5rs]{color:#e0544a}.tld[data-astro-cid-nen7h5rs]{color:#8db4ec}ul[data-astro-cid-nen7h5rs]{gap:.25rem;padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{white-space:nowrap;color:#e5e5e5;padding:1rem .6rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:box-shadow .15s,color .15s;display:block;box-shadow:inset 0 -3px #0000}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:#fff;box-shadow:inset 0 -3px #ffffff59}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:#fff;box-shadow:inset 0 -3px #e0544a}.langs[data-astro-cid-nen7h5rs]{border:1px solid #ffffff40;border-radius:999px;gap:0;display:flex;overflow:hidden}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:#c9cacd;letter-spacing:.04em;box-shadow:none;padding:.2rem .5rem;font-size:.75rem;font-weight:700;text-decoration:none;display:block}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:#fff;background:#ffffff1a}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current]{color:#fff;background:#ffffff2e}.theme-toggle[data-astro-cid-nen7h5rs]{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:999px;place-items:center;width:2.25rem;height:2.25rem;display:grid}.theme-toggle[data-astro-cid-nen7h5rs]:hover{background:#ffffff1a}.theme-toggle[data-astro-cid-nen7h5rs] .moon[data-astro-cid-nen7h5rs],:root[data-theme=dark] .theme-toggle[data-astro-cid-nen7h5rs] .sun[data-astro-cid-nen7h5rs]{display:none}:root[data-theme=dark] .theme-toggle[data-astro-cid-nen7h5rs] .moon[data-astro-cid-nen7h5rs]{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle[data-astro-cid-nen7h5rs] .sun[data-astro-cid-nen7h5rs]{display:none}:root:not([data-theme=light]) .theme-toggle[data-astro-cid-nen7h5rs] .moon[data-astro-cid-nen7h5rs]{display:block}}@media (width<=30rem){.bar[data-astro-cid-nen7h5rs]{gap:.4rem}.wordmark[data-astro-cid-nen7h5rs]{font-size:1.1rem}ul[data-astro-cid-nen7h5rs]{gap:0}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-inline:.35rem;font-size:.875rem}.theme-toggle[data-astro-cid-nen7h5rs]{width:2rem;height:2rem}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current]{display:none}}@media (width<=22.5rem){.bar[data-astro-cid-nen7h5rs]{gap:.2rem}.langs[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-inline:.35rem}.theme-toggle[data-astro-cid-nen7h5rs]{width:1.75rem;height:1.75rem}.wordmark[data-astro-cid-nen7h5rs]{font-size:1rem}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-inline:.25rem;font-size:.8rem}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);color:var(--muted);margin-top:4rem;font-size:.9rem}.inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;padding-block:1.75rem;display:flex}ul[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:.5rem 1.25rem;padding:0;list-style:none;display:flex}a[data-astro-cid-jo6i4kqk]{color:inherit}.ai-line[data-astro-cid-jo6i4kqk]{margin-top:.25rem}.ai-line[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--link)}a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}@view-transition{navigation:auto}:root{color-scheme:light dark;--graphite:#3d3f45;--red:#a62c21;--blue:#1f4e8c;--bg:light-dark(#fafaf9,#141518);--surface:light-dark(#fff,#1c1d21);--surface-2:light-dark(#f1f1ef,#23252a);--text:light-dark(#1d1e21,#e7e7e4);--muted:light-dark(#5b5e66,#a3a6ad);--border:light-dark(#e5e5e5,#2f3137);--link:light-dark(var(--blue),#8db4ec);--accent:light-dark(var(--red),#e8705f);--header-bg:light-dark(var(--graphite),#1f2024);--focus:light-dark(var(--blue),#8db4ec);--font-sans:var(--font-body), system-ui, sans-serif;--radius:.5rem;--measure:70ch;--gutter:clamp(1rem, 4vw, 2rem);--wide:72rem}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;scroll-padding-top:5rem}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.65;display:flex}main{flex:1}img,picture,svg,video{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit}h1,h2,h3,h4{font-family:var(--font-heading), system-ui, sans-serif;text-wrap:balance;letter-spacing:-.01em;line-height:1.2}p,li{text-wrap:pretty}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}.container{width:min(100% - 2 * var(--gutter), var(--wide));margin-inline:auto}.narrow{width:min(100% - 2 * var(--gutter), var(--measure));margin-inline:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--surface);color:var(--text);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.8rem;font-weight:600}.meta{color:var(--muted);font-size:.9rem}.tags{flex-wrap:wrap;gap:.4rem;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:.1rem .6rem;font-size:.8rem;text-decoration:none;display:inline-block}a.tag:hover{border-color:var(--accent);color:var(--accent)}.page-head{padding-block:clamp(2rem,6vw,4rem) 1.5rem}.page-head h1{font-size:clamp(2rem,1.5rem + 2.5vw,3rem)}.page-head p{color:var(--muted);margin-top:.5rem}.prose{overflow-wrap:break-word}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2.2em;font-size:1.6em}.prose h3{margin-top:1.8em;font-size:1.25em}.prose h2+*,.prose h3+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.3em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);padding:.25em 0 .25em 1.1em}.prose img{border-radius:var(--radius);border:1px solid var(--border)}.prose img[src*=svg]{border:0;border-radius:0;width:100%}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2.5em}.prose table{border-collapse:collapse;width:100%;font-size:.92em;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:.5em .75em}.prose th{font-weight:600}.prose :not(pre)>code{background:var(--surface-2);font-family:var(--font-mono), ui-monospace, monospace;border-radius:.3em;padding:.12em .35em;font-size:.88em}.code-block{position:relative}.astro-code{border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono), ui-monospace, monospace;tab-size:2;padding:1rem 1.25rem;font-size:.85em;line-height:1.6;overflow-x:auto}.astro-code,.astro-code span{color:light-dark(var(--shiki-light),var(--shiki-dark));background-color:light-dark(var(--shiki-light-bg),var(--shiki-dark-bg))}.astro-code[data-language]:before{content:attr(data-language);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);pointer-events:none;font-size:.7rem;position:absolute;top:.4rem;right:.75rem}.copy-btn{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;opacity:0;border-radius:.35rem;padding:.2rem .6rem;font-size:.75rem;transition:opacity .15s;position:absolute;top:.4rem;right:.4rem}.code-block:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.code-block:hover .astro-code[data-language]:before{opacity:0}@media (hover:none){.copy-btn{opacity:1}.astro-code[data-language]:before{display:none}}
