:root {
    --libdoc-container-width: var(--ita-widths-content);
    --libdoc-font-family: "Recursive", "fallbackFont";
    --libdoc-damier: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAHElEQVR4AWP4jwOcwQFoo2FUAy4JXAbRRMOoBgCE0rCfubvZNQAAAABJRU5ErkJggg==');
    --libdoc-soft-shadow: 0px 0px 10px rgba(0,0,0,0.1);
    --libdoc-long-shadow:
        1px 1px 2px rgba(49, 49, 49, 0.08),
        5px 6px 9px rgba(49, 49, 49, 0.26),
        12px 13px 21px rgba(49, 49, 49, 0.34),
        22px 24px 38px rgba(49, 49, 49, 0.42),
        34px 37px 59px rgba(49, 49, 49, 0.50);
    --libdoc-long-shadow-alt:
        1px 1px 2px rgba(5, 49, 86, 0.08),
        5px 6px 9px rgba(5, 49, 86, 0.26),
        12px 13px 21px rgba(5, 49, 86, 0.34),
        22px 24px 38px rgba(5, 49, 86, 0.42),
        34px 37px 59px rgba(5, 49, 86, 0.50);
}
/* FONTS */
/* cyrillic-ext */
@font-face {
    font-family: "Recursive";
    font-style: oblique 0deg 15deg;
    font-weight: 300 800;
    font-display: swap;
    src: url('../fonts/Recursive_cyrillic_ext.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* vietnamese */
@font-face {
    font-family: "Recursive";
    font-style: oblique 0deg 15deg;
    font-weight: 300 800;
    font-display: swap;
    src: url('../fonts/Recursive_vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
    font-family: "Recursive";
    font-style: oblique 0deg 15deg;
    font-weight: 300 800;
    font-display: swap;
    src: url('../fonts/Recursive_latin_ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: "Recursive";
    font-style: oblique 0deg 15deg;
    font-weight: 300 800;
    font-display: swap;
    src: url('../fonts/Recursive_latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Fallback */
@font-face {
    font-family: "fallbackFont";
    src: local("Arial");
    size-adjust: 113%;
}

/* BROWSERS DEFAULTS */
/* <details> défaut style on iOS */
details > summary::-webkit-details-marker {
    display: none;
}
details:not([open]) > summary .icons span[class*="icon-"]:nth-child(2) {
    display: none;
}
details[open] > summary .icons span[class*="icon-"]:nth-child(1) {
    display: none;
}
/* <button> and <select> default style on iOS */
select, button {
    color: black
}
/* Opacity disabled input on iOS */
input:disabled {
    opacity: 1;
}
/* input type search reset */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    -webkit-appearance:none;
}

/* MENU TOGGLE */
#nav_small_devices:has(#nav_primary_checkbox:checked) ~ #nav_primary_container {
    display: flex !important;
}
#nav_primary_checkbox:checked ~ label [class*="icon-"]::before {
    content: '\e910';
}

/* SMOOTH PAGE TRANSITION (CHROME AND SAFARI ONLY) */
@view-transition {
    navigation: auto;
}

* {
    box-sizing: border-box;
}
body,
input,
code,
button {
    font-family: var(--libdoc-font-family);
}
body {
    /* background: 0px 0px / 20px 20px radial-gradient(var(--ita-colors-primary-300) 0.5px,var(--ita-colors-primary-100) 1px); */
    background: url(https://octothorp.es/wonkgraph.png);
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size: var(--ita-fontSizes-5);
    font-variation-settings: "slnt" 0, "CASL" 0.5, "CRSV" 1, "MONO" 0, "wght" 360;
}
main {
    background-color: white;
}
html,
.o-auto {
    scrollbar-color: var(--ita-colors-primary-500) transparent;
    scrollbar-width: 10px;
}
button:disabled {
    opacity: 0.5;
    cursor: default;
}
input:focus {
    outline: 2px solid var(--ita-colors-primary-400);
}
code {
    font-variation-settings: "slnt" 0, "CASL" 0, "CRSV" 0.0, "MONO" 1, "wght" 300;
    line-height: 1.6em;
    font-size: var(--ita-fontSizes-4);
}
/* MAIN CONTENT */
main {
    color: var(--ita-colors-primary-900);
}
main *::target-text {
    background-color: aqua;
}
main *::selection {
    text-shadow: none;
    background-color: var(--ita-colors-primary-500);
    color: var(--ita-colors-primary-100);
}
main > * {
    display: block;
    width: 100%;
    /* max-width: calc(var(--libdoc-container-width) + 2 * var(--ita-spacings-9)); */
    max-width: clamp(
        calc(var(--ita-widths-content) - 200px),
        calc(100% - 3 * var(--ita-spacings-5)),
        calc(var(--ita-widths-content) + 2 * var(--ita-spacings-9))
    );
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--ita-spacings-9);
    padding-right: var(--ita-spacings-9);
}
main del {
    background-color: var(--ita-colors-danger-100);
    color: var(--ita-colors-danger-900);
}
main ins {
    background-color: var(--ita-colors-success-100);
    color: var(--ita-colors-success-900);
}
/* main > header p,
main > header summary {
    text-shadow: var(--libdoc-text-shadow-legibility);
} */
main p {
    /* text-shadow: var(--libdoc-text-shadow-legibility); */
    line-height: 1.6em;
}
/* HEADINGS */
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
    color: var(--ita-colors-primary-900);
    position: relative;
    scroll-margin-top: var(--ita-spacings-6);
    text-wrap-style: balance;
}
main h1:target a,
main h2:target a,
main h3:target a,
main h4:target a,
main h5:target a,
main h6:target a {
    background-color: var(--ita-colors-primary-500);
    color: var(--ita-colors-primary-100);
    border-color: var(--ita-colors-primary-100);
}
main h1 {
    font-variation-settings: "wght" 800, "MONO" 0;
    font-size: var(--ita-fontSizes-9);
    letter-spacing: -0.06em;
}
main h2 {
    font-variation-settings: "wght" 700, "MONO" 0;
    font-size: var(--ita-fontSizes-9);
    letter-spacing: -0.06em;
}
main h3 {
    font-variation-settings: "wght" 800, "MONO" 0;
    font-size: var(--ita-fontSizes-8);
    letter-spacing: -0.05em;
}
main h4 {
    font-variation-settings: "wght" 700, "MONO" 0;
    font-size: var(--ita-fontSizes-8);
    letter-spacing: -0.05em;
}
main h5 {
    font-variation-settings: "wght" 800, "MONO" 0;
    font-size: var(--ita-fontSizes-7);
    letter-spacing: -0.05em;
}
main h6 {
    font-variation-settings: "wght" 700, "MONO" 0;
    font-size: var(--ita-fontSizes-7);
    letter-spacing: -0.05em;
}
main > *:not(header) h1,
main > *:not(header) h1,
main > *:not(header) h2,
main > *:not(header) h2,
main > *:not(header) h3,
main > *:not(header) h3,
main > *:not(header) h4,
main > *:not(header) h4,
main > *:not(header) h5,
main > *:not(header) h5,
main > *:not(header) h6,
main > *:not(header) h6 {
    margin: 0;
    padding-left: 0 !important;
    line-height: 1.2em;
    display: inline-flex;
}
main > *:not(header) h1,
main > *:not(header) h1 {
    font-size: var(--ita-fontSizes-7);
}
main > *:not(header) h2,
main > *:not(header) h2 {
    font-size: var(--ita-fontSizes-6);
}
main > *:not(header) h3,
main > *:not(header) h3,
main > *:not(header) h4,
main > *:not(header) h4,
main > *:not(header) h5,
main > *:not(header) h5,
main > *:not(header) h6,
main > *:not(header) h6 {
    font-size: var(--ita-fontSizes-5);
}
main > *:not(header) h1 a,
main > *:not(header) h1 a,
main > *:not(header) h2 a,
main > *:not(header) h2 a,
main > *:not(header) h3 a,
main > *:not(header) h3 a,
main > *:not(header) h4 a,
main > *:not(header) h4 a,
main > *:not(header) h5 a,
main > *:not(header) h5 a,
main > *:not(header) h6 a,
main > *:not(header) h6 a {
    display: none;
}
/* LINKS */
main a {
    transition: all 300ms;
}
main a:link,
main a:visited {
    color: var(--ita-colors-primary-500);
    font-variation-settings: "wght" 500, "MONO" 0;
    letter-spacing: -0.03em;
    /* text-shadow: none; */
    text-underline-offset: 0.2em;
    text-decoration-thickness: 0.1em;
}
main a:hover {
    color: var(--ita-colors-primary-700);
    font-variation-settings: "wght" 700, "MONO" 0;
}
main a[aria-current="page"] {
    opacity: 0.5;
    pointer-events: none;
}
main a[href^="https://"]:not([href^="https://eleventy-libdoc"])::after,
main a.__external-link::after {
    content: '\e900';
    font-family: icomoon;
    text-decoration: none;
    display: inline-flex;
    float: none;
    transition: color 300ms;
}
main a[href^="https://"]:not([href^="https://eleventy-libdoc"]):not(.btn)::after,
main a.__external-link::after {
    color: var(--ita-colors-primary-300);
}
main a[href^="https://"]:not([href^="https://eleventy-libdoc"]):not(.btn):hover::after,
main a.__external-link:hover::after {
    color: var(--ita-colors-primary-700);
}
/* EMPHASIS */
main em {
    font-variation-settings: "slnt" -8, "wght" 400;
    letter-spacing: -0.02em;
}
main strong,
main b {
    font-variation-settings: "wght" 700, "MONO" 0;
    letter-spacing: -0.03em;
}
main i {
    font-variation-settings: "slnt" -15, "MONO" 0;
}
/* MARKING AND SPECIALS */
main mark {
    /* text-shadow: none; */
    background-color: var(--ita-colors-success-100);
    color: var(--ita-colors-success-900);
}
main s,
main strike {
    text-decoration-color: var(--ita-colors-danger-500);
    text-decoration-thickness: 0.05em;
    text-decoration-style: wavy;
    /* text-shadow: none; */
}
/* main del {
    text-shadow: none;
} */
main del * {
    /* text-shadow: none; */
    background-color: var(--ita-colors-danger-100);
    color: var(--ita-colors-danger-900);
    max-width: var(--libdoc-container-width);
}
/* main ins {
    text-shadow: none;
} */
main ins * {
    /* text-shadow: none; */
    background-color: var(--ita-colors-success-100);
    color: var(--ita-colors-success-900);
    max-width: var(--libdoc-container-width);
}
main samp {
    font-family: var(--libdoc-font-family);
    font-variation-settings: "MONO" 1, "CASL" 0, "wght" 400;
    letter-spacing: -0.04em;
    color: var(--ita-colors-neutral-100);
    background: var(--ita-colors-neutral-800);
    border-radius: 3px;
    padding: 0em 0.3em;
}
main q {
    font-variation-settings: "slnt" -15, "CRSV" 1, "CASL" 1, "wght" 400;
    /* text-shadow: none; */
    background-color: var(--ita-colors-primary-100);
}
main kbd {
    font-variation-settings: "MONO" 1, "wght" 500;
    font-family: var(--libdoc-font-family);
    background-color: var(--ita-colors-primary-200);
    padding: 0 0.4em;
    border-radius: 4px;
    letter-spacing: -0.03em;
}
/* LISTS */
main ul,
main ol {
    line-height: 1.6em;
}
/* main > ol {
    padding-left: var(--ita-spacings-11);
} */
main > ol:not(:has(ul)) ol {
    padding-left: var(--ita-spacings-3);
}
main > ul,
main > ul ul {
    list-style: none;
    margin-top: 0;
}
main > ol:not(:has(ul)),
main > ol:not(:has(ul)) li > ol {
    counter-reset: listItem;
    list-style: none;
    margin-top: 1em;
}
/* main > ul li + li {
    padding-top: 0.5em;
} */
main > ol > li + li,
main > ol li > ol > li + li {
    padding-top: 1em;
}
main > ol:not(:has(ul)) > li,
main > ol:not(:has(ul)) li > ol > li {
    counter-increment: listItem;
    padding-left: var(--ita-spacings-7);
    border-left: 1px dashed var(--ita-colors-neutral-500);
}
/*
https://www.joshwcomeau.com/css/styling-ordered-lists-with-css-counters/
*/
main > ol:not(:has(ul)) > li::before,
main > ol:not(:has(ul)) li > ol > li::before {
    content: counters(listItem, '.') '.';
    position: absolute;
    transform: translateX(calc(-100% - var(--ita-spacings-4)));
    display: inline-block;
    line-height: 2em;
    letter-spacing: -0.1em;
    margin-top: 0.1em;
    font-size: var(--ita-fontSizes-2);

    font-variation-settings: "wght" 500, "MONO" 1, "CASL" 1;
    padding: 0em 0em 0em 0.5em;
    background-color: var(--ita-colors-primary-100);
    color: var(--ita-colors-primary-500);
    border-bottom: 1px dashed var(--ita-colors-neutral-500);
    /* content: counters(listItem, '.') '.';
    position: absolute;
    transform: translateX(calc(-100% - var(--ita-spacings-2)));
    display: inline-block;
    font-variation-settings: "wght" 700, "MONO" 1, "CASL" 1;
    font-size: var(--ita-fontSizes-2);
    padding: 0em 1em;
    background-color: var(--ita-colors-neutral-100);
    color: var(--ita-colors-primary-500);
    border-radius: 100px;
    line-height: 2em;
    letter-spacing: -0.1em;
    border: 1px dotted var(--ita-colors-primary-500);
    margin-top: 0.1em; */
}
main > ol:not(:has(ul)) > li {
    border-left: 1px dashed var(--ita-colors-primary-500);
}
main > ol:not(:has(ul)) > li::before {
    background-color: var(--ita-colors-primary-500);
    color: var(--ita-colors-neutral-100);
    margin-top: 0;
    padding: 0.2em 1em;
    border-radius: 100px;
    border: none;
}
main > ul {
    padding-left: var(--ita-spacings-9);
}
main > ul ul {
    padding-left: 0;
}
main > ul > li,
main > ul ul > li,
main > ol ul > li {
    border-left: 1px dashed var(--ita-colors-neutral-500);
    position: relative;
    padding-left: var(--ita-spacings-8);
    padding-top: 0.5em;
}
main > ul > li::before,
main > ul ul > li::before,
main > ol ul > li::before {
    content: '';
    position: absolute;
    top: 1.3em;
    left: 0;
    width: var(--ita-spacings-5);
    border-bottom: 1px dashed var(--ita-colors-neutral-500);
}
main > ul > li::after,
main > ul ul > li::after,
main > ol ul > li::after {
    content: '';
    position: absolute;
    top: calc(1.3em - var(--ita-spacings-2) / 2);
    left: var(--ita-spacings-4);
    width: var(--ita-spacings-2);
    height: var(--ita-spacings-2);
    background-color: var(--ita-colors-primary-500);
    border-radius: 100%;
}
/* Mixed list type */
main > ol:has(ul) ul {
    list-style: none;
    padding-left: 0;
    margin-top: 0.5em;
}
main > ol:has(ul) ol {
    padding-left: var(--ita-spacings-7);
}
main > ol:has(ul) li > ol,
main > ol:has(ul) li > ol > li + li,
main > ul:has(ol) li > ol,
main > ul:has(ol) li > ol > li + li {
    margin-top: 0.5em;
    padding-top: 0;
}
main > ul:has(ol) ol {
    padding-left: var(--ita-spacings-5);
    margin-top: 0.5em;
}
main > ol:has(ul) {
    list-style: none;
    counter-reset: mixedItem;
}
main > ol:has(ul) > li {
    counter-increment: mixedItem;
    padding-left: var(--ita-spacings-6);
    border-left: 1px dashed var(--ita-colors-primary-500);
}
main > ol:has(ul) > li:before  {
    content: counter(mixedItem) '.';
    position: absolute;
    transform: translateX(calc(-100% - var(--ita-spacings-2)));
    display: inline-block;
    font-variation-settings: "wght" 700, "MONO" 1, "CASL" 1;
    font-size: var(--ita-fontSizes-2);
    padding: 0.2em 1em;
    background-color: var(--ita-colors-primary-500);
    color: var(--ita-colors-neutral-100);
    border-radius: 100px;
    line-height: 2em;
    letter-spacing: -0.1em;
    border: none;
}
main > *:not(header) li::marker {
    font-variation-settings: "wght" 500, "MONO" 1, "CASL" 1;
    color: var(--ita-colors-primary-500);
    font-size: var(--ita-fontSizes-3);
}

/* CODE AND SYNTAX HIGHLIGHTING */
main > *:not(pre) code {
    background-color: var(--ita-colors-primary-200);
    display: inline-block;
    padding-left: 0.3em;
    padding-right: 0.3em;
    border-radius: 0.3em;
    font-variation-settings: "wght" 400, "MONO" 1, "CASL" 0, "CRSV" 1;
    color: var(--ita-colors-primary-800);
}
/* language not supported in highlight js */
main pre:not(:has(.hljs)) {
    overflow: auto;
}
main > pre {
    padding: var(--ita-spacings-9);
    background-color: var(--ita-colors-primary-200);
    /* border-radius: 12px; */
    /* border: 1px solid var(--ita-colors-primary-300); */
    /* box-shadow: inset 0.3em 0.3em 2em #0B427C44; */
    overflow: hidden;
}
main > pre > code {
    border-radius: 6px;
    box-shadow: var(--libdoc-long-shadow-alt);
}
main > pre > code::before {
    content: attr(class);
    display: block;
    padding-bottom: var(--ita-spacings-2);
    margin-bottom: var(--ita-spacings-2);
    border-bottom: 1px dashed #385267;
    font-size: var(--ita-fontSizes-2);
    font-variation-settings: "wght" 400;
}
/* TABLES */
main > .table-wrapper + .table-wrapper {
    margin-top: 2em;
}
main table {
    display: table;
    width: 100%;
    border-collapse: collapse;
    max-width: var(--libdoc-container-width);
}
main table thead th {
    text-align: left;
    font-variation-settings: "wght" 700, "MONO" 0;
    font-size: var(--ita-fontSizes-3);
    padding: var(--ita-spacings-3);
    background-color: var(--ita-colors-primary-100);
    border: 1px solid var(--ita-colors-primary-300);
}
main table tbody tr td {
    padding: var(--ita-spacings-3);
    font-size: var(--ita-fontSizes-3);
    border: 1px solid var(--ita-colors-primary-300);
    font-variation-settings: "wght" 400, "MONO" 0;
    line-height: 1.5em;
}
main table tbody tr:nth-child(odd) td {
    background-color: var(--ita-colors-primary-200);
    color: var(--ita-colors-primary-900);
}
main table tbody tr:nth-child(even) td {
    background-color: var(--ita-colors-primary-100);
}
main table td code {
    background-color: var(--ita-colors-primary-400);
    color: var(--ita-colors-neutral-100);
}
/* QUOTES */
main blockquote {
    position: relative;
    background: var(--ita-colors-success-100);
    color: var(--ita-colors-primary-900);
    margin-top: var(--ita-spacings-10);
    margin-bottom: var(--ita-spacings-10);
    padding: var(--ita-spacings-5) var(--ita-spacings-9);
    max-width: var(--libdoc-container-width);
    /* border-bottom-left-radius: 3em;
    border-top-right-radius: 3em; */
    /* border: 3px double var(--ita-colors-primary-300); */
    font-family: var(--libdoc-font-family);
    font-size: var(--ita-fontSizes-7);
    border-radius: 12px;
    /* box-shadow: var(--libdoc-soft-shadow); */
}
/* main blockquote::before {
    content: "❝";
    position: absolute;
    left: 0;
    font-size: 4em;
    color: var(--ita-colors-primary-300);
    transform: translateY(-60%);
}
main blockquote::after {
    content: "❞";
    position: absolute;
    font-size: 4em;
    color: var(--ita-colors-primary-300);
    transform: translateY(-20%);
    right: 0;
} */
main blockquote * {
    font-variation-settings: "slnt" -15, "CASL" 1, "CRSV" 1;
    letter-spacing: -0.01em;
}
main blockquote em {
    font-variation-settings: "slnt" -15, "CASL" 1, "CRSV" 1, "wght" 500;
}
main blockquote strong {
    font-variation-settings: "slnt" -15, "CASL" 1, "CRSV" 1, "wght" 700;
}
/* DEFINITION LISTS */
main dl dt {
    font-variation-settings: "wght" 500, "MONO" 0;
    margin-bottom: 0.2em;
    letter-spacing: -0.04em;
    color: var(--ita-colors-primary-500);
}
main dl dd {
    margin-left: var(--ita-spacings-2);
    margin-bottom: 1em;
    line-height: 1.6em;
    padding-left: var(--ita-spacings-5);
    border-left: 1px dashed var(--ita-colors-primary-500);
}
/* DETAILS */
main > details summary,
main > *:not(header) details summary {
    font-variation-settings: "wght" 400, "MONO" 0;
    display: flex;
    align-items: center;
    gap: var(--ita-spacings-2);
    padding: var(--ita-spacings-2) 0;
    letter-spacing: -0.03em;
    cursor: pointer;
}
main > details summary::before,
main > *:not(header) details summary::before {
    content: '\e914';
    font-family: icomoon;
    color: var(--ita-colors-primary-500);
    font-size: var(--ita-fontSizes-6);
}
main > details[open] summary::before,
main > *:not(header) details[open] summary::before {
    content: '\e913';
}
main > details:has(+ details) summary,
main > details + details summary,
main > *:not(header) details:has(+ details) summary,
main > *:not(header) details + details summary {
    padding: 1em 0;
    border-bottom: 1px dashed var(--ita-colors-neutral-500);
}
main > details[open]:has(+ details) summary,
main > details + details[open] summary,
main > *:not(header) details[open]:has(+ details) summary,
main > *:not(header) details + details[open] summary {
    border-bottom: none;
}
/* HORIZONTAL RULE */
main hr {
    border: none;
    margin-top: 3em;
    margin-bottom: 3em;
}
main hr::before {
    content: "";
    display: block;
    width: 100%;
    border-bottom: 1px dashed var(--ita-colors-neutral-500);
}
/* IMAGES */
main img {
    max-width: 100%;
    height: auto;
}
main figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 1em;
    padding-top: var(--ita-spacings-9);
    padding-bottom: var(--ita-spacings-9);
    background-color: var(--ita-colors-neutral-100);
    border-radius: 12px;
    border: 1px solid var(--ita-colors-neutral-400);
    overflow: hidden;
}
main figure.dark,
main picture:has(.dark) img {
    color: var(--ita-colors-neutral-100);
    background-color: var(--ita-colors-neutral-900);
}
main picture:has(.light) img {
    color: var(--ita-colors-neutral-900);
    background-color: var(--ita-colors-neutral-100);
}
main figure.damier img,
main picture:has(.damier) img {
    background: var(--libdoc-damier);
}
main figure.long-shadow {
    row-gap: 2em;
}
main figure.long-shadow img,
main picture:has(.long-shadow) img {
    box-shadow: var(--libdoc-long-shadow);
}
main figure figcaption {
    font-size: var(--ita-fontSizes-4);
    font-variation-settings: "slnt" -5, "CASL" 0, "CRSV" 1.0, "MONO" 0, "wght" 300;
    line-height: 1.5em;
}
main figure.wide,
main picture:has(.wide) {
    max-width: calc(100% - 2 * var(--ita-spacings-8));
}
/* VIDEO */
main video {
    background: var(--ita-colors-neutral-900);
    padding: 0;
    max-width: var(--libdoc-container-width);
}
/* INLINE HTML */
main rt {
    background: linear-gradient(transparent calc(100% - 0.5px), var(--ita-colors-neutral-500) 0.5px);
}
main time {
    font-variation-settings: "slnt" 0, "CASL" 0, "CRSV" 0, "MONO" 0, "wght" 400;
    letter-spacing: -0.02em;
}
main var {
    font-variation-settings: "slnt" 0, "CASL" 0, "CRSV" 0, "MONO" 1, "wght" 400;
    letter-spacing: -0.04em;
}
main p:has(small) {
    line-height: 1em;
}
main small {
    font-size: var(--ita-fontSizes-3);
    color: var(--ita-colors-neutral-700);
    font-variation-settings: "slnt" 0, "CASL" 0, "CRSV" 0, "MONO" 0;
}
main u {
    text-decoration-style: wavy;
    text-decoration-color: var(--ita-colors-danger-500);
    color: var(--ita-colors-danger-900);
}
main img.long-shadow {
    margin-bottom: 2em;
}
main abbr[title] {
    cursor: pointer;
    /* Safari hack */
    text-decoration-style: dotted;
    text-decoration: underline;
    text-decoration: underline dotted;
}
main abbr[title].expanded::after {
    content: " (" attr(title) ")";
}
main abbr[data-title].expanded::after {
    content: " (" attr(data-title) ")";
}
main a.btn,
main button[type="button"].btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ita-spacings-3);
    padding: 1.5em;
    border-radius: 100px;
    background-color: var(--ita-colors-neutral-200);
    color: var(--ita-colors-neutral-900);
    border: 1px dashed var(--ita-colors-neutral-900);
    height: 3em;
    text-transform: uppercase;
    text-decoration: none;
    font-variation-settings: "slnt" 0, "CASL" 0, "CRSV" 0, "MONO" 0, "wght" 600;
    font-size: var(--ita-fontSizes-3);
    cursor: pointer;
    transition: all 300ms;
    white-space: nowrap;
}
main a.btn:hover,
main button[type="button"].btn:hover {
    border-style: dotted;
}
main a.btn:active,
main button[type="button"].btn:active {
    border-style: solid;
    scale: 0.95;
}
main a.btn.btn-primary,
main button[type="button"].btn.btn-primary {
    background-color: var(--ita-colors-primary-500);
    color: var(--ita-colors-neutral-100);
    border-color: var(--ita-colors-neutral-100);
}
main a.btn.btn-primary-light,
main button[type="button"].btn.btn-primary-light {
    background-color: var(--ita-colors-primary-100);
    color: var(--ita-colors-primary-600);
    border-color: var(--ita-colors-primary-600);
}
main a.btn.btn-success,
main button[type="button"].btn.btn-success {
    background-color: var(--ita-colors-success-500);
    color: var(--ita-colors-neutral-100);
    border-color: var(--ita-colors-success-100);
}
main a.btn.btn-success-light,
main button[type="button"].btn.btn-success-light {
    background-color: var(--ita-colors-success-100);
    color: var(--ita-colors-success-900);
    border-color: var(--ita-colors-success-900);
}
main a.btn.btn-warning,
main button[type="button"].btn.btn-warning {
    background-color: var(--ita-colors-warning-500);
    color: var(--ita-colors-neutral-100);
    border-color: var(--ita-colors-warning-100);
}
main a.btn.btn-warning-light,
main button[type="button"].btn.btn-warning-light {
    background-color: var(--ita-colors-warning-100);
    color: var(--ita-colors-warning-900);
    border-color: var(--ita-colors-warning-900);
}
main a.btn.btn-danger,
main button[type="button"].btn.btn-danger {
    background-color: var(--ita-colors-danger-500);
    color: var(--ita-colors-neutral-100);
    border-color: var(--ita-colors-danger-100);
}
main a.btn.btn-danger-light,
main button[type="button"].btn.btn-danger-light {
    background-color: var(--ita-colors-danger-100);
    color: var(--ita-colors-danger-900);
    border-color: var(--ita-colors-danger-900);
}
/* EMBEDS */
main > iframe {
    aspect-ratio: 2.06;
    width: 100%;
    height: auto;
    border: none;
}
main > aside > iframe {
    width: 100%;
    aspect-ratio: 16/9;
    background-color: var(--ita-colors-neutral-900);
    border-radius: 9px;
    overflow: hidden;
    box-shadow: var(--libdoc-long-shadow);
}
/* ALERTS */
main .alert {
    font-variation-settings: "wght" 400, "slnt" 0, "CASL" 0, "CRSV" 0;
    padding: var(--ita-spacings-3) var(--ita-spacings-5);
    border-left-style: solid;
    border-left-width: 3px;
    border-color: var(--ita-colors-neutral-500);
    color: var(--ita-colors-neutral-700);
    background-color: var(--ita-colors-primary-100);
    font-size: var(--ita-fontSizes-4);
    letter-spacing: -0.01em;
    line-height: 1.6em;
}
main .alert[data-title]::before {
    content: attr(data-title);
    display: block;
    margin-bottom: var(--ita-spacings-3);
    font-variation-settings: "wght" 700, "slnt" 0, "CASL" 0, "CRSV" 0;
    text-transform: uppercase;
    font-size: var(--ita-fontSizes-3);
    padding-bottom: var(--ita-spacings-1);
    color: var(--ita-colors-neutral-700);
    border-bottom-style: solid;
    border-bottom-width: 1px;
    border-color: var(--ita-colors-neutral-500);
}
main .alert.alert-info {
    background-color: var(--ita-colors-neutral-100);
    color: var(--ita-colors-primary-900);
    border-color: var(--ita-colors-primary-500);
}
main .alert.alert-info::before {
    color: var(--ita-colors-primary-500);
    border-color: currentColor;
}
main .alert.alert-success {
    background-color: var(--ita-colors-success-100);
    color: var(--ita-colors-success-900);
    border-color: var(--ita-colors-success-500);
}
main .alert.alert-success::before {
    color: var(--ita-colors-success-500);
    border-color: currentColor;
}
main .alert.alert-warning {
    background-color: var(--ita-colors-warning-100);
    color: var(--ita-colors-warning-900);
    border-color: var(--ita-colors-warning-500);
}
main .alert.alert-warning::before {
    color: var(--ita-colors-warning-500);
    border-color: currentColor;
}
main .alert.alert-danger {
    background-color: var(--ita-colors-danger-100);
    color: var(--ita-colors-danger-900);
    border-color: var(--ita-colors-danger-500);
}
main .alert.alert-danger::before {
    color: var(--ita-colors-danger-500);
    border-color: currentColor;
}
/* SEARCH OCCURRENCES */
@keyframes flash {
    50% { background-color: #BF0 }
    100% { background-color: inherit }
}
main .__search-occurrence {
    outline: 2px dashed var(--ita-colors-success-500) !important;
    outline-offset: 2px;
    border-radius: 3px;
    animation: flash 1s 0s 1 linear;
}

#nav_primary .nav_primary__anchor::before,
.nav_primary .nav_primary__anchor::before,
#nav_primary_blog_link::before {
    content: '';
    display: flex;
    border-top: 1px dashed var(--ita-colors-neutral-500);
    width: var(--ita-spacings-5);
    min-width: var(--ita-spacings-5);
    order: -2;
}
#nav_primary .nav_primary__anchor::after,
.nav_primary .nav_primary__anchor::after,
#nav_primary_blog_link::after {
    content: '';
    display: flex;
    background-color: var(--ita-colors-primary-500);
    width: var(--ita-spacings-2);
    min-width: var(--ita-spacings-2);
    aspect-ratio: 1;
    order: -1;
    margin-right: var(--ita-spacings-2);
    border-radius: 100%;
    transform: translateX(calc(-50% + 1px));
}
#nav_primary_container [aria-current="page"],
.nav_primary [aria-current="page"] {
    color: var(--ita-colors-primary-500);
}
#nav_primary > ol > li ol li,
.nav_primary > ol > li ol li {
    border-left: 1px dashed var(--ita-colors-neutral-500);
}
#nav_primary > ol > li > a.nav_primary__anchor,
.nav_primary > ol > li > a.nav_primary__anchor {
    font-size: var(--ita-fontSizes-4);
    letter-spacing: -0.04em;
}
#nav_primary > ol > li > ol > li a.nav_primary__anchor,
.nav_primary > ol > li > ol > li a.nav_primary__anchor {
    font-variation-settings: "wght" 400, "MONO" 0, "CASL" 0, "CRSV" 0, "slnt" 0;
}
#nav_primary > ol > li > ol > li a.nav_primary__anchor::after,
.nav_primary > ol > li > ol > li a.nav_primary__anchor::after {
    width: var(--ita-spacings-1);
    min-width: var(--ita-spacings-1);
}

/* MAIN TABLE OF CONTENT */
#toc_main {
    text-wrap-style: balance;
}
#toc_main[open] > summary {
    border-bottom: none;
}
#toc_main[open] > summary .icon-plus-circle,
#toc_main:not([open]) > summary .icon-minus-circle {
    display: none;
}
#toc_main li {
    break-inside: avoid;
}

/* SANDBOX */
.sandbox {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.sandbox .sandbox__resizer {
    width: 20px;
}
.sandbox .sandbox__resizer:active,
.sandbox .sandbox__resizer:hover {
    cursor: col-resize;
    background-color: var(--ita-colors-neutral-700);
}
.sandbox .sandbox__enable_wrapper {
    opacity: 0;
    transition: opacity 300ms;
}
.sandbox .sandbox__enable_wrapper:hover {
    opacity: 1;
}
.sandbox:has(.sandbox__enable_switch:checked) .sandbox__enable_wrapper {
    display: none;
}
.sandbox + .sandbox {
    margin-top: 2em;
}

/* FLOATING TABLE OF CONTENT */
#floating_toc[open] summary [class*="icon-"]::before {
    content: '\e910'
}
#floating_toc a {
    transition: all 300ms;
    max-width: 80vw;
}
#floating_toc a:hover {
    color: var(--ita-colors-primary-700);
    font-variation-settings: "wght" 700, "MONO" 0;
}

/* GTT / Go to top button */
#gtt_btn {
    right: clamp(var(--ita-spacings-5), 100%, calc(50% - var(--ita-widths-content) - var(--ita-widths-content) / 2));
}

/* WIDGETS */
main .widget + .widget {
    margin-top: var(--ita-spacings-5);
}

/* RESPONSIVE MD */
@media (min-width: 960px) {
    #floating_toc_container {
        /* Limit floating TOC left position */
        right: clamp(var(--ita-spacings-5), 100%, calc(50% - var(--ita-widths-content) - var(--ita-widths-content) / 2));
    }
    #floating_toc__list {
        width: 200px;
        max-height: calc(100vh - 160px);
    }
}
/* RESPONSIVE XS + SM */
@media (max-width: 959px) {
    body {
        font-size: var(--ita-fontSizes-4);
    }
    code {
        font-size: var(--ita-fontSizes-2);
    }
    main > * {
        max-width: calc(var(--libdoc-container-width) + 2 * var(--ita-spacings-5));
        padding-left: var(--ita-spacings-5);
        padding-right: var(--ita-spacings-5);
    }
    main h1,
    main h2 {
        font-size: var(--ita-fontSizes-8);
    }
    main h3,
    main h4 {
        font-size: var(--ita-fontSizes-7);
        letter-spacing: -0.05em;
    }
    main h5,
    main h6 {
        font-size: var(--ita-fontSizes-6);
    }
    main > ul {
        padding-left: var(--ita-spacings-5);
    }
    main > ol {
        padding-left: var(--ita-spacings-6);
    }
    main > ul > li,
    main > ul ul > li {
        padding-left: var(--ita-spacings-7);
    }
    main > ul > li::before,
    main > ul ul > li::before {
        width: var(--ita-spacings-3);
    }
    main > ul > li::after,
    main > ul ul > li::after {
        left: var(--ita-spacings-3);
    }
    main > ol:not(:has(ul)) > li,
    main > ol:not(:has(ul)) li > ol > li {
        padding-left: var(--ita-spacings-5);
    }
    main > ol:not(:has(ul)) > li::before,
    main > ol:not(:has(ul)) li > ol > li::before {
        font-size: var(--ita-fontSizes-1);
        transform: translateX(calc(-100% - var(--ita-spacings-2)));
    }
    main > ul:has(ol) ol {
        padding-left: var(--ita-spacings-3);
    }
    main > ol:has(ul) ol {
        padding-left: var(--ita-spacings-5);
    }
    main > ol:has(ul) > li:before {
        font-size: var(--ita-fontSizes-1);
        transform: translateX(calc(-100% - var(--ita-spacings-3)));
    }
    main > *:not(header) li::marker {
        font-size: var(--ita-fontSizes-2);
    }
    main > pre {
        padding: var(--ita-spacings-5);
    }
    main > picture,
    main > figure,
    main figure.wide,
    main picture:has(.wide) {
        padding: var(--ita-spacings-5);
        max-width: calc(calc(var(--ita-widths-content) + 2 * var(--ita-spacings-5)));
    }
    main blockquote {
        font-size: var(--ita-fontSizes-6);
        padding: var(--ita-spacings-5) var(--ita-spacings-7);
    }
    #floating_toc_container {
        box-shadow: var(--libdoc-soft-shadow);
    }
    main .alert {
        font-size: var(--ita-fontSizes-3);
    }
}

/* RESPONSIVE XS + SM */
@media (min-width: 960px) and (max-width: 1440px) {
    body:not(.touch-device) #floating_toc__list {
        transition: opacity 300ms;
        opacity: 0.3;
    }
    body:not(.touch-device) #floating_toc:hover #floating_toc__list {
        opacity: 1;
    }
}

/* HOVERS */
.__hover-1 {
    transition: all 300ms;
}
.__hover-1:hover {
    background-color: var(--ita-colors-primary-500);
    color: var(--ita-colors-primary-100);
    border-color: var(--ita-colors-primary-100);
}
.__hover-1:hover > * {
    color: var(--ita-colors-primary-100);
}
.__hover-2 {
    transition: all 300ms;
}
.__hover-2:hover {
    background-color: var(--ita-colors-success-500);
    color: var(--ita-colors-success-100);
    border-color: var(--ita-colors-success-100);
}
.__hover-2:hover > * {
    color: var(--ita-colors-success-100);
}

/* SHADOWS */
.__soft-shadow {
    box-shadow: var(--libdoc-soft-shadow);
}

/* PRINT */
@media print {
    body {
        background: none;
    }
    main {
        width: 100% !important;
        padding: 0px 30px;
    }
    main * {
        box-shadow: none !important;
        text-wrap-style: auto !important;
    }
    main > * {
        padding: 0 !important;
    }
    #nav_small_devices,
    #floating_toc_container,
    #toc_main,
    #sidebar,
    main h1 a,
    main h2 a,
    main h3 a,
    main h4 a,
    main h5 a,
    main h6 a,
    main > pre > div:first-child {
        display: none;
    }
    main > pre {
        border: none;
        box-shadow: none;
        background-color: transparent;
    }
    main > pre > code {
        box-shadow: none;
        white-space: pre-wrap;
        background-color: transparent;
        font-variation-settings: "slnt" 0, "CASL" 0, "CRSV" 0, "MONO" 1, "wght" 500;
    }
    main > pre > code::before {
        margin-top: 1em;
    }
    main h1,
    main h2,
    main h3,
    main h4,
    main h5,
    main h6 {
        padding-left: 0px !important;
        padding-right: 0px !important;
    }
    footer {
        min-height: 0 !important;
    }
}
