:root{--dp-bg: #ffffff;--dp-bg-soft: oklch(96.8% 0.007 247.896);--dp-text: oklch(20.8% 0.042 265.755);--dp-text-soft: oklch(55.4% 0.046 257.417);--dp-border: oklch(92.9% 0.013 255.508);--dp-rule: oklch(92.9% 0.013 255.508);--dp-accent: oklch(51.1% 0.262 276.966);--dp-accent-soft: oklch(96.2% 0.018 272.314);--dp-shadow: rgba(15, 23, 42, 0.12);--dp-radius: 0.375rem;--dp-font: var(--font-sans, ui-sans-serif, system-ui, sans-serif);--dp-font-mono: var(--font-mono, ui-monospace, monospace);--dp-content-width: none;--dp-sidebar-width: 15.5rem;--dp-toc-width: 13rem}@layer properties;@layer theme, base, components, utilities;@layer theme{:root, :host{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50: oklch(98.7% 0.022 95.277);--color-amber-200: oklch(92.4% 0.12 95.746);--color-amber-400: oklch(82.8% 0.189 84.429);--color-amber-800: oklch(47.3% 0.137 46.201);--color-amber-950: oklch(27.9% 0.077 45.635);--color-indigo-50: oklch(96.2% 0.018 272.314);--color-indigo-300: oklch(78.5% 0.115 274.713);--color-indigo-400: oklch(67.3% 0.182 276.935);--color-indigo-600: oklch(51.1% 0.262 276.966);--color-indigo-700: oklch(45.7% 0.24 277.023);--color-slate-100: oklch(96.8% 0.007 247.896);--color-slate-200: oklch(92.9% 0.013 255.508);--color-slate-400: oklch(70.4% 0.04 256.788);--color-slate-500: oklch(55.4% 0.046 257.417);--color-slate-600: oklch(44.6% 0.043 257.281);--color-slate-800: oklch(27.9% 0.041 260.031);--color-slate-900: oklch(20.8% 0.042 265.755);--color-slate-950: oklch(12.9% 0.042 264.695);--color-white: #fff;--spacing: 0.25rem;--container-sm: 24rem;--text-xs: 0.75rem;--text-xs--line-height: calc(1 / 0.75);--text-sm: 0.875rem;--text-sm--line-height: calc(1.25 / 0.875);--text-base: 1rem;--text-base--line-height: calc(1.5 / 1);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--font-weight-medium: 500;--font-weight-semibold: 600;--tracking-tight: -0.025em;--tracking-wide: 0.025em;--radius-md: 0.375rem;--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*, ::after, ::before, ::backdrop, ::file-selector-button{box-sizing: border-box;margin: 0;padding: 0;border: 0 solid}html, :host{line-height: 1.5;-webkit-text-size-adjust: 100%;tab-size: 4;font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings: var(--default-font-feature-settings, normal);font-variation-settings: var(--default-font-variation-settings, normal);-webkit-tap-highlight-color: transparent}hr{height: 0;color: inherit;border-top-width: 1px}abbr:where([title]){-webkit-text-decoration: underline dotted;text-decoration: underline dotted}h1, h2, h3, h4, h5, h6{font-size: inherit;font-weight: inherit}a{color: inherit;-webkit-text-decoration: inherit;text-decoration: inherit}b, strong{font-weight: bolder}code, kbd, samp, pre{font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings: var(--default-mono-font-feature-settings, normal);font-variation-settings: var(--default-mono-font-variation-settings, normal);font-size: 1em}small{font-size: 80%}sub, sup{font-size: 75%;line-height: 0;position: relative;vertical-align: baseline}sub{bottom: -0.25em}sup{top: -0.5em}table{text-indent: 0;border-color: inherit;border-collapse: collapse}:-moz-focusring:where(:not(iframe)){outline: auto}progress{vertical-align: baseline}summary{display: list-item}ol, ul, menu{list-style: none}img, svg, video, canvas, audio, iframe, embed, object{display: block;vertical-align: middle}img, video{max-width: 100%;height: auto}button, input, select, optgroup, textarea, ::file-selector-button{font: inherit;font-feature-settings: inherit;font-variation-settings: inherit;letter-spacing: inherit;color: inherit;border-radius: 0;background-color: transparent;opacity: 1}:where(select:is([multiple], [size])) optgroup{font-weight: bolder}:where(select:is([multiple], [size])) optgroup option{padding-inline-start: 20px}::file-selector-button{margin-inline-end: 4px}::placeholder{opacity: 1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color: currentcolor;@supports (color: color-mix(in lab, red, red)){color: color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize: vertical}::-webkit-search-decoration{-webkit-appearance: none}::-webkit-date-and-time-value{min-height: 1lh;text-align: inherit}::-webkit-datetime-edit{display: inline-flex}::-webkit-datetime-edit-fields-wrapper{padding: 0}::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field{padding-block: 0}::-webkit-calendar-picker-indicator{line-height: 1}:-moz-ui-invalid{box-shadow: none}button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button{appearance: button}::-webkit-inner-spin-button, ::-webkit-outer-spin-button{height: auto}[hidden]:where(:not([hidden="until-found"])){display: none !important}}@layer utilities{.\!static{position: static !important}.my-8{margin-block: calc(var(--spacing) * 8)}.mt-3{margin-top: calc(var(--spacing) * 3)}.mb-1{margin-bottom: var(--spacing)}.mb-2{margin-bottom: calc(var(--spacing) * 2)}.mb-6{margin-bottom: calc(var(--spacing) * 6)}.\!inline-flex{display: inline-flex !important}.block{display: block}.flex{display: flex}.inline-block{display: inline-block}.h-full{height: 100%}.\!w-auto{width: auto !important}.w-80{width: calc(var(--spacing) * 80)}.max-w-full{max-width: 100%}.max-w-sm{max-width: var(--container-sm)}.columns-2{columns: 2}.break-inside-avoid{break-inside: avoid}.flex-wrap{flex-wrap: wrap}.items-center{align-items: center}.justify-center{justify-content: center}.gap-3{gap: calc(var(--spacing) * 3)}.gap-6{gap: calc(var(--spacing) * 6)}.gap-10{gap: calc(var(--spacing) * 10)}.rounded{border-radius: 0.25rem}.rounded-md{border-radius: var(--radius-md)}.border{border-style: var(--tw-border-style);border-width: 1px}.border-0{border-style: var(--tw-border-style);border-width: 0px}.border-t{border-top-style: var(--tw-border-style);border-top-width: 1px}.border-b{border-bottom-style: var(--tw-border-style);border-bottom-width: 1px}.border-l{border-left-style: var(--tw-border-style);border-left-width: 1px}.border-amber-400{border-color: var(--color-amber-400)}.border-indigo-400{border-color: var(--color-indigo-400)}.border-slate-200{border-color: var(--color-slate-200)}.bg-amber-50{background-color: var(--color-amber-50)}.bg-indigo-50{background-color: var(--color-indigo-50)}.bg-transparent{background-color: transparent}.bg-white{background-color: var(--color-white)}.bg-white\/90{background-color: color-mix(in srgb, #fff 90%, transparent);@supports (color: color-mix(in lab, red, red)){background-color: color-mix(in oklab, var(--color-white) 90%, transparent)}}.p-1{padding: var(--spacing)}.p-6{padding: calc(var(--spacing) * 6)}.px-0{padding-inline: 0px}.px-2{padding-inline: calc(var(--spacing) * 2)}.px-4{padding-inline: calc(var(--spacing) * 4)}.py-1{padding-block: var(--spacing)}.pt-3{padding-top: calc(var(--spacing) * 3)}.pb-1{padding-bottom: var(--spacing)}.text-center{text-align: center}.text-2xl{font-size: var(--text-2xl);line-height: var(--tw-leading, var(--text-2xl--line-height))}.text-4xl{font-size: var(--text-4xl);line-height: var(--tw-leading, var(--text-4xl--line-height))}.text-base{font-size: var(--text-base);line-height: var(--tw-leading, var(--text-base--line-height))}.text-sm{font-size: var(--text-sm);line-height: var(--tw-leading, var(--text-sm--line-height))}.text-xs{font-size: var(--text-xs);line-height: var(--tw-leading, var(--text-xs--line-height))}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight: var(--font-weight-semibold)}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing: var(--tracking-tight)}.tracking-wide{--tw-tracking: var(--tracking-wide);letter-spacing: var(--tracking-wide)}.text-amber-800{color: var(--color-amber-800)}.text-indigo-600{color: var(--color-indigo-600)}.text-indigo-700{color: var(--color-indigo-700)}.text-slate-500{color: var(--color-slate-500)}.text-slate-600{color: var(--color-slate-600)}.text-slate-900{color: var(--color-slate-900)}.uppercase{text-transform: uppercase}.italic{font-style: italic}.no-underline{text-decoration-line: none}.\!shadow-none{--tw-shadow: 0 0 #0000 !important;box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.\[--dp-skill-color\:\#10b981\]{--dp-skill-color: #10b981}@media (hover: hover){.hover\:bg-slate-100:hover{background-color: var(--color-slate-100)}.hover\:text-slate-900:hover{color: var(--color-slate-900)}}.aria-\[current\=page\]\:bg-indigo-50[aria-current="page"]{background-color: var(--color-indigo-50)}.aria-\[current\=page\]\:font-medium[aria-current="page"]{--tw-font-weight: var(--font-weight-medium);font-weight: var(--font-weight-medium)}.aria-\[current\=page\]\:text-indigo-700[aria-current="page"]{color: var(--color-indigo-700)}@media (width >= 40rem){.sm\:columns-3{columns: 3}}@media (prefers-color-scheme: dark){.dark\:border-slate-800:where(:not(.light, .light *)){border-color: var(--color-slate-800)}}.dark\:border-slate-800:where(.dark, .dark *){border-color: var(--color-slate-800)}@media (prefers-color-scheme: dark){.dark\:bg-amber-950\/30:where(:not(.light, .light *)){background-color: color-mix(in srgb, oklch(27.9% 0.077 45.635) 30%, transparent);@supports (color: color-mix(in lab, red, red)){background-color: color-mix(in oklab, var(--color-amber-950) 30%, transparent)}}}.dark\:bg-amber-950\/30:where(.dark, .dark *){background-color: color-mix(in srgb, oklch(27.9% 0.077 45.635) 30%, transparent);@supports (color: color-mix(in lab, red, red)){background-color: color-mix(in oklab, var(--color-amber-950) 30%, transparent)}}@media (prefers-color-scheme: dark){.dark\:bg-slate-900:where(:not(.light, .light *)){background-color: var(--color-slate-900)}}.dark\:bg-slate-900:where(.dark, .dark *){background-color: var(--color-slate-900)}@media (prefers-color-scheme: dark){.dark\:bg-slate-950\/90:where(:not(.light, .light *)){background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 90%, transparent);@supports (color: color-mix(in lab, red, red)){background-color: color-mix(in oklab, var(--color-slate-950) 90%, transparent)}}}.dark\:bg-slate-950\/90:where(.dark, .dark *){background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 90%, transparent);@supports (color: color-mix(in lab, red, red)){background-color: color-mix(in oklab, var(--color-slate-950) 90%, transparent)}}@media (prefers-color-scheme: dark){.dark\:text-amber-200:where(:not(.light, .light *)){color: var(--color-amber-200)}}.dark\:text-amber-200:where(.dark, .dark *){color: var(--color-amber-200)}@media (prefers-color-scheme: dark){.dark\:text-indigo-300:where(:not(.light, .light *)){color: var(--color-indigo-300)}}.dark\:text-indigo-300:where(.dark, .dark *){color: var(--color-indigo-300)}@media (prefers-color-scheme: dark){.dark\:text-slate-100:where(:not(.light, .light *)){color: var(--color-slate-100)}}.dark\:text-slate-100:where(.dark, .dark *){color: var(--color-slate-100)}@media (prefers-color-scheme: dark){.dark\:text-slate-400:where(:not(.light, .light *)){color: var(--color-slate-400)}}.dark\:text-slate-400:where(.dark, .dark *){color: var(--color-slate-400)}@media (prefers-color-scheme: dark){@media (hover: hover){.dark\:hover\:bg-slate-800:where(:not(.light, .light *)):hover{background-color: var(--color-slate-800)}}}@media (hover: hover){.dark\:hover\:bg-slate-800:where(.dark, .dark *):hover{background-color: var(--color-slate-800)}}@media (prefers-color-scheme: dark){@media (hover: hover){.dark\:hover\:text-slate-100:where(:not(.light, .light *)):hover{color: var(--color-slate-100)}}}@media (hover: hover){.dark\:hover\:text-slate-100:where(.dark, .dark *):hover{color: var(--color-slate-100)}}@media (prefers-color-scheme: dark){.dark\:aria-\[current\=page\]\:bg-slate-800:where(:not(.light, .light *))[aria-current="page"]{background-color: var(--color-slate-800)}}.dark\:aria-\[current\=page\]\:bg-slate-800:where(.dark, .dark *)[aria-current="page"]{background-color: var(--color-slate-800)}@media (prefers-color-scheme: dark){.dark\:aria-\[current\=page\]\:text-indigo-300:where(:not(.light, .light *))[aria-current="page"]{color: var(--color-indigo-300)}}.dark\:aria-\[current\=page\]\:text-indigo-300:where(.dark, .dark *)[aria-current="page"]{color: var(--color-indigo-300)}}@property --tw-border-style{syntax: "*";inherits: false;initial-value: solid}@property --tw-font-weight{syntax: "*";inherits: false}@property --tw-tracking{syntax: "*";inherits: false}@property --tw-shadow{syntax: "*";inherits: false;initial-value: 0 0 #0000}@property --tw-shadow-color{syntax: "*";inherits: false}@property --tw-shadow-alpha{syntax: "<percentage>";inherits: false;initial-value: 100%}@property --tw-inset-shadow{syntax: "*";inherits: false;initial-value: 0 0 #0000}@property --tw-inset-shadow-color{syntax: "*";inherits: false}@property --tw-inset-shadow-alpha{syntax: "<percentage>";inherits: false;initial-value: 100%}@property --tw-ring-color{syntax: "*";inherits: false}@property --tw-ring-shadow{syntax: "*";inherits: false;initial-value: 0 0 #0000}@property --tw-inset-ring-color{syntax: "*";inherits: false}@property --tw-inset-ring-shadow{syntax: "*";inherits: false;initial-value: 0 0 #0000}@property --tw-ring-inset{syntax: "*";inherits: false}@property --tw-ring-offset-width{syntax: "<length>";inherits: false;initial-value: 0px}@property --tw-ring-offset-color{syntax: "*";inherits: false;initial-value: #fff}@property --tw-ring-offset-shadow{syntax: "*";inherits: false;initial-value: 0 0 #0000}@property --tw-backdrop-blur{syntax: "*";inherits: false}@property --tw-backdrop-brightness{syntax: "*";inherits: false}@property --tw-backdrop-contrast{syntax: "*";inherits: false}@property --tw-backdrop-grayscale{syntax: "*";inherits: false}@property --tw-backdrop-hue-rotate{syntax: "*";inherits: false}@property --tw-backdrop-invert{syntax: "*";inherits: false}@property --tw-backdrop-opacity{syntax: "*";inherits: false}@property --tw-backdrop-saturate{syntax: "*";inherits: false}@property --tw-backdrop-sepia{syntax: "*";inherits: false}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*, ::before, ::after, ::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial}}}*, *::before, *::after{box-sizing: border-box}html{scroll-behavior: smooth;scroll-padding-top: 4.5rem}body{margin: 0}.dp-skip{position: absolute;left: -100vw}.dp-skip:focus{position: fixed;left: 0.75rem;top: 0.75rem;z-index: 30;padding: 0.55rem 0.9rem;border-radius: 6px;text-decoration: none}.dp-brand{display: inline-flex;align-items: center;gap: 0.5rem}.dp-brand-logo{block-size: 1.75rem;inline-size: auto}.dp-search{margin-inline-start: auto}.dp-search input{inline-size: 100%;max-inline-size: 14rem}.dp-search-page label{display: block}.dp-search-page input{inline-size: 100%}.dp-search-results{padding-inline-start: 0;list-style: none}@media (max-width: 40rem){.dp-search input{max-inline-size: 8rem}}.dp-scheme-toggle{display: inline-flex;align-items: center;justify-content: center;inline-size: 2rem;block-size: 2rem;padding: 0;margin-inline-start: auto;cursor: pointer}.dp-search + .dp-scheme-toggle{margin-inline-start: 0}.dp-scheme-toggle[hidden]{display: none}.dp-scheme-toggle svg{inline-size: 1.1rem;block-size: 1.1rem}.dp-scheme-toggle .dp-scheme-sun, :root.dark .dp-scheme-toggle .dp-scheme-moon{display: none}:root.dark .dp-scheme-toggle .dp-scheme-sun{display: block}@media (prefers-color-scheme: dark){:root:not(.light) .dp-scheme-toggle .dp-scheme-sun{display: block}:root:not(.light) .dp-scheme-toggle .dp-scheme-moon{display: none}}.dp-header{position: sticky;top: 0;z-index: 20;display: flex;align-items: center;gap: 0.85rem;height: 3.5rem;padding: 0 1.5rem}.dp-versions{position: relative}.dp-versions > summary{cursor: pointer;list-style: none;user-select: none}.dp-versions > summary::-webkit-details-marker{display: none}.dp-versions-list{position: absolute;top: calc(100% + 0.4rem);left: 0;min-width: 8rem;margin: 0;list-style: none}.dp-shell{display: grid;grid-template-columns: var(--dp-sidebar-width) minmax(0, 1fr) var(--dp-toc-width);gap: 2.5rem;align-items: start;max-width: none;margin: 0 auto;padding: 2rem 25px 5rem}.dp-shell--wide{grid-template-columns: minmax(0, 1fr);max-width: 76rem;padding-top: 3rem}.dp-shell--wide .dp-article{max-width: none}.dp-notice{display: block;margin: 0 0 1.75rem;padding: 0.75rem 1rem;border: 1px solid var(--dp-accent);border-radius: var(--dp-radius);background: var(--dp-accent-soft);color: var(--dp-text);font-size: 0.92rem;line-height: 1.5}.dp-notice a{color: inherit;font-weight: 600}.dp-sidebar, .dp-toc{position: sticky;top: 4.5rem;max-height: calc(100vh - 6rem);overflow-y: auto}.dp-main{min-width: 0}#top:focus, #content:focus{outline: none}.dp-article{max-width: var(--dp-content-width, none)}.dp-article > *:first-child{margin-top: 0}.dp-article img{max-width: 100%;height: auto}.dp-table-scroll{max-width: 100%;overflow-x: auto}.dp-article pre{overflow-x: auto}@media (prefers-color-scheme: dark){:root:not(.light) .shiki, :root:not(.light) .shiki span{color: var(--shiki-dark) !important;background-color: var(--shiki-dark-bg) !important}}:root.dark .shiki, :root.dark .shiki span{color: var(--shiki-dark) !important;background-color: var(--shiki-dark-bg) !important}@media (max-width: 82rem){.dp-shell{grid-template-columns: var(--dp-sidebar-width) minmax(0, 1fr)}.dp-toc{display: none}}@media (max-width: 56rem){.dp-shell{grid-template-columns: minmax(0, 1fr);gap: 1.5rem;padding: 1.5rem 25px 4rem}.dp-sidebar{position: static;max-height: none;padding-bottom: 1.25rem}}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}}.dp-article h1{font-size: 2.1rem;line-height: 1.2;letter-spacing: -0.02em;margin: 0 0 0.6rem}.dp-article h2{font-size: 1.4rem;letter-spacing: -0.01em;margin: 2.75rem 0 0.9rem;padding-bottom: 0.35rem;border-bottom: 1px solid var(--dp-border)}.dp-article h3{font-size: 1.12rem;margin: 2rem 0 0.6rem}.dp-article p, .dp-article ul, .dp-article ol{margin: 0 0 1.1rem}.dp-article li + li{margin-top: 0.3rem}.dp-article img{border-radius: var(--dp-radius)}.dp-article blockquote{margin: 1.4rem 0;padding: 0.1rem 1.1rem;border-left: 3px solid var(--dp-accent);background: var(--dp-bg-soft);border-radius: 0 var(--dp-radius) var(--dp-radius) 0;color: var(--dp-text)}.dp-article hr{margin: 2.5rem 0;border: 0;border-top: 1px solid var(--dp-border)}.dp-article table{border-collapse: collapse;margin: 0 0 1.3rem;font-size: 0.93rem}.dp-article th, .dp-article td{padding: 0.45rem 0.85rem;border: 1px solid var(--dp-border);text-align: left}.dp-article th{background: var(--dp-bg-soft);font-weight: 600}.dp-article code{padding: 0.12em 0.38em;background: var(--dp-bg-soft);border: 1px solid var(--dp-border);border-radius: 4px;font-family: var(--dp-font-mono);font-size: 0.86em}.dp-article pre{margin: 0 0 1.3rem;padding: 0.95rem 1.1rem;border: 1px solid var(--dp-border);border-radius: var(--dp-radius);font-size: 0.87rem;line-height: 1.6}.dp-article pre code{padding: 0;background: none;border: 0;font-size: inherit}.dp-search input, .dp-search-page input{padding: 0.35rem 0.65rem;border: 1px solid var(--dp-border);border-radius: var(--dp-radius);background: var(--dp-bg);color: var(--dp-text);font: inherit}.dp-search-page input{padding: 0.55rem 0.8rem;font-size: 1.05rem}.dp-search-page label{margin-block-end: 0.4rem;color: var(--dp-text-soft)}.dp-search-status{color: var(--dp-text-soft)}.dp-search-results > li{padding-block: 0.6rem;border-block-end: 1px solid var(--dp-border)}.dp-search-results p{margin: 0.25rem 0 0;color: var(--dp-text-soft)}.dp-search-results mark{background: var(--dp-accent-soft);color: inherit}.dp-scheme-toggle{border: 1px solid var(--dp-border);border-radius: var(--dp-radius);background: transparent;color: var(--dp-text-soft)}.dp-scheme-toggle:hover{border-color: var(--dp-text-soft);color: var(--dp-text)}@media (prefers-color-scheme: dark){:root:not(.light){color-scheme: dark;--dp-bg: oklch(12.9% 0.042 264.695);--dp-bg-soft: oklch(20.8% 0.042 265.755);--dp-text: oklch(96.8% 0.007 247.896);--dp-text-soft: oklch(70.4% 0.04 256.788);--dp-border: oklch(27.9% 0.041 260.031);--dp-rule: oklch(27.9% 0.041 260.031);--dp-accent: oklch(78.5% 0.115 274.713);--dp-accent-soft: oklch(20.8% 0.042 265.755);--dp-shadow: rgba(0, 0, 0, 0.45)}}:root.dark{color-scheme: dark;--dp-bg: oklch(12.9% 0.042 264.695);--dp-bg-soft: oklch(20.8% 0.042 265.755);--dp-text: oklch(96.8% 0.007 247.896);--dp-text-soft: oklch(70.4% 0.04 256.788);--dp-border: oklch(27.9% 0.041 260.031);--dp-rule: oklch(27.9% 0.041 260.031);--dp-accent: oklch(78.5% 0.115 274.713);--dp-accent-soft: oklch(20.8% 0.042 265.755);--dp-shadow: rgba(0, 0, 0, 0.45)}body{background-color: var(--dp-bg);color: var(--dp-text);font-family: var(--dp-font);line-height: 1.7}a{color: var(--dp-accent)}.dp-nav .dp-nav{margin: 0.1rem 0 0.35rem 0.35rem;padding-left: 0.85rem;border-left: 1px solid var(--dp-rule)}.dp-nav, .dp-toc-list{margin: 0;padding: 0;list-style: none}.dp-nav .dp-nav .dp-nav-link[aria-current='page']{position: relative}.dp-nav .dp-nav .dp-nav-link[aria-current='page']::before{content: '';position: absolute;left: calc(-0.85rem - 1px);top: 0;bottom: 0;width: 2px;background: var(--dp-accent);border-radius: 2px}.dp-versions > summary::after{display: inline-block;margin-inline-start: 0.35rem;vertical-align: middle;content: '';width: 0.4rem;height: 0.4rem;margin-top: -0.2rem;border-right: 1.5px solid currentColor;border-bottom: 1.5px solid currentColor;transform: rotate(45deg)}.dp-versions[open] > summary::after{transform: rotate(-135deg);margin-top: 0.15rem}.dp-toc-list .dp-toc-list{border-left: 0;padding-left: 0.8rem}.dp-toc-item a{display: block;padding: 0.18rem 0 0.18rem 0.8rem;margin-left: -1px;border-left: 1px solid transparent;color: var(--dp-text-soft);text-decoration: none;line-height: 1.45}.dp-toc-item a:hover{color: var(--dp-accent);border-left-color: var(--dp-accent)}@media (max-width: 56rem){.dp-sidebar{border-bottom: 1px solid var(--dp-border)}}:root.light{color-scheme: light}@layer components{.dp-card{display: flex;flex-direction: column;margin-block-end: 1.3rem;background: var(--dp-bg);border: 1px solid var(--dp-border);border-radius: var(--dp-radius);color: inherit;text-decoration: none}.dp-card--elevated{box-shadow: 0 4px 14px var(--dp-shadow)}.dp-column > .dp-card, .dp-card-body > .dp-card:last-child{margin-block-end: 0}a.dp-card:hover{border-color: var(--dp-accent)}.dp-card-header{padding: 0.85rem 1.1rem;border-bottom: 1px solid var(--dp-border);font-weight: 600}.dp-card-body{flex: 1;padding: 1.1rem}.dp-card-footer{padding: 0.85rem 1.1rem;border-top: 1px solid var(--dp-border);font-size: 0.9rem;color: var(--dp-text-soft)}.dp-card-header > *:first-child, .dp-card-body > *:first-child, .dp-card-footer > *:first-child{margin-top: 0}.dp-card-header > *:last-child, .dp-card-body > *:last-child, .dp-card-footer > *:last-child{margin-bottom: 0}.dp-card-image{display: block;width: 100%;height: auto}.dp-card-image:first-child{border-start-start-radius: var(--dp-radius);border-start-end-radius: var(--dp-radius)}.dp-card-image:last-child{border-end-start-radius: var(--dp-radius);border-end-end-radius: var(--dp-radius)}.dp-columns{display: grid;grid-auto-flow: column;grid-auto-columns: minmax(0, 1fr);gap: 1rem;align-items: stretch;width: 100%;margin: 0 0 1.3rem}.dp-columns--twelfths{grid-auto-flow: row;grid-template-columns: repeat(12, minmax(0, 1fr))}.dp-column{min-width: 0}.dp-column--span-1{grid-column: span 1}.dp-column--span-2{grid-column: span 2}.dp-column--span-3{grid-column: span 3}.dp-column--span-4{grid-column: span 4}.dp-column--span-5{grid-column: span 5}.dp-column--span-6{grid-column: span 6}.dp-column--span-7{grid-column: span 7}.dp-column--span-8{grid-column: span 8}.dp-column--span-9{grid-column: span 9}.dp-column--span-10{grid-column: span 10}.dp-column--span-11{grid-column: span 11}.dp-column--span-12{grid-column: span 12}@media (max-width: 48rem){.dp-columns, .dp-columns--twelfths{grid-auto-flow: row;grid-template-columns: minmax(0, 1fr)}.dp-column, .dp-column[class*='dp-column--span-']{grid-column: auto}}.dp-tooltip{position: relative;display: inline-block}.dp-tooltip-trigger{border-bottom: 1px dashed currentColor;cursor: help}.dp-tooltip-bubble::after{content: '';position: absolute;inset: -0.6rem}.dp-tooltip-bubble{position: absolute;z-index: 20;width: max-content;max-width: 16rem;padding: 0.4rem 0.6rem;border-radius: var(--dp-radius);background: var(--dp-text);color: var(--dp-bg);font-size: 0.85rem;line-height: 1.35;text-align: left;visibility: hidden;opacity: 0;transition: opacity 0.12s ease, visibility 0.12s}.dp-tooltip:hover .dp-tooltip-bubble, .dp-tooltip:focus-within .dp-tooltip-bubble{visibility: visible;opacity: 1}.dp-tooltip--top .dp-tooltip-bubble{bottom: calc(100% + 0.45rem);left: 50%;translate: -50% 0}.dp-tooltip--bottom .dp-tooltip-bubble{top: calc(100% + 0.45rem);left: 50%;translate: -50% 0}.dp-tooltip--left .dp-tooltip-bubble{top: 50%;right: calc(100% + 0.45rem);translate: 0 -50%}.dp-tooltip--right .dp-tooltip-bubble{top: 50%;left: calc(100% + 0.45rem);translate: 0 -50%}.dp-tree{margin: 0 0 1.3rem;padding-left: 0;font-family: var(--dp-font-mono);font-size: 0.9rem;list-style: none}.dp-tree .dp-tree{margin: 0;padding-left: 0.85rem;border-left: 1px solid var(--dp-rule)}.dp-tree-item{margin: 0.1rem 0}.dp-tree-label{display: inline-flex;align-items: center;gap: 0.4rem;padding: 0.1rem 0.35rem;border-radius: var(--dp-radius)}summary.dp-tree-label{cursor: pointer;list-style: none}summary.dp-tree-label::-webkit-details-marker{display: none}summary.dp-tree-label:hover{background: var(--dp-bg-soft)}summary.dp-tree-label::before{content: '';width: 0.38rem;height: 0.38rem;border-right: 1.5px solid currentColor;border-bottom: 1.5px solid currentColor;rotate: -45deg;transition: rotate 0.15s ease}.dp-tree-details[open] > summary.dp-tree-label::before{rotate: 45deg}.dp-tree-item--leaf > .dp-tree-label{padding-left: 1.13rem}.dp-scroll-top{position: fixed;right: 1.25rem;bottom: 1.25rem;z-index: 30;display: inline-flex;align-items: center;justify-content: center;width: 2.5rem;height: 2.5rem;border: 1px solid var(--dp-border);border-radius: 999px;background: var(--dp-bg);box-shadow: 0 4px 14px var(--dp-shadow);color: var(--dp-text);text-decoration: none}.dp-scroll-top:hover{border-color: var(--dp-accent);color: var(--dp-accent)}.dp-scroll-top-icon{width: 1.1rem;height: 1.1rem}@keyframes dp-scroll-top-appear{from{visibility: hidden;opacity: 0;scale: 0.8}to{visibility: visible;opacity: 1;scale: 1}}@supports (animation-timeline: scroll()){@media (prefers-reduced-motion: no-preference){.dp-scroll-top{animation: dp-scroll-top-appear linear both;animation-timeline: scroll(root block);animation-range: 0 6rem}}}@media (prefers-reduced-motion: no-preference){html:has(.dp-scroll-top){scroll-behavior: smooth}}.dp-skill{margin: 0 0 1rem}.dp-skill-head{display: flex;gap: 0.5rem;align-items: baseline;justify-content: space-between;margin-bottom: 0.3rem}.dp-skill-name{display: inline-flex;align-items: center;gap: 0.4rem;font-weight: 600}.dp-skill-icon{display: inline-flex;color: var(--dp-skill-color, var(--dp-accent))}.dp-skill-value{color: var(--dp-text-soft);font-size: 0.85rem;font-variant-numeric: tabular-nums}.dp-skill-track{overflow: hidden;height: 0.5rem;border-radius: 999px;background: var(--dp-bg-soft)}.dp-skill-fill{width: var(--dp-skill-level, 0%);height: 100%;border-radius: inherit;background: var(--dp-skill-color, var(--dp-accent))}.dp-skill-note{margin-top: 0.35rem;color: var(--dp-text-soft);font-size: 0.85rem}@keyframes dp-skill-grow{from{width: 0}to{width: var(--dp-skill-level, 0%)}}@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.dp-skill-fill{animation: dp-skill-grow linear both;animation-timeline: view();animation-range: entry 10% cover 60%}}}.dp-logo-icon{display: inline-flex;align-items: center;justify-content: center;inline-size: var(--dp-logo-icon-size, 1.5rem);block-size: var(--dp-logo-icon-size, 1.5rem);color: inherit;vertical-align: -0.15em}.dp-logo-icon > svg{inline-size: 100%;block-size: 100%}@media (prefers-reduced-motion: reduce){.dp-tooltip-bubble, summary.dp-tree-label::before{transition: none}}.dp-skill--circle{display: inline-flex;flex-direction: column;align-items: center;gap: 0.4rem;margin-inline-end: 1.25rem;text-align: center}.dp-skill-dial{position: relative;inline-size: var(--dp-skill-size, 6rem);block-size: var(--dp-skill-size, 6rem)}.dp-skill-dial svg{inline-size: 100%;block-size: 100%;rotate: -90deg}.dp-skill-dial-track, .dp-skill-dial-fill{fill: none;stroke-width: 3.2}.dp-skill-dial-track{stroke: var(--dp-bg-soft)}.dp-skill-dial-fill{stroke: var(--dp-skill-color, var(--dp-accent));stroke-dasharray: var(--dp-skill-level, 0) 100;stroke-linecap: round}.dp-skill-dial-value{position: absolute;inset: 0;display: flex;align-items: center;justify-content: center;font-size: 1.05rem;font-weight: 600;font-variant-numeric: tabular-nums}.dp-skill--circle .dp-skill-name{justify-content: center;font-size: 0.9rem}@keyframes dp-skill-draw{from{stroke-dasharray: 0 100}to{stroke-dasharray: var(--dp-skill-level, 0) 100}}@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.dp-skill-dial-fill{animation: dp-skill-draw linear both;animation-timeline: view();animation-range: entry 10% cover 60%}}}}.dp-hero{text-align: center;padding: 2rem 0 0.5rem}.dp-hero h1{margin-bottom: 0.4rem}.dp-hero > p{max-width: 38rem;margin-inline: auto;font-size: 1.15rem;color: var(--dp-text-soft)}.dp-actions{margin-top: 1.75rem}.dp-actions > p{display: flex;flex-wrap: wrap;gap: 0.75rem;justify-content: center;margin: 0}.dp-actions a{display: inline-flex;align-items: center;padding: 0.6rem 1.25rem;border: 1px solid var(--dp-border);border-radius: var(--dp-radius);color: var(--dp-text);font-weight: 500;text-decoration: none}.dp-actions a:first-child{background: var(--dp-accent);border-color: var(--dp-accent);color: var(--dp-bg)}.dp-actions a:hover{border-color: var(--dp-accent)}:root.dark{--dp-bg: #060814;--dp-bg-soft: #0c1124;--dp-text: #e8eaf2;--dp-text-soft: #9ea6bd;--dp-border: #1c2440;--dp-rule: #1c2440;--dp-accent: #d8b46a;--dp-accent-soft: rgba(216, 180, 106, 0.14);--dp-shadow: rgba(0, 0, 0, 0.6)}.dp-header{background: color-mix(in oklab, var(--dp-bg) 92%, transparent);border-color: var(--dp-border)}