*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__astro{isolation:isolate}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:2px}button{background:none;border:none;padding:0;cursor:pointer}:root{--color-bg: #ffffff;--color-bg-elevated: #f5f5f7;--color-bg-inverse: #1d1d1f;--color-fg: #1d1d1f;--color-fg-soft: #424245;--color-fg-inverse: #f5f5f7;--color-muted: #6e6e73;--color-divider: #d2d2d7;--color-divider-strong: #86868b;--color-accent: #0071e3;--color-accent-hover: #0077ed;--color-accent-fg: #ffffff;--color-success: #1a8754;--color-danger: #b3261e;--color-code-bg: #f5f5f7;--color-code-fg: #1d1d1f;--color-selection-bg: #b3d4ff;--color-overlay: rgba(255, 255, 255, .72);--color-scrim: rgba(255, 255, 255, .94);--color-focus-ring: rgba(0, 113, 227, .35);--color-code-trace: #aeaeb2;--tint-strength: .08;--hue-blue: #2997ff;--hue-teal: #40c8e0;--hue-green: #32d74b;--hue-violet: #bf5af2;--hue-amber: #ff9f0a;--hue-indigo: #5e5ce6;--hue-rose: #ff375f;--font-display: "Satoshi-Variable", "Satoshi", -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--font-sans: var(--font-display);--font-mono: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: 2rem;--fs-section: clamp(2.25rem, 1.5vw + 1.5rem, 3rem);--fs-4xl: clamp(2.25rem, 2.5vw + 1rem, 3.25rem);--fs-page: clamp(2.5rem, 4vw + 1rem, 4.25rem);--fs-display: clamp(3.5rem, 7vw, 7rem);--lh-tight: 1.05;--lh-snug: 1.15;--lh-normal: 1.45;--lh-relaxed: 1.6;--tracking-tight: -.04em;--tracking-snug: -.02em;--tracking-normal: -.005em;--tracking-wide: .08em;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 900;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 40px;--space-7: 64px;--space-8: 96px;--space-9: 128px;--space-10: 192px;--measure: 52rem;--measure-prose: 40rem;--measure-lead: 36rem;--container-max: 1240px;--container-px: clamp(20px, 4vw, 48px);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 28px;--radius-pill: 980px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--shadow-2: 0 12px 32px rgba(0, 0, 0, .08);--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-emph: cubic-bezier(.16, 1, .3, 1);--dur-fast: .16s;--dur-base: .32s;--dur-slow: .6s;--dur-blink: 1.1s;--dur-tint: 1.2s;--print-root-size: 9pt;color-scheme:light}@media screen{:root[data-theme=dark]{--color-bg: #000000;--color-bg-elevated: #161617;--color-bg-inverse: #f5f5f7;--color-fg: #f5f5f7;--color-fg-soft: #d2d2d7;--color-fg-inverse: #1d1d1f;--color-muted: #86868b;--color-divider: #2a2a2c;--color-divider-strong: #424245;--color-accent: #2997ff;--color-accent-hover: #5cb0ff;--color-accent-fg: #000000;--color-code-bg: #161617;--color-code-fg: #f5f5f7;--color-selection-bg: #1f3a6b;--color-overlay: rgba(0, 0, 0, .6);--color-scrim: rgba(0, 0, 0, .92);--color-focus-ring: rgba(41, 151, 255, .45);--color-code-trace: #5a5a5e;--tint-strength: .16;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .3);--shadow-2: 0 12px 32px rgba(0, 0, 0, .5);color-scheme:dark}}html{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);font-size:16px;line-height:var(--lh-normal);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-padding-top:80px}body{min-height:100%;display:flex;flex-direction:column;color:var(--color-fg);font-feature-settings:"ss01","ss03","cv11"}::selection{background:var(--color-selection-bg);color:var(--color-fg)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--tracking-snug);color:var(--color-fg)}h1{font-size:var(--fs-4xl)}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-2xl)}h4{font-size:var(--fs-xl)}p{margin:0}a{color:var(--color-accent);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:none;box-shadow:0 0 0 4px var(--color-focus-ring);border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-px)}.skip{position:absolute;left:var(--space-3);top:var(--space-3);z-index:100;background:var(--color-fg);color:var(--color-bg);padding:10px 16px;border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-decoration:none;transform:translateY(-200%);transition:transform var(--dur-fast) var(--ease-out)}.skip:focus{transform:translateY(0);outline:none;box-shadow:0 0 0 4px var(--color-focus-ring)}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--page-tint, transparent);opacity:0;transition:opacity var(--dur-tint) var(--ease-out),background-color var(--dur-tint) var(--ease-out)}html[data-tinted] body:before{opacity:calc(var(--tint-strength) * var(--tint-scale, 1))}@media print{body:before{display:none}}@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-group(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-emph)}::view-transition-group(root){animation-duration:var(--dur-base)}}.eyebrow{font-family:var(--font-sans);font-size:clamp(.75rem,.2vw + .7rem,.875rem);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-muted)}.pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:12px 22px;border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1;text-decoration:none;border:1px solid transparent;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.pill.primary{background:var(--color-accent);color:var(--color-accent-fg)}.pill.primary:hover{background:var(--color-accent-hover);color:var(--color-accent-fg)}.pill.secondary{background:transparent;color:var(--color-fg);border-color:var(--color-divider-strong)}.pill.secondary:hover{border-color:var(--color-fg);color:var(--color-fg)}.pill.compact{padding:8px 14px;font-size:var(--fs-xs)}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity var(--dur-slow) var(--ease-emph),transform var(--dur-slow) var(--ease-emph);will-change:opacity,transform}[data-reveal][data-revealed=true]{opacity:1;transform:none}.prose{max-width:var(--measure-prose);font-size:var(--fs-lg);line-height:var(--lh-relaxed);color:var(--color-fg);font-weight:var(--fw-regular)}.prose>*+*{margin-top:var(--space-5)}.prose h2{margin-top:var(--space-7);font-size:var(--fs-2xl);letter-spacing:var(--tracking-snug)}.prose h3{margin-top:var(--space-6);font-size:var(--fs-xl)}.prose p{font-size:var(--fs-lg);letter-spacing:var(--tracking-normal)}.prose ul,.prose ol{padding-left:var(--space-5)}.prose li+li{margin-top:var(--space-2)}.prose blockquote{border-left:2px solid var(--color-fg);padding-left:var(--space-5);color:var(--color-fg-soft);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.92em;background:var(--color-code-bg);color:var(--color-code-fg);padding:.1em .4em;border-radius:var(--radius-sm);border:1px solid var(--color-divider)}.prose pre{font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--color-code-bg);color:var(--color-code-fg);padding:var(--space-5);border-radius:var(--radius-lg);overflow-x:auto;border:1px solid var(--color-divider)}.prose pre code{background:transparent;padding:0;border:0;border-radius:0}.prose pre.astro-code{white-space:pre!important;word-wrap:normal!important}:root[data-theme=dark] .prose pre.astro-code{background-color:var(--shiki-dark-bg, var(--color-code-bg))!important;color:var(--shiki-dark, var(--color-code-fg))!important}:root[data-theme=dark] .prose pre.astro-code span{color:var(--shiki-dark, inherit)!important;background-color:var(--shiki-dark-bg, transparent)!important}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:var(--fs-md)}.prose th,.prose td{padding:var(--space-2) var(--space-4) var(--space-2) 0;border-bottom:1px solid var(--color-divider);text-align:left;vertical-align:top}.prose th{font-weight:var(--fw-semibold);border-bottom-color:var(--color-divider-strong)}.prose img,.prose video{border-radius:var(--radius-lg);border:1px solid var(--color-divider)}.prose-drop>p:first-of-type:first-letter{font-family:var(--font-display);font-size:4em;font-weight:var(--fw-black);line-height:.85;float:left;margin:.05em .12em 0 0;letter-spacing:var(--tracking-tight);color:var(--color-fg)}@supports (initial-letter: 3) or (-webkit-initial-letter: 3){.prose-drop>p:first-of-type:first-letter{float:none;font-size:inherit;line-height:inherit;-webkit-initial-letter:3;initial-letter:3;margin:0 .12em 0 0}}.prose .bleed{max-width:var(--container-max);width:calc(100vw - var(--container-px) * 2);margin-inline:calc(-1 * (50vw - var(--measure-prose) / 2 - var(--container-px)));margin-left:50%;transform:translate(-50%)}@media(max-width:900px){.prose .bleed{width:100%;margin-left:0;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:80ms!important;animation-iteration-count:1!important;transition-duration:80ms!important;scroll-behavior:auto!important}[data-reveal]{transform:none}}.theme-toggle[data-astro-cid-x3pjskd3]{width:36px;height:36px;border-radius:var(--radius-pill);border:1px solid var(--color-divider);color:var(--color-fg);background:transparent;display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.theme-toggle[data-astro-cid-x3pjskd3]:hover{border-color:var(--color-divider-strong);background:var(--color-bg-elevated)}.theme-toggle[data-astro-cid-x3pjskd3]:focus-visible{outline:none;box-shadow:0 0 0 4px var(--color-focus-ring)}.icon[data-astro-cid-x3pjskd3]{position:absolute;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-emph)}.sun[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(-90deg) scale(.6)}:root[data-theme=dark] .sun[data-astro-cid-x3pjskd3]{opacity:1;transform:none}:root[data-theme=dark] .moon[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(90deg) scale(.6)}@media(prefers-reduced-motion:reduce){.icon[data-astro-cid-x3pjskd3]{transition:none}}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:20;background:var(--color-overlay);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:inset 0 -1px 0 var(--color-divider);transition:padding var(--dur-base) var(--ease-out)}.row[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-3);transition:padding-block var(--dur-base) var(--ease-out)}.site-header[data-astro-cid-3ef6ksr2][data-scrolled] .row[data-astro-cid-3ef6ksr2]{padding-block:6px}.brand[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-fg);text-decoration:none;font-weight:var(--fw-semibold);font-size:var(--fs-md);letter-spacing:var(--tracking-snug)}.initials[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--color-fg);color:var(--color-bg);font-size:11px;font-weight:var(--fw-bold);letter-spacing:.04em}.word[data-astro-cid-3ef6ksr2]{white-space:nowrap}.actions[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:var(--space-3)}nav[data-astro-cid-3ef6ksr2]{flex:1;display:flex;justify-content:center}.links[data-astro-cid-3ef6ksr2]{list-style:none;padding:0;margin:0;display:flex;gap:var(--space-6)}.link[data-astro-cid-3ef6ksr2]{color:var(--color-fg);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);opacity:.85;padding:12px var(--space-2);margin-inline:calc(-1 * var(--space-2));border-radius:var(--radius-md);transition:opacity var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.link[data-astro-cid-3ef6ksr2]:hover{opacity:1}.link[data-astro-cid-3ef6ksr2]{position:relative}.link[data-astro-cid-3ef6ksr2].active{opacity:1;color:var(--color-fg)}.link[data-astro-cid-3ef6ksr2].active:after{content:"";position:absolute;left:50%;bottom:var(--space-1);width:4px;height:4px;border-radius:var(--radius-pill);background:currentColor;transform:translate(-50%)}@media(max-width:640px){.word[data-astro-cid-3ef6ksr2]{display:none}.links[data-astro-cid-3ef6ksr2]{gap:var(--space-4)}}.site-footer[data-astro-cid-sz7xmlte]{margin-top:var(--space-9);background:var(--color-bg-elevated);color:var(--color-muted);padding-block:var(--space-6) var(--space-7);border-top:1px solid var(--color-divider)}.fine[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:var(--space-4)}.line[data-astro-cid-sz7xmlte]{font-size:var(--fs-sm);margin:0}.meta[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-5);font-size:var(--fs-sm)}.meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--color-muted);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-fg)}main{flex:1}
