:root {
    --color-white: #FFFFFF;
    --color-gray: #D9D9D9;
    --color-brown: #D29E79;
    --color-black: #3E3E3E;
    --arrow: "→ ";
    --gap-s: 0.9rem;
    --gap-m: 1rem;
    --gap-l: 1.5rem;
    --gap-xl: 2rem;
    --gap-xxl: 3rem;
}

body {
    font-family: 'Open Sans', sans-serif;
    background-color: var(--color-black);
    color: var(--color-white);
    line-height: 1.5;
    scroll-behavior: smooth;
    margin-top: 6rem;
}

li > p {
	margin: 0;
}

@media (width < 600px) {
    body {
	margin-top: 0;
	margin-bottom: 6rem;
    }
}


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

i {
    font-style: normal;
}

strong,
b {
    color: var(--color-brown);
    font-weight: bold;
}

table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--gap-l) 0;
    background-color: rgba(217, 217, 217, 0.05);
}

table thead {
    background-color: var(--color-brown);
    color: var(--color-black);
}

table th,
table td {
    padding: var(--gap-s) var(--gap-m);
    text-align: left;
    border: 1px solid rgba(210, 158, 121, 0.3);
}

table tbody tr:hover {
    background-color: rgba(217, 217, 217, 0.1);
}

table th {
    font-weight: bold;
}

/* Components */

.container {
    margin-inline: auto;
    max-width: 1000px;
    padding: 1rem;
}

.container--full {
    max-width: 100%;
}

.text-center {
    text-align: center;
}

a,
.link {
    display: inline-block;
    color: var(--color-brown);
    text-decoration: underline;
    padding-block: .3rem;
}

a:hover,
.link:hover {
    text-decoration: none;
}

.title {
    font-weight: normal;
    text-decoration: underline;
    text-decoration-color: var(--color-brown);
    text-decoration-thickness: 2px;
    text-underline-offset: .2rem;
}

.list {
    list-style-type: var(--arrow);
}

.center-block {
    display: block;
    margin-inline: auto;
}

.image {
    display: block;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

.image--responsive {
    max-width: 100%;
    width: initial;
}

.image--cover-book {
    max-width: 18rem;
}

.image--home {
    max-width: 40rem;
    padding-block: var(--gap-l);
}


.block-center {
    margin-inline: auto;
}

.button {
    display: inline-block;
    min-width: 4rem;
    box-sizing: border-box;
    text-align: center;
    padding: .5rem .8rem;
    border: 2px solid var(--color-brown);
    color: var(--color-gray);
    background-color: var(--color-black);
    text-decoration: none;
    border-radius: .6rem;
}

.button:hover {
    --translate: 3px;
    border-color: var(--color-brown);
    box-shadow: var(--translate) var(--translate) 0 var(--color-brown);
    text-decoration: none;
    transform: translate(calc(-1 * var(--translate)), calc(-1 * var(--translate)));
}

.header {
    position: fixed;
    inset-inline: 0;
    top: 0;
    border-bottom: 2px solid var(--color-brown);
    background-color: var(--color-black);
    overflow-x: auto;
    overflow-y: hidden;
}

@media (width < 600px) {
    .header {
	top: initial;
	bottom: 0;
	border-bottom: none;
	border-top: 2px solid var(--color-brown);
    }
}

.header .nav__list {
    display: grid;
    grid-template-columns: 1fr repeat(5, auto);
}

@media (width < 600px) {
    .header .nav__list {
	justify-content: flex-start;
    }
}

.nav-main__list {
    grid-gap: 1rem;
}

@media (width < 600px) {
    .nav-main__list > li:first-child {
	margin-right: 6rem;
    }
}

.nav-main__logo {
    width: 80px;
    margin-bottom: calc(var(--gap-m) * -1);
}

.nav-main__link--logo {
    padding-bottom: 0;
    position: absolute;
    bottom: 0;
}

.nav-main--active {
    background-color: var(--color-brown);
    color: var(--color-black);
}

.nav-main--active:hover {
    transform: initial;
    box-shadow: initial;
}

.nav__list {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav__list--docs {
    display: initial;
    flex-wrap: initial;
}

.code__block {
    background-color: var(--color-gray);
    color: var(--color-black);
    padding: 1rem;
    border-radius: .5rem;
    font-family: 'Fira Code', monospace;
    overflow-x: auto;
}

.code__line {
    color: var(--color-brown);
    font-family: 'Fira Code', monospace;
}

.details {
    margin-block: 1rem;
    border: 2px solid var(--color-brown);
}


.details__title {
    border-bottom: 2px solid var(--color-brown);
}

.details__summary {
    background-color: var(--color-brown);
    color: var(--color-white);
    padding: 1rem;
    list-style-type: "🐱 ";
}


.details[open]>.details__summary {
    list-style-type: "😺 ";
}

.details__content {
    padding: 1rem;
}

/* Hero */

.hero__hgroup {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr auto 1fr;
    grid-template-areas:
	"title image"
	"subtitle image"
	"nav image";
    grid-gap: 1rem;
}

@media (width < 600px) {
    .hero__hgroup {
	grid-template-columns: 1fr;
	grid-template-rows: repeat(3, auto);
	grid-template-areas:
	    "title"
	    "image"
	    "subtitle"
	    "nav";
    }
}

.hero__logo {
    grid-area: image;
}

.hero__title {
    grid-area: title;
    align-self: end;
}

.hero__subtitle {
    grid-area: subtitle;
}

.nav-docs {
    position: fixed;
}

@media (width < 600px) {
    .nav-docs {
	position: initial;
    }
}

.nav-docs__list {
    list-style: "➔ ";
    list-style-position: inside;
}

/* Home */

.nav-home__list {
    justify-content: center;
    gap: var(--gap-l);
}

/* Animate Background Image */
@keyframes aniTitle {
    0% {
	background-position: 0% 0;
    }
    100% {
	background-position: 100% 0;
    }
}

.hero__title {
    background: url(/img/title-background.avif) repeat-x;
    font-size: 3rem;
    background-clip: text;
    background-size: cover;
    font-weight: bold;
    /* Animate Background Image */
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
    -webkit-text-stroke: 1px;
    text-stroke: 1px;
    animation: aniTitle 10s linear infinite;
    /* Activate hardware acceleration for smoother animations */
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    z-index: -1;
}

@media (width < 600px) {
    .hero__title {
	text-align: center;
    }
}


/* Docs */
.docs {
    display: grid;
    grid-template-columns: 10rem auto;
    gap: var(--gap-l);
}

@media (width < 600px) {
    .main--docs {
	padding-inline: var(--gap-m);
    }
    .docs {
	display: flex;
	grid-template-columns: initial;
	gap: var(--gap-l);
	flex-direction: column-reverse;
    }
}

/* Tutorials */
.tutorials ul {
    list-style: "📚 ";
    list-position: inside;
}

/* Footer */
.footer {
    text-align: center;
    padding-block: var(--gap-l);
    border-top: 2px solid var(--color-brown);
}

.footer_nav {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    list-style: none;
    padding: 0;
    gap: var(--gap-m);
}

@media (width < 768px) {
    .footer_nav {
	grid-template-columns: 1fr;
    }
}

/* ------- '.one' classes used by 'one-ox' org backend ------- */

.one-hl {
    font-family: 'Fira Mono', monospace;
    font-size: 80%;
    border-radius: 6px;
    box-sizing: border-box;
}

.one-hl-inline {
    background: #31424a;
    padding: 0.2em 0.4em;
    margin: 0;
    white-space: break-spaces;
}

.one-hl-block {
    background: #161f22;
    color: #c5c5c5;
    display: block;
    overflow: auto;
    padding: 16px;
    line-height: 1.45;
    white-space: break-spaces;
}

.one-blockquote {
    background: #202d31;
    border-left: 0.3em solid #31424a;
    margin: 0px auto 16px;
    padding: 1em 1em;
    width: 90%;
}

.one-blockquote>p:last-child {
    margin-bottom: 0;
}

.one-hl-results {
    background: #202d31;
    border-left: 2px solid #c5c5c5;
    display: block;
    margin: auto;
    padding: 0.5em 1em;
    overflow: auto;
    width: 98%;
}

.one-hl-negation-char {
    color: #ff6c60
}

/* font-lock-negation-char-face */
.one-hl-warning {
    color: #fd971f
}

/* font-lock-warning-face */
.one-hl-variable-name {
    color: #fd971f
}

/* font-lock-variable-name-face */
.one-hl-doc {
    color: #d3b2a1
}

/* font-lock-doc-face */
.one-hl-doc-string {
    color: #d3b2a1
}

/* font-lock-doc-string-face */
.one-hl-string {
    color: #d3b2a1
}

/* font-lock-string-face */
.one-hl-function-name {
    color: #02d2da
}

/* font-lock-function-name-face */
.one-hl-builtin {
    color: #b2a1d3
}

/* font-lock-builtin-face */
.one-hl-type {
    color: #457f8b
}

/* font-lock-type-face */
.one-hl-keyword {
    color: #f92672
}

/* font-lock-keyword-face */
.one-hl-preprocessor {
    color: #f92672
}

/* font-lock-preprocessor-face */
.one-hl-comment-delimiter {
    color: #8c8c8c
}

/* font-lock-comment-delimiter-face */
.one-hl-comment {
    color: #8c8c8c
}

/* font-lock-comment-face */
.one-hl-constant {
    color: #f5ebb6
}

/* font-lock-constant-face */
.one-hl-reference {
    color: #f5ebb6
}

/* font-lock-reference-face */
.one-hl-regexp-grouping-backslash {
    color: #966046
}

/* font-lock-regexp-grouping-backslash */
.one-hl-regexp-grouping-construct {
    color: #aa86ee
}

/* font-lock-regexp-grouping-construct */
.one-hl-number {
    color: #eedc82
}

/* font-lock-number-face */

.one-hl-sh-quoted-exec {
    color: #62bd9c
}

/* sh-quoted-exec */

.one-hl-ta-colon-keyword {
    color: #62b5e0;
}

/* ta-colon-keyword-face */


.one-hl-org-code {
    color: #dedede;
    background: #31424a;
}

.one-hl-org-block {
    color: #c5c5c5;
    background: #31424a;
}

.one-hl-org-block-begin-line {
    color: #c3957e;
}

.one-hl-org-block-end-line {
    color: #c3957e;
}

.one-hl-org-meta-line {
    color: #8c8c8c;
}

.one-hl-org-quote {
    color: #c5c5c5
}

.one-hl-org-drawer {
    color: #d3b2a1;
    font-size: 0.9em;
}

.one-hl-org-special-keyword {
    color: #c3957e;
    font-size: 0.9em;
}

.one-hl-org-property-value {
    color: #d2934a;
    font-size: 0.9em;
}

.one-hl-org-level-1 {
    font-size: 1.7em;
    text-decoration: underline;
}

.one-hl-org-level-2 {
    font-size: 1.4em;
    text-decoration: underline;
}

.one-hl-org-level-3 {
    font-size: 1.2em;
    text-decoration: underline;
}

.one-hl-org-level-4 {
    font-size: 1.1em;
    text-decoration: underline;
}

.one-hl-org-level-5 {
    font-size: 1.0em;
    text-decoration: underline;
}

.one-hl-org-level-6 {
    font-size: 1.0em;
    text-decoration: underline;
}

.one-hl-org-level-8 {
    font-size: 1.0em;
    text-decoration: underline;
}

.one-hl-org-level-8 {
    font-size: 1.0em;
    text-decoration: underline;
}
