/**
 * @license MIT, https://opensource.org/license/MIT
 */

:root, :root:not([data-theme=dark]) {
    --pico-font-family-sans-serif:  "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Arial, sans-serif;
    --pico-nav-breadcrumb-divider: '>';
    --pico-block-spacing-vertical: 0;
    --pico-nav-element-spacing-horizontal: 1rem;
    --pico-nav-element-spacing-vertical: 0.75rem;
    --pico-nav-link-spacing-vertical: 0.625rem;
    --pico-nav-link-spacing-horizontal: 0.625rem;
    --pico-color: #FFFFFFD0;
    --pico-background-color: #080040;
    --pico-text-selection-color: #0098e840;
    --pico-muted-color: #FFFFFFA0;
    --pico-muted-border-color: #FFFFFF20;
    --pico-muted-background-color: #00000040;
    --pico-contrast: #FFFFFFE0;
    --pico-contrast-border: #FFFFFF40;
    --pico-contrast-background: #FFFFFF20;
    --pico-contrast-underline: var(--pico-contrast);
    --pico-contrast-hover: #FFFFFF;
    --pico-contrast-hover-border: #FFFFFF60;
    --pico-contrast-hover-background: #00000020;
    --pico-contrast-hover-underline: var(--pico-contrast-hover);
    --pico-contrast-focus: var(--pico-text-selection-color);
    --pico-contrast-inverse: #000000;
    --pico-primary: #0868D0;
    --pico-primary-background: #0868D080;
    --pico-primary-border: var(--pico-primary-background);
    --pico-primary-underline: var(--pico-primary);
    --pico-primary-hover: #1080FF;
    --pico-primary-hover-background: #1080FF80;
    --pico-primary-hover-border: var(--pico-primary-hover-background);
    --pico-primary-hover-underline: var(--pico-primary-hover);
    --pico-primary-focus: var(--pico-text-selection-color);
    --pico-primary-inverse: var(--pico-color);
    --pico-secondary: #B008C8;
    --pico-secondary-background: #B008C880;
    --pico-secondary-border: var(--pico-secondary-background);
    --pico-secondary-underline: var(--pico-secondary);
    --pico-secondary-hover: #E010FF;
    --pico-secondary-hover-background: #E010FF80;
    --pico-secondary-hover-border: var(--pico-secondary-hover-background);
    --pico-secondary-hover-underline: var(--pico-secondary-hover);
    --pico-secondary-focus: var(--pico-text-selection-color);
    --pico-secondary-inverse: var(--pico-color);
    --pico-h1-color: var(--pico-contrast-hover);
    --pico-h2-color: var(--pico-contrast-hover);
    --pico-h3-color: var(--pico-contrast-hover);
    --pico-h4-color: var(--pico-contrast-hover);
    --pico-h5-color: var(--pico-contrast-hover);
    --pico-h6-color: var(--pico-contrast-hover);
    --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(129, 145, 181, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(129, 145, 181, 0.024), 0.0625rem 0.125rem 0.75rem rgba(129, 145, 181, 0.03), 0.1125rem 0.225rem 1.35rem rgba(129, 145, 181, 0.036), 0.2085rem 0.417rem 2.502rem rgba(129, 145, 181, 0.04302), 0.5rem 1rem 6rem rgba(129, 145, 181, 0.06), 0 0 0 0.0625rem rgba(129, 145, 181, 0.015);
    --pico-dropdown-color: var(--pico-contrast);
    --pico-dropdown-border-color: var(--pico-contrast-border);
    --pico-dropdown-background-color: var(--pico-background-color);
    --pico-dropdown-hover-background-color: var(--pico-background-color);
    --pico-dropdown-box-shadow: var(--pico-box-shadow);
    --pico-modal-overlay-background-color: var(--pico-muted-background-color);
    --pico-code-background-color: var(--pico-contrast-background);
    --pico-code-color: var(--pico-contrast-hover);
    --pico-border-radius: 0;
}

* {
  scrollbar-color: var(--pico-primary-background) var(--pico-background-color);
}

body {
    line-height: 1.6;
    scroll-behavior: smooth;
    font-family: var(--pico-font-family-sans-serif);
    background-color: var(--pico-background-color);
    color: var(--pico-color);
    background-image:
        radial-gradient(
            circle at 100% 40rem,
            var(--pico-primary-background) 0,
            transparent 70vw
        ),
        radial-gradient(
            circle at 0 60rem,
            var(--pico-secondary-background) 0,
            transparent 60vw
        ),
        radial-gradient(
            circle at 100% 150rem,
            var(--pico-secondary-background) 0,
            transparent 40rem
        ),
        radial-gradient(
            circle at 0 170rem,
            var(--pico-primary-background) 0,
            transparent 40rem
        ),
        radial-gradient(
            circle at 100% 260rem,
            var(--pico-primary-background) 0,
            transparent 40rem
        ),
        radial-gradient(
            circle at 0 280rem,
            var(--pico-secondary-background) 0,
            transparent 40rem
        );
}

:where(a:not([role=button])), [role=link],
:where(a:not([role=button]):visited), [role=link]:visited {
    --pico-color: var(--pico-contrast);
    --pico-underline: var(--pico-contrast);
}

:where(a:not([role=button]):hover), [role=link]:hover {
    --pico-color: var(--pico-contrast-hover);
    --pico-underline: var(--pico-contrast-hover);
}

nav ol:first-of-type, nav ul:first-of-type,
nav ol:last-of-type, nav ul:last-of-type {
    margin: 0;
}

nav li :where(a,[role=link]) {
    color: var(--pico-color);
    text-decoration: none;
}

body > header {
    max-width: 1200px;
    margin: auto;
}

header nav ol,
header nav ul {
    margin-top: 0;
}

header nav > ul:not(.menu) > li {
    padding: var(--pico-nav-element-spacing-vertical) 0;
}

header nav details summary {
    display: flex;
    list-style: none;
    cursor: pointer;
}

header nav details summary::marker,
header nav details summary::-webkit-details-marker {
    display: none;
}

header nav details summary::after {
    display: block;
    float: right;
    width: 1rem;
    height: calc(1rem * var(--pico-line-height, 1.5));
    transform: rotate(0) translateX(.2rem);
    background-image: var(--pico-icon-chevron);
    background-position: right center;
    background-repeat: no-repeat;
    background-size: 1rem auto;
    margin-inline-start: .25rem;
    content: "";
}

header nav details[open] summary::after {
    transform: rotate(0.5turn) translateX(0);
}

header nav details.dropdown > summary + ul.align {
    left: auto;
    right: 0;
}

[dir="rtl"] header nav details.dropdown > summary + ul.align {
    right: auto;
    left: 0;
}

header nav .brand {
    flex-grow: 1;
}

header nav .brand a,
header nav .brand img {
    display: flex;
    align-items: center;
    height: 60px;
    padding: 0;
    margin: 0;
}

header nav .menu-open,
header nav .menu-close,
header nav .sidebar-open,
header nav .sidebar-close {
    display: none;
}

header nav .menu-open button,
header nav .menu-close button,
header nav .sidebar-open button,
header nav .sidebar-close button {
    color: var(--pico-contrast);
    padding: 0.75rem;
    background: none;
    border: none;
}

header nav a {
    display: inline-block;
    text-decoration: none;
    color: var(--pico-color);
    padding: 0.25rem 1rem;
    margin-inline-start: -1rem;
}

@media (max-width: 991px) {
    header nav .menu-open.show,
    header nav .menu-close.show {
        display: flex;
    }

    header nav.small {
        display: block;
        overflow-y: auto;
        position: absolute;
        background-color: var(--pico-background-color);
        min-height: 100%;
        z-index: 1000;
        width: 100%;
    }

    header nav .menu {
        display: none;
    }

    header nav.small .menu {
        flex-direction: column;
        display: flex;
    }

    header nav .menu ul {
        display: block;
    }

    header nav .menu li {
        padding: 0.75rem 2rem;
        width: 100%;
    }
}

@media (max-width: 991px) {
    body > header > nav {
        padding: 0 1rem;
    }
}

nav[aria-label="breadcrumb"] {
    border: 1px solid var(--pico-muted-border-color);
    background-color: var(--pico-muted-background-color);
}

nav[aria-label="breadcrumb"] > ul {
    text-align: center;
    max-width: 1200px;
    margin: auto;
    width: 100%;
}

nav[aria-label=breadcrumb] ul li {
    justify-content: flex-end;
    align-items: center;
    display: flex;
}

nav[aria-label=breadcrumb] ul li:not(:first-child) {
    margin-inline-start: 0;
}

nav[aria-label=breadcrumb] ul li:not(:last-child)::after {
    color: var(--pico-color);
    width: auto;
}


dialog > article {
    background-color: var(--pico-background-color);
    height: calc(100vh - 2rem);
    overflow: unset;
}

dialog header {
    background-color: var(--pico-contrast-background);
}

dialog form {
    display: flex;
    padding: 1rem;
}

dialog input,
dialog button {
    background-color: var(--pico-background-color);
    color: var(--pico-contrast);
    appearance: none;
    box-shadow: none;
    border: none;
    padding: 0.5rem;
}

dialog input {
    border: 1px solid var(--pico-contrast-border);
    background-color: var(--pico-contrast-background);
    font-size: 1rem;
    display: block;
    width: 100%;
    margin: 0 1px;
    outline: none;
}

dialog input:focus-visible {
    border: 1px solid var(--pico-contrast-hover-border);
}

dialog input::-webkit-input-placeholder {
    color: var(--pico-muted-color);
}

dialog.search .results {
    height: calc(100% - 4.25rem);
    overflow-y: auto;
    padding: 1rem;
}

dialog.search .result-item {
    padding: .5rem 0;
}

dialog.search .result-item a {
    border-inline-start: 1px solid var(--pico-contrast-border);
    color: var(--pico-color);
    text-decoration: none;
    cursor: pointer;
    display: block;
    padding: 0.5rem;
    padding-inline-start: 1rem;
}

dialog.search .result-item a[role="heading"] {
    border-bottom: 1px solid var(--pico-contrast-border);
    background-color: var(--pico-contrast-background);
    padding-inline-start: 0.5rem;
    font-weight: bold;
}

dialog.search .result-item a:hover {
    --pico-color: var(--pico-contrast);
    background-color: var(--pico-contrast-background);
    color: var(--pico-contrast);
}

dialog.search .result-item a[role="heading"]:hover {
    background-color: var(--pico-contrast-hover-border);
}

dialog.search .result-item a b {
    background-color: var(--pico-contrast-background);
    padding: 0.1rem 0.25rem;
}


.container {
    max-width: 1200px !important;
}

details summary {
    line-height: inherit;
}

h1, h2, h3, h4 {
    font-weight: normal;
}

h1 {
    --pico-typography-spacing-vertical: 3rem;
    --pico-font-size: 300%;
    text-align: center;
}

h2 {
    --pico-typography-spacing-vertical: 2.25rem;
    --pico-font-size: 225%;
    text-align: center;
}

h3 {
    --pico-typography-spacing-vertical: 1.75rem;
    --pico-font-size: 175%;
}

h4 {
    --pico-typography-spacing-vertical: 1.33rem;
    --pico-font-size: 133%;
}

img {
    max-width: 100%;
}

.btn {
    display: inline-block;
    text-decoration: none;
    vertical-align: sub;
    padding: 0.75rem 1.5rem;
    margin: 0.5rem 0;
    font-size: 100%;
    border: none;
    border-radius: 2rem;
    color: var(--pico-contrast);
    background-image: linear-gradient(90deg, var(--pico-primary), var(--pico-secondary));
}

.btn::after {
    mask: url('data:image/svg+xml;utf8,<svg width="24" height="24" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10 1.875C8.39303 1.875 6.82214 2.35152 5.486 3.24431C4.14985 4.1371 3.10844 5.40605 2.49348 6.8907C1.87852 8.37535 1.71762 10.009 2.03112 11.5851C2.34463 13.1612 3.11846 14.6089 4.25476 15.7452C5.39106 16.8815 6.8388 17.6554 8.4149 17.9689C9.99099 18.2824 11.6247 18.1215 13.1093 17.5065C14.594 16.8916 15.8629 15.8502 16.7557 14.514C17.6485 13.1779 18.125 11.607 18.125 10C18.1227 7.84581 17.266 5.78051 15.7427 4.25727C14.2195 2.73403 12.1542 1.87727 10 1.875ZM10 16.875C8.64026 16.875 7.31105 16.4718 6.18046 15.7164C5.04987 14.9609 4.16868 13.8872 3.64833 12.6309C3.12798 11.3747 2.99183 9.99237 3.2571 8.65875C3.52238 7.32513 4.17716 6.10013 5.13864 5.13864C6.10013 4.17716 7.32514 3.52237 8.65876 3.2571C9.99238 2.99183 11.3747 3.12798 12.631 3.64833C13.8872 4.16868 14.9609 5.04987 15.7164 6.18045C16.4718 7.31104 16.875 8.64025 16.875 10C16.8729 11.8227 16.1479 13.5702 14.8591 14.8591C13.5702 16.1479 11.8227 16.8729 10 16.875ZM13.5672 9.55781C13.6253 9.61586 13.6714 9.68479 13.7029 9.76066C13.7343 9.83654 13.7505 9.91787 13.7505 10C13.7505 10.0821 13.7343 10.1635 13.7029 10.2393C13.6714 10.3152 13.6253 10.3841 13.5672 10.4422L11.0672 12.9422C10.9499 13.0595 10.7909 13.1253 10.625 13.1253C10.4592 13.1253 10.3001 13.0595 10.1828 12.9422C10.0655 12.8249 9.99966 12.6659 9.99966 12.5C9.99966 12.3341 10.0655 12.1751 10.1828 12.0578L11.6164 10.625H6.875C6.70924 10.625 6.55027 10.5592 6.43306 10.4419C6.31585 10.3247 6.25 10.1658 6.25 10C6.25 9.83424 6.31585 9.67527 6.43306 9.55806C6.55027 9.44085 6.70924 9.375 6.875 9.375H11.6164L10.1828 7.94219C10.0655 7.82491 9.99966 7.66585 9.99966 7.5C9.99966 7.33415 10.0655 7.17509 10.1828 7.05781C10.3001 6.94054 10.4592 6.87465 10.625 6.87465C10.7909 6.87465 10.9499 6.94054 11.0672 7.05781L13.5672 9.55781Z"/></svg>') no-repeat center / contain;
    background-color: var(--pico-contrast);
    margin-inline-start: 0.5rem;
    display: inline-block;
    height: 1.15rem;
    width: 1.15rem;
    content: '';
}

.btn:hover,
.btn:hover::after {
    color: var(--pico-contrast-hover);
}

.hidden {
    display: none;
}

.file,
.audio,
.video,
.image,
.image > img,
.image > source {
    max-width: 100%;
    text-align: center;
    display: block;
    margin: auto;
}

.video video {
    max-width: 100%;
}

@media screen and (min-width: 576px) {
	.image picture,
    .video video {
        display: block;
		padding: 5%;
		background:
			radial-gradient(
				circle at 90% -50%,
				var(--pico-primary-background) 0,
				transparent 100%
			),
			radial-gradient(
				circle at 10% 150%,
				var(--pico-secondary-background) 0,
				transparent 100%
			);
	}
}

.caption:not(:empty) {
    max-width: 960px;
    margin: 1rem auto;
}

.image .main > img,
.image .main > source {
    width: 100%;
}

.image-text::after {
    content: "";
    display: table;
    clear: both;
}

.image-text .image {
    margin-bottom: 1.5rem;
    max-width: 25%;
}

.image-text:nth-of-type(2n) .image.auto,
.image-text .image.start {
    margin-inline-end: 2rem;
    float: inline-start;
}

.image-text:nth-of-type(2n+1) .image.auto,
.image-text .image.end {
    margin-inline-start: 2rem;
    float: inline-end;
}

.table-responsive .table-row {
    display: flex;
    align-items: flex-end;
    background-color: var(--pico-background-color);
    border-bottom: var(--pico-border-width) solid var(--pico-table-border-color);
}

.table-responsive .table-col {
    padding: calc(var(--pico-spacing) / 2) var(--pico-spacing);
    flex: 1;
}

.table-responsive .th {
    --pico-color: var(--pico-contrast-hover);
    text-align: center;
}

.table-responsive .th > *:first-child,
.table-responsive .td > *:first-child {
    margin-top: 0;
}

.table-responsive .th > *:last-child,
.table-responsive .td > *:last-child {
    margin-bottom: 0;
}

@media (max-width: 576px) {
  .table-responsive .table-row {
    display: flex;
    flex-wrap: wrap;
  }

  .table-responsive .table-col:first-child {
    flex: 0 0 100%;
  }

  .table-responsive .table-col:not(:first-child) {
    flex: 1;
  }
}


p code {
    overflow-wrap: anywhere;
}

pre code[class*=language-] {
    background-color: var(--pico-muted-background-color);
    overflow-x: auto;
}

pre:has(code[class*="language-"]) {
    background-color: var(--pico-background-color);
    position: relative;
    padding: 2rem 5%;
    background:
        radial-gradient(
            circle at 90% -50%,
            var(--pico-primary-background) 0,
            transparent 66%
        ),
        radial-gradient(
            circle at 10% 150%,
            var(--pico-secondary-background) 0,
            transparent 66%
        );
}

@media screen and (min-width: 768px) {
    pre:has(code[class*="language-"]) {
        background:
            radial-gradient(
                circle at 90% -50%,
                var(--pico-primary-background) 0,
                transparent 66%
            ),
            radial-gradient(
                circle at 10% 150%,
                var(--pico-secondary-background) 0,
                transparent 66%
            ),
            url('code-background.svg') no-repeat -10% calc(100% + 2.5rem) / 20% auto,
            url('code-background.svg') no-repeat 110% calc(100% + 2.5rem) / 20% auto;
    }
}


footer.copyright {
    text-align: center;
}
