@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap'); @import 'tailwindcss'; @import '@nuxt/ui'; @theme static { --font-sans: 'IBM Plex Sans', ui-sans-serif, system-ui, sans-serif; --font-serif: 'Source Serif 4', ui-serif, Georgia, serif; --font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, monospace; --color-ink-50: #fafafa; --color-ink-100: #f2f2f2; --color-ink-200: #e5e5e5; --color-ink-300: #cccccc; --color-ink-400: #999999; --color-ink-500: #666666; --color-ink-600: #444444; --color-ink-700: #333333; --color-ink-800: #222222; --color-ink-900: #111111; --color-ink-950: #0a0a0a; --color-chalk-50: #fafafa; --color-chalk-100: #f3f2f0; --color-chalk-200: #e6e4e0; --color-chalk-300: #cfccc7; --color-chalk-400: #999999; --color-chalk-450: #8a8783; --color-chalk-500: #666666; --color-chalk-600: #444444; --color-chalk-700: #333333; --color-chalk-800: #222222; --color-chalk-850: #1a1a1a; --color-chalk-900: #111111; --color-chalk-950: #0a0a0a; --color-sand-50: #f7f4ef; --color-sand-100: #f0eae1; --color-sand-200: #e8dfd1; --color-sand-300: #d4c5b0; --color-sand-400: #bba88e; --color-sand-500: #9c8a70; --color-sand-600: #7d6d56; --color-sand-700: #635643; --color-sand-800: #4a4033; --color-sand-900: #322b23; --color-sand-950: #211c17; --color-moss-50: #f0faf0; --color-moss-100: #e1f3e1; --color-moss-200: #c7e2c7; --color-moss-300: #a3caa3; --color-moss-400: #7fac7f; --color-moss-500: #5f8e60; --color-moss-600: #457347; --color-moss-700: #315b33; --color-moss-800: #1f4422; --color-moss-900: #143015; --color-moss-950: #081e0a; --color-slate-50: #f0f8ff; --color-slate-100: #e2effa; --color-slate-200: #c8dcee; --color-slate-300: #a5c2db; --color-slate-400: #81a3c0; --color-slate-500: #6284a2; --color-slate-600: #486a86; --color-slate-700: #34536d; --color-slate-800: #223d53; --color-slate-900: #162b3c; --color-slate-950: #0a1a26; --color-ochre-50: #fff5e8; --color-ochre-100: #fdead1; --color-ochre-200: #f1d4ad; --color-ochre-300: #dfb67d; --color-ochre-400: #c4954f; --color-ochre-500: #a67628; --color-ochre-600: #8a5b00; --color-ochre-700: #6c4700; --color-ochre-800: #503400; --color-ochre-900: #3a2400; --color-ochre-950: #241500; --color-brick-50: #fef4f2; --color-brick-100: #ffe7e2; --color-brick-200: #ffcbc2; --color-brick-300: #fba394; --color-brick-400: #e37e6e; --color-brick-500: #c45d4e; --color-brick-600: #a54134; --color-brick-700: #882c21; --color-brick-800: #6a1a11; --color-brick-900: #4d0f08; --color-brick-950: #330503; --text-xs: 0.75rem; --text-xs--line-height: 16px; --text-sm: 0.8125rem; --text-sm--line-height: 20px; --text-base: 0.875rem; --text-base--line-height: 22px; --text-lg: 1rem; --text-lg--line-height: 24px; --text-xl: 1.25rem; --text-xl--line-height: 28px; --text-2xl: 1.75rem; --text-2xl--line-height: 36px; --text-3xs: 0.625rem; --text-3xs--line-height: 16px; --text-2xs: 0.6875rem; --text-2xs--line-height: 20px; --text-md: 0.9375rem; --text-md--line-height: 22px; --text-lead: 1.125rem; --text-lead--line-height: 26px; --text-stat-sm: 1.375rem; --text-stat-sm--line-height: 32px; --text-stat: 1.5rem; --text-stat--line-height: 32px; --text-code: 0.75rem; --text-code--line-height: 19px; --breakpoint-xs: 22.5rem; --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --shadow-popover: 0 4px 16px rgb(17 17 17 / 0.08), 0 1px 2px rgb(17 17 17 / 0.06); --shadow-modal: 0 16px 48px rgb(17 17 17 / 0.18); --shadow-flag: inset 2px 0 0 var(--ui-warning); --ease-standard: cubic-bezier(0.2, 0, 0, 1); --ease-enter: cubic-bezier(0, 0, 0, 1); --ease-exit: cubic-bezier(0.4, 0, 1, 1); } :root { --ui-radius: 0rem; --ui-header-height: 3rem; --ui-container: 72rem; --duration-fast: 120ms; --duration-base: 180ms; --duration-slow: 240ms; --z-sticky: 10; --z-sidebar: 20; --z-banner: 30; --z-popover: 40; --z-overlay: 50; --z-toast: 60; --z-tooltip: 70; --ui-bg: var(--color-white); --ui-bg-muted: var(--color-chalk-50); --ui-bg-elevated: var(--color-chalk-100); --ui-bg-accented: var(--color-chalk-200); --ui-bg-inverted: var(--color-chalk-900); --ui-text-dimmed: var(--color-chalk-400); --ui-text-muted: var(--color-chalk-500); --ui-text-toned: var(--color-chalk-600); --ui-text: var(--color-chalk-800); --ui-text-highlighted: var(--color-chalk-900); --ui-text-inverted: var(--color-white); --ui-border: var(--color-chalk-200); --ui-border-muted: var(--color-chalk-100); --ui-border-accented: var(--color-chalk-450); --ui-border-inverted: var(--color-chalk-900); --ui-primary: var(--ui-color-primary-900); --ui-secondary: var(--ui-color-secondary-700); --ui-success: var(--ui-color-success-700); --ui-info: var(--ui-color-info-700); --ui-warning: var(--ui-color-warning-700); --ui-error: var(--ui-color-error-700); --rc-sand: #e8dfd1; --rc-on-sand: #111111; --rc-success-soft: #eaefea; --rc-info-soft: #ebeef0; --rc-warning-soft: #f0ede6; --rc-error-soft: #f3eae9; --rc-overlay: rgb(10 10 10 / 0.4); --rc-shadow-pop: var(--shadow-popover); --rc-shadow-modal: var(--shadow-modal); } .dark { --ui-bg: var(--color-chalk-900); --ui-bg-muted: var(--color-chalk-950); --ui-bg-elevated: var(--color-chalk-850); --ui-bg-accented: var(--color-chalk-800); --ui-bg-inverted: var(--color-chalk-50); --ui-text-dimmed: var(--color-chalk-500); --ui-text-muted: var(--color-chalk-400); --ui-text-toned: var(--color-chalk-300); --ui-text: var(--color-chalk-200); --ui-text-highlighted: var(--color-chalk-50); --ui-text-inverted: var(--color-chalk-900); --ui-border: var(--color-chalk-700); --ui-border-muted: var(--color-chalk-800); --ui-border-accented: var(--color-chalk-500); --ui-border-inverted: var(--color-chalk-50); --ui-primary: var(--ui-color-primary-50); --ui-secondary: var(--ui-color-secondary-300); --ui-success: var(--ui-color-success-300); --ui-info: var(--ui-color-info-300); --ui-warning: var(--ui-color-warning-300); --ui-error: var(--ui-color-error-300); --rc-sand: #d4c5b0; --rc-on-sand: #111111; --rc-success-soft: #1f241f; --rc-info-soft: #202428; --rc-warning-soft: #2a251e; --rc-error-soft: #2c201f; --rc-overlay: rgb(0 0 0 / 0.6); --shadow-popover: 0 4px 16px rgb(0 0 0 / 0.5); --shadow-modal: 0 16px 48px rgb(0 0 0 / 0.6); } body { background: var(--ui-bg-muted); color: var(--ui-text); font-family: var(--font-sans); font-size: var(--text-sm); line-height: var(--text-sm--line-height); -webkit-font-smoothing: antialiased; } .article-content { font-family: var(--font-serif); font-size: 1.0625rem; line-height: 1.75rem; color: var(--ui-text-highlighted); max-width: 42rem; overflow-wrap: break-word; } .article-content > :first-child { margin-top: 0; } .article-content h1, .article-content h2, .article-content h3, .article-content h4 { font-weight: 600; text-wrap: balance; color: var(--ui-text-highlighted); } .article-content h1 { font-size: 1.75rem; line-height: 2.25rem; margin: 0 0 1rem; } .article-content h2 { font-size: 1.4375rem; line-height: 1.9375rem; margin: 2.5rem 0 0.75rem; } .article-content h3 { font-size: 1.1875rem; line-height: 1.75rem; margin: 2rem 0 0.5rem; } .article-content h4 { font-size: 1.0625rem; line-height: 1.625rem; margin: 1.5rem 0 0.5rem; } .article-content p { font-size: 1.0625rem; line-height: 1.75rem; margin: 0 0 1.25rem; } .article-content ul, .article-content ol { margin: 0 0 1.25rem; padding-left: 1.75rem; } .article-content ul { list-style: square; } .article-content ol { list-style: decimal; } .article-content li { margin: 0 0 0.375rem; } .article-content li > p { margin: 0; } .article-content li::marker { color: var(--ui-text-muted); } .article-content [data-indent='1'] { padding-left: 1.5rem; } .article-content [data-indent='2'] { padding-left: 3rem; } .article-content [data-indent='3'] { padding-left: 4.5rem; } .article-content [data-indent='4'] { padding-left: 6rem; } .article-content blockquote { margin: 1.75rem 0; padding-left: 1.25rem; border-left: 2px solid var(--ui-primary); font-style: italic; color: var(--ui-text-toned); } .article-content a { color: var(--ui-text-highlighted); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; } .article-content a:hover { text-decoration-thickness: 2px; } .article-content img { display: block; max-width: 100%; height: auto; margin: 1.75rem 0; } .article-content figure { margin: 1.75rem 0; } .article-content figure img { margin: 0; } .article-content figcaption { margin-top: 0.5rem; font-family: var(--font-sans); font-size: 0.8125rem; line-height: 1.25rem; color: var(--ui-text-muted); } @media (min-width: 48rem) { .article-content h1 { font-size: 2rem; line-height: 2.5rem; } .article-content h2 { font-size: 1.625rem; line-height: 2.125rem; } .article-content h3 { font-size: 1.3125rem; line-height: 1.875rem; } .article-content h4 { font-size: 1.125rem; line-height: 1.75rem; } .article-content p { font-size: 1.125rem; line-height: 1.875rem; } .article-content { font-size: 1.125rem; line-height: 1.875rem; } .article-content figcaption { font-size: 0.875rem; } } @media (prefers-reduced-motion: reduce) { *, ::before, ::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } .animate-spin { animation-duration: 1.6s !important; animation-iteration-count: infinite !important; } } .shiki-block :where(pre.shiki) { margin: 0; padding: 0; background-color: transparent !important; } .shiki-block :where(pre.shiki), .shiki-block :where(pre.shiki span) { color: var(--shiki-light); } .dark .shiki-block :where(pre.shiki), .dark .shiki-block :where(pre.shiki span) { color: var(--shiki-dark); }