*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{color-scheme:light;--bg: #fafaf9;--bg-blur: rgba(250, 250, 249, .88);--surface: #ffffff;--surface-2: #fafaf9;--border: #e8e6e5;--border-strong: #d6d3d1;--text: #0c0a09;--text-dim: #78716c;--text-faint: #a8a29e;--accent: #3ba6f1;--accent-edge: #15679f;--accent-wash: #c1e1f7;--accent-soft: rgba(59, 166, 241, .06);--accent-line: rgba(59, 166, 241, .35);--on-accent: #0c0a09;--ok: #3ba6f1;--warn: #a8a29e;--nok: #1c1917;--img-filter: grayscale(1) contrast(1.05);--font-display: "Inter Tight", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--radius: 10px;--radius-sm: 6px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: rgba(0, 0, 0, .05) 0px 1px 2px 0px;--shadow-md: rgba(0, 0, 0, .05) 0px 4px 16px 0px;--shadow-xl: rgba(17, 12, 46, .12) 0px 12px 45px 0px;--page: 1200px;--gutter: clamp(1.25rem, 4vw, 2.5rem);--section-y: clamp(4rem, 8vw, 6rem);--ease: cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark],:root:not([data-theme=light]){--dark-bg: #0c0a09;--dark-bg-blur: rgba(12, 10, 9, .9);--dark-surface: #1c1917;--dark-surface-2: #141110;--dark-border: #2c2825;--dark-border-strong: #44403c;--dark-text: #fafaf9;--dark-text-dim: #a8a29e;--dark-text-faint: #8f8880;--dark-accent-edge: #7cc4f7;--dark-accent-wash: #123c5e;--dark-accent-soft: rgba(59, 166, 241, .14);--dark-accent-line: rgba(59, 166, 241, .4);--dark-nok: #e7e5e4;--dark-img-filter: grayscale(1) contrast(1.05) brightness(.82);--dark-shadow-sm: rgba(0, 0, 0, .4) 0px 1px 2px 0px;--dark-shadow-md: rgba(0, 0, 0, .45) 0px 4px 16px 0px;--dark-shadow-xl: rgba(0, 0, 0, .6) 0px 12px 45px 0px}:root[data-theme=dark]{color-scheme:dark;--bg: var(--dark-bg);--bg-blur: var(--dark-bg-blur);--surface: var(--dark-surface);--surface-2: var(--dark-surface-2);--border: var(--dark-border);--border-strong: var(--dark-border-strong);--text: var(--dark-text);--text-dim: var(--dark-text-dim);--text-faint: var(--dark-text-faint);--accent-edge: var(--dark-accent-edge);--accent-wash: var(--dark-accent-wash);--accent-soft: var(--dark-accent-soft);--accent-line: var(--dark-accent-line);--nok: var(--dark-nok);--img-filter: var(--dark-img-filter);--shadow-sm: var(--dark-shadow-sm);--shadow-md: var(--dark-shadow-md);--shadow-xl: var(--dark-shadow-xl)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: var(--dark-bg);--bg-blur: var(--dark-bg-blur);--surface: var(--dark-surface);--surface-2: var(--dark-surface-2);--border: var(--dark-border);--border-strong: var(--dark-border-strong);--text: var(--dark-text);--text-dim: var(--dark-text-dim);--text-faint: var(--dark-text-faint);--accent-edge: var(--dark-accent-edge);--accent-wash: var(--dark-accent-wash);--accent-soft: var(--dark-accent-soft);--accent-line: var(--dark-accent-line);--nok: var(--dark-nok);--img-filter: var(--dark-img-filter);--shadow-sm: var(--dark-shadow-sm);--shadow-md: var(--dark-shadow-md);--shadow-xl: var(--dark-shadow-xl)}}html{scroll-behavior:smooth;scroll-padding-top:5.5rem;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:1rem;line-height:1.69;letter-spacing:.003em;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:96px 96px;opacity:.4;mask-image:radial-gradient(ellipse 110% 60% at 50% 0%,#000 10%,transparent 65%)}main{position:relative;z-index:1}img,svg,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none}::selection{background:var(--accent-wash);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.wrap{width:100%;max-width:var(--page);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-y)}.rule{height:1px;border:0;background:var(--border)}.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase;color:var(--text-dim);margin-bottom:1rem}.eyebrow:before{content:"";width:28px;height:1px;background:var(--accent)}h1,h2,h3{font-family:var(--font-display);font-weight:400;color:var(--text);text-wrap:balance}h1{font-size:clamp(2.4rem,5.2vw,3.25rem);line-height:1.12;letter-spacing:-.021em}h2{font-size:clamp(1.75rem,3.4vw,2rem);line-height:1.25;letter-spacing:-.025em}h3{font-size:1.25rem;font-weight:500;line-height:1.2;letter-spacing:-.005em}.lede{font-size:1rem;line-height:1.69;letter-spacing:.003em;color:var(--text-dim);max-width:62ch;text-wrap:pretty}.mono{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.004em;color:var(--text-dim)}.hl{color:var(--accent-edge);background:var(--accent-wash);padding:.05em .3em;border-radius:4px;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-full);border:1px solid var(--accent-edge);background:var(--accent);color:var(--on-accent);font-family:var(--font-sans);font-weight:500;font-size:.875rem;line-height:1.5;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}.btn:hover{filter:brightness(.94);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn--ghost{background:transparent;border-color:var(--border);color:var(--text);font-weight:400}.btn--ghost:hover{background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);transition:border-color .25s var(--ease),transform .25s var(--ease)}.tag-row{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.004em;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:.15rem .7rem;white-space:nowrap}.tag--accent{color:var(--accent-edge);border-color:var(--accent-line);background:var(--accent-soft)}[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform}[data-reveal].is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}}.prose{max-width:68ch}.prose>*+*{margin-top:1.1rem}.prose h2{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--border)}.prose h3{margin-top:2rem}.prose p,.prose li{color:var(--text-dim)}.prose strong{color:var(--text);font-weight:500}.prose ul,.prose ol{padding-left:1.2rem}.prose li::marker{color:var(--accent)}.prose a{color:var(--accent-edge);border-bottom:1px solid var(--accent-line)}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.1rem .35rem;color:var(--text)}.prose pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.15rem;overflow-x:auto;font-size:.82rem;box-shadow:var(--shadow-md)}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose blockquote{border-left:2px solid var(--accent);padding-left:1.1rem;color:var(--text);font-family:var(--font-display);font-weight:400;font-size:1.25rem;letter-spacing:-.01em}.prose table{width:100%;border-collapse:collapse;font-size:.875rem}.prose th,.prose td{border:1px solid var(--border);padding:.55rem .8rem;text-align:left}.prose th{font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase;color:var(--text-dim);background:var(--surface-2)}.toggle[data-astro-cid-x3pjskd3]{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex-shrink:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-dim);cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease)}.toggle[data-astro-cid-x3pjskd3]:hover{color:var(--accent-edge);border-color:var(--accent-line)}.toggle[data-astro-cid-x3pjskd3] svg[data-astro-cid-x3pjskd3]{width:17px;height:17px}.sun[data-astro-cid-x3pjskd3]{display:none}.toggle[data-astro-cid-x3pjskd3][data-mode=dark] .sun[data-astro-cid-x3pjskd3]{display:block}.toggle[data-astro-cid-x3pjskd3][data-mode=dark] .moon[data-astro-cid-x3pjskd3]{display:none}.bar[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s}.bar[data-astro-cid-dmqpwcec].is-stuck,.bar[data-astro-cid-dmqpwcec].is-open{background:var(--bg-blur);backdrop-filter:blur(14px);border-bottom-color:var(--border)}.inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:1.5rem;height:4.5rem}.brand[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:.7rem;margin-right:auto}.mark[data-astro-cid-dmqpwcec]{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:var(--radius-sm);border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-edge);font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.004em}.brand-text[data-astro-cid-dmqpwcec]{display:flex;flex-direction:column;line-height:1.3}.brand-text[data-astro-cid-dmqpwcec] strong[data-astro-cid-dmqpwcec]{font-size:.875rem;font-weight:500}.brand-text[data-astro-cid-dmqpwcec] em[data-astro-cid-dmqpwcec]{font-family:var(--font-sans);font-style:normal;font-size:.75rem;letter-spacing:.025em;text-transform:uppercase;color:var(--text-dim)}.links[data-astro-cid-dmqpwcec]{display:flex;gap:1.15rem}.links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{font-size:.875rem;color:var(--text-dim);position:relative;white-space:nowrap;transition:color .2s var(--ease)}.links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover,.links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec][aria-current=page]{color:var(--text)}.links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover:after,.links[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec][aria-current=page]:after{transform:scaleX(1)}.cta[data-astro-cid-dmqpwcec]{padding:.4rem .95rem;font-size:.8125rem}.nav-toggle[data-astro-cid-dmqpwcec]{display:none;flex-direction:column;justify-content:center;gap:5px;width:2.4rem;height:2.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.nav-toggle[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]{height:1.5px;width:16px;margin-inline:auto;background:var(--text)}.mobile[data-astro-cid-dmqpwcec]{display:none;flex-direction:column;padding:.5rem var(--gutter) 1.2rem}.mobile[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]{padding:.7rem 0;border-bottom:1px solid var(--border);color:var(--text-dim);font-size:.95rem}@media(max-width:1040px){.links[data-astro-cid-dmqpwcec],.cta[data-astro-cid-dmqpwcec]{display:none}.nav-toggle[data-astro-cid-dmqpwcec]{display:flex}.mobile[data-astro-cid-dmqpwcec]:not([hidden]){display:flex}}.foot[data-astro-cid-sz7xmlte]{position:relative;z-index:1}.inner[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;padding-block:2.5rem 3rem}.social[data-astro-cid-sz7xmlte]{display:flex;gap:1.3rem;margin-inline:auto}.social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte],.social[data-astro-cid-sz7xmlte] .email[data-astro-cid-sz7xmlte]{font-size:.85rem;color:var(--text-dim);transition:color .2s var(--ease)}.social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover,.social[data-astro-cid-sz7xmlte] .email[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.built[data-astro-cid-sz7xmlte]{color:var(--text-dim)}@media(max-width:720px){.social[data-astro-cid-sz7xmlte]{margin-inline:0;width:100%;order:-1}}.skip[data-astro-cid-5hce7sga]{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:var(--on-accent);padding:.6rem 1rem;font-weight:500;border-radius:0 0 8px}.skip[data-astro-cid-5hce7sga]:focus{left:0}
