:root{--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--line-height: 1.5;--bg: #f6f2ea;--fg: #111111;--muted: rgba(17, 17, 17, .65);--line: rgba(17, 17, 17, .14);--accent: #6d28d9;--bg-1: var(--bg);--bg-2: color-mix(in srgb, var(--bg) 86%, #ffffff);--text-1: var(--fg);--text-2: var(--muted);--border-1: var(--line);--accent-1: var(--accent);--accent-1-hover: color-mix(in srgb, var(--accent) 86%, #000000);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--s1: 8px;--s2: 16px;--s3: 24px;--s4: 32px;--s5: 48px;--s6: 64px;--radius-1: 8px;--radius-2: 12px;--radius-3: 18px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .08), 0 10px 30px rgba(0, 0, 0, .08);--container-max: 1120px;--grain-opacity: .035}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-sans);line-height:var(--line-height);-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg-1)}body{margin:0;min-height:100vh;color:var(--text-1);background:transparent;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:.01em;position:relative;isolation:isolate}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}a{color:var(--accent-1);text-decoration:none}a:hover{color:var(--accent-1-hover);text-decoration:none}:focus-visible{outline:2px solid var(--accent-1);outline-offset:2px}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-4)}.rule{height:1px;background:var(--border-1)}.subtitle{color:var(--text-2);line-height:1.55}.accent{color:var(--accent-1)}html:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background-image:var(--site-bg-url);background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.04);opacity:.42;filter:blur(10px) saturate(.92) brightness(1.05) contrast(.95)}html:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(900px 520px at 10% 0%,#f6f2eaf0,#f6f2eac2 55%,#f6f2eaeb),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");background-blend-mode:normal,multiply;opacity:1}.prose{--p: color-mix(in srgb, var(--bg-1) 70%, #fff);--p2: color-mix(in srgb, var(--bg-1) 84%, #fff);--ink: var(--text-1);--muted: var(--text-2);--line: var(--border-1);max-width:78ch}.prose :where(p,ul,ol,blockquote,table,pre){margin:0 0 var(--s3)}.prose :where(h2,h3,h4){margin:var(--s5) 0 var(--s2);line-height:1.15;letter-spacing:-.01em}.prose :where(h2){font-size:clamp(22px,3vw,30px)}.prose :where(h3){font-size:clamp(18px,2.4vw,22px)}.prose :where(h4){font-size:16px}.prose :where(p){color:var(--ink)}.prose :where(p strong){font-weight:900}.prose :where(blockquote){padding:var(--s3) var(--s3);background:var(--p);border:1px solid var(--line);border-left:4px solid var(--accent-1);border-radius:14px;color:var(--ink)}.prose :where(blockquote p){margin:0;color:var(--ink)}.prose :where(ul,ol){padding-left:1.2em}.prose :where(li){margin:.35em 0}.prose :where(table){width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#ffffff8c}.prose :where(th,td){padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.prose :where(th){text-align:left;font-weight:900;background:var(--p2)}.prose :where(tr:last-child td){border-bottom:none}.prose :where(.table-wrap){overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;border:1px solid var(--line);background:#ffffff59;margin:0 0 var(--s3)}.prose :where(.table-wrap table){border:none;margin:0}.prose :where(code){font-family:var(--font-mono);font-size:.95em}.prose :where(pre){padding:var(--s3);border-radius:14px;border:1px solid var(--line);background:#1111110f;overflow:auto}.prose :where(a){text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent-1) 45%,transparent)}.prose :where(a:hover){border-bottom-color:var(--accent-1)}.prose :where(a[href^=http]){word-break:break-word}.prose :where(.btn){display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-1) 28%,var(--line));background:#ffffffa6;box-shadow:var(--shadow-1);font-weight:900;letter-spacing:.01em}.prose :where(.btn:hover){transform:translateY(-1px)}.topnav[data-astro-cid-37fxchfa]{border-bottom:1px solid var(--border-1);background:#ffffff59;backdrop-filter:blur(10px)}.topnav__inner[data-astro-cid-37fxchfa]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.topnav__brand[data-astro-cid-37fxchfa]{display:inline-flex;align-items:center;gap:10px;min-width:0;color:var(--text-1);text-decoration:none}.topnav__brand[data-astro-cid-37fxchfa]:hover{color:var(--text-1)}.topnav__brand-logo[data-astro-cid-37fxchfa]{flex:0 0 auto;display:block;width:28px;height:28px}.topnav__brand-text[data-astro-cid-37fxchfa]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:950;letter-spacing:.01em}.topnav__links[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:10px}.topnav__link[data-astro-cid-37fxchfa]{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1px solid transparent;color:var(--text-1);font-weight:900;letter-spacing:.01em}.topnav__link[data-astro-cid-37fxchfa]:hover{border-color:var(--border-1);background:#ffffff8c;color:var(--text-1)}@media(max-width:520px){.topnav__brand-text[data-astro-cid-37fxchfa]{font-size:13px}.topnav__link[data-astro-cid-37fxchfa]{padding:6px 10px;font-size:13px}}
