/*
/// Copyright (c) 2022-2024 Jonah Aragon <jonah@triplebit.net>
///
/// Permission is hereby granted, free of charge, to any person obtaining a
/// copy of this software and associated documentation files (the "Software"),
/// to deal in the Software without restriction, including without limitation
/// the rights to use, copy, modify, merge, publish, distribute, sublicense,
/// and/or sell copies of the Software, and to permit persons to whom the
/// Software is furnished to do so, subject to the following conditions:
///
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
/// DEALINGS
*/

@font-face {
    font-family: 'Bagnard';
    src: url("../brand/fonts/Bagnard/Bold.woff") format("woff");
    font-display: swap;
}

/* Define brand */
:root, [data-md-color-scheme="default"] {
    --md-default-bg-color: rgb(247, 247, 252);
    --md-primary-fg-color: rgb(255, 255, 255);
    --md-primary-fg-color--light: #ffd06f;
    --md-primary-fg-color--dark:  #db9d21;
    --md-primary-bg-color: rgba(0,0,0,.75);
    --md-primary-bg-color--light: rgba(0,0,0,.54);
    --md-accent-fg-color: #4e30e6;
    --pg-light-border: rgb(229, 231, 235);
    --pg-hero-color: rgb(45, 45, 45);
    --pg-purple: #603aa0;
    --pg-red: #c0322f;
    --pg-orange: #ac2f09;
    --pg-teal: #04756a;
    --pg-brown: #8d6e62;
    --pg-blue: #0e66ae;
    --pg-green: #2e7e31;
    --pg-blue-gray: #546d78;
    --pg-viridian: #40826d;
}
:root, [data-md-color-scheme="slate"] {
    --md-default-bg-color: rgb(26, 26, 27);
    --md-primary-fg-color: rgb(15, 15, 15);
    --md-primary-fg-color--light: #ffd06f;
    --md-primary-fg-color--dark:  #db9d21;
    --md-primary-bg-color: rgba(0,0,0,.75);
    --md-primary-bg-color--light: rgba(0,0,0,.54);
    --md-accent-fg-color: #ffdb57;
    --pg-light-border: rgb(47, 47, 47);
    --pg-hero-color: #ffd06f;
    --pg-purple: #af94de;
    --pg-red: #ff6c6a;
    --pg-orange: #e97b5a;
    --pg-teal: #8dc6c1;
    --pg-brown: #b6988c;
    --pg-blue: #74b9f1;
    --pg-green: #72cd75;
    --pg-blue-gray: #9ab2bc;
    --pg-viridian: #40826d;
    --md-footer-bg-color--dark: var(--md-default-bg-color);
}

/* Better contrast link colors */
[data-md-color-scheme="default"] > * {
    --md-typeset-a-color: rgb(79, 70, 229);
}
[data-md-color-scheme="slate"] > * {
    --md-typeset-a-color: rgb(255, 208, 111);
}

/* Hide shadow under navigation */
.md-header[data-md-state="shadow"],
.md-header--shadow {
    box-shadow: none;
}

/* buttons */
.md-typeset .md-button {
    color: var(--md-typeset-color);
    background: none;
    border: 1px solid var(--pg-light-border);
    border-radius: 6px;
    box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
}
.md-typeset .md-button--primary {
    color: var(--md-typeset-a-color);
    background-color: var(--md-primary-fg-color);
}

.md-typeset .grid.cards > :is(ul, ol) > li, .md-typeset .grid > .card { /* Firefox */
    color: var(--md-typeset-color);
    background: var(--md-primary-fg-color);
    border: 1px solid var(--pg-light-border);
    border-radius: 6px;
    box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
    transition: none;
    position: relative;
}

.md-typeset .grid.cards>:-webkit-any(ul,ol)>li, .md-typeset .grid>.card { /* Webkit */
    color: var(--md-typeset-color);
    background: var(--md-primary-fg-color);
    border: 1px solid var(--pg-light-border);
    border-radius: 6px;
    box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
    transition: none;
    position: relative;
}

.md-typeset .grid.cards > :is(ul, ol) > li:is(:focus-within, :hover), .md-typeset .grid > .card:is(:focus-within, :hover) { /* Firefox */
    box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
    border-color: var(--md-accent-fg-color);
}

.md-typeset .grid.cards>:-webkit-any(ul,ol)>li:-webkit-any(:focus-within,:hover) { /* Webkit */
    box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
    border-color: var(--md-accent-fg-color);
}

.md-typeset .grid.cards > :is(ul, ol) > li > a::after, .md-typeset .grid>.card a::after { /* Firefox */
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.md-typeset .grid.cards>:-webkit-any(ul, ol)>li > a::after, .md-typeset .grid>.card a::after { /* Webkit */
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

/* header font */

.md-header__topic:first-child {
    font-weight: 300;
}
h1, h2, h3, .md-header__topic {
    font-family: "Bagnard", serif;
}

/* Recommendation cards */
.md-typeset .admonition.recommendation,
.md-typeset details.recommendation {
    border: 1px solid var(--pg-light-border);
    font-size: inherit;
}
.md-typeset .recommendation > .admonition-title,
.md-typeset .recommendation > summary {
    background-color: rgba(43, 155, 70, 0.0);
    border: none;
    padding-left: 0.6rem;
}
.md-typeset .recommendation > .admonition-title::before,
.md-typeset .recommendation > .admonition-title,
.md-typeset .recommendation > summary::before {
    display: none;
}
img[align="right"], svg[align="right"] {
    width: 150px;
}

.md-typeset .admonition.downloads,
.md-typeset details.downloads {
    border: none;
    box-shadow: none;
}
.md-typeset .downloads > .admonition-title,
.md-typeset .downloads > summary {
    background-color: rgba(43, 155, 70, 0.0);
}
.md-typeset .downloads > .admonition-title::before,
.md-typeset .downloads > .admonition-title,
.md-typeset .downloads > summary::before {
    background-color: var( --md-typeset-a-color);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-arrow-down-circle-fill' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V4.5z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-arrow-down-circle-fill' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V4.5z'/%3E%3C/svg%3E");
}
.md-typeset .downloads > summary::after {
    right:auto;
}

.downloads > ul > li {
    padding: 0.5em 0 !important;
}

.downloads > ul .twemoji {
    width: .9rem
}

details[class="downloads annotate"] > p .md-annotation span span::before {
    vertical-align: 0;
}

.downloads > ul {
    display: grid!important;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    list-style-type: none;
}


.md-typeset .admonition.person,
.md-typeset details.person {
    border-color: var(--md-default-bg-color);
    box-shadow: none;
    background-color: var(--md-default-bg-color);
    margin: 0;
}
.md-typeset .person > .admonition-title,
.md-typeset .person > summary {
    background-color: var(--md-default-bg-color);
}
.md-typeset .person > .admonition-title::before,
.md-typeset .person > summary::before {
    background-color: var(--md-accent-fg-color);
    -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M24 23.95q-3.3 0-5.4-2.1-2.1-2.1-2.1-5.4 0-3.3 2.1-5.4 2.1-2.1 5.4-2.1 3.3 0 5.4 2.1 2.1 2.1 2.1 5.4 0 3.3-2.1 5.4-2.1 2.1-5.4 2.1ZM8 40v-4.7q0-1.9.95-3.25T11.4 30q3.35-1.5 6.425-2.25Q20.9 27 24 27q3.1 0 6.15.775 3.05.775 6.4 2.225 1.55.7 2.5 2.05.95 1.35.95 3.25V40Z"/></svg>');
            mask-image: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M24 23.95q-3.3 0-5.4-2.1-2.1-2.1-2.1-5.4 0-3.3 2.1-5.4 2.1-2.1 5.4-2.1 3.3 0 5.4 2.1 2.1 2.1 2.1 5.4 0 3.3-2.1 5.4-2.1 2.1-5.4 2.1ZM8 40v-4.7q0-1.9.95-3.25T11.4 30q3.35-1.5 6.425-2.25Q20.9 27 24 27q3.1 0 6.15.775 3.05.775 6.4 2.225 1.55.7 2.5 2.05.95 1.35.95 3.25V40Z"/></svg>');
}

@media screen and (max-width: 600px) {
  .downloads > ul {
    grid-template-columns: repeat(2, 1fr);
  }
  .all-contributors-table tbody td {
    display: block;
    width: 100%;
  }
}

/* Card links */
.md-typeset .card-link {
    color: var(--md-default-fg-color--light);
}

.md-typeset .card-link:hover {
    color: var(--md-accent-fg-color);
}

.md-typeset .card-link:not(:first-child) {
    padding-left: 0.5em;
}

/* Correct page icon size */
.md-nav__link svg {
    width: 22px;
}

/* Un-sticky sidebar without JS */
.no-js .md-sidebar {
    align-self: auto;
}

/* Maintain 16:9 aspect ratio on embedded YT videos */
.yt-embed {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    height: 0;
}

.yt-embed iframe {
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Badge colors */
.pg-purple {
    color: var(--pg-purple)!important;
}
.pg-red {
    color: var(--pg-red)!important;
}
.pg-orange {
    color: var(--pg-orange)!important;
}
.pg-teal {
    color: var(--pg-teal)!important;
}
.pg-brown {
    color: var(--pg-brown)!important;
}
.pg-blue {
    color: var(--pg-blue)!important;
}
.pg-green {
    color: var(--pg-green)!important;
}
.pg-blue-gray {
    color: var(--pg-blue-gray)!important;
}
.pg-viridian {
    color: var(--pg-viridian)!important;
}

/* Make header icons smaller */
.md-header__button.md-icon svg {
    height: 1rem;
    width: 1rem;
}

/* override language selector */
.md-select button img.twemoji {
    height: 1rem;
    vertical-align: middle;
}

.md-select__link img.twemoji {
    height: 1rem;
    vertical-align: text-bottom;
    margin-right: 1%;
}

.md-select__inner {
  left: 0%;
}

.md-select__inner:after {
  display: none;
}

/* Custom header + nav */
.md-header >*, .md-tabs {
    background: none;
}

[data-md-color-scheme="slate"] .md-header >*, [data-md-color-scheme="slate"] .md-tabs {
    color: #fff;
}

.md-header__button {
    color: var(--md-default-fg-color--light);
}

.md-header, .md-tabs { /* firefox fallback */
    background-color: rgba(255, 255, 255, .95);
}

[data-md-color-scheme="slate"] .md-header, [data-md-color-scheme="slate"] .md-tabs { /* firefox fallback */
    background-color: rgba(9, 9, 9, 0.95);
}

@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
    .md-header, .md-tabs {
        background-color: rgba(255, 255, 255, .6);
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
    }
    [data-md-color-scheme="slate"] .md-header, [data-md-color-scheme="slate"] .md-tabs {
        background-color: rgba(0, 0, 0, 0.5);
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
    }
}

[data-md-color-scheme="default"] img[src$="#only-dark"] {
    display: none !important;
}

[data-md-color-scheme="slate"] img[src$="#only-light"] {
    display: none !important;
}

[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title[for="__drawer"] {
    color: var(--md-typeset-a-color)
}

@media screen and (max-width: 59.9375em) {
    .md-nav__source {
        display: none;
    }
}

header[class="md-header md-header--shadow"], nav[class="md-tabs"] {
    border-bottom: 1px solid var(--pg-light-border);
}

@media screen and (min-width: 60em) {
    .md-search__overlay {
        background-color: transparent;
    }

    .md-search__form {
        border: 1px solid var(--pg-light-border);
        background-color: var(--md-primary-fg-color) !important;
        box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.02) 0px 1px 3px 0px, rgba(0, 0, 0, 0.02) 0px 1px 2px -1px;
        border-radius: 6px;
        height: 1.4rem;
    }

    [data-md-toggle="search"]:checked ~ .md-header .md-search__form {
        border-radius: 6px 6px 0 0;
    }

    [dir="ltr"] .md-search__output {
        top: initial;
        border-radius: 0 0 6px 6px;
    }

    [data-md-toggle="search"]:checked ~ .md-header .md-search__output {
        box-shadow: 0 0 .6rem rgba(0,0,0,.07);
    }

    .md-search__input {
        font-size: .6rem;
    }

    .md-search__options {
        top: .05rem;
    }

    .md-search__icon, .md-search__input::placeholder {
        color: var(--md-default-fg-color--light) !important;
    }

    .md-search__icon svg {
        width: .75rem;
        height: .75rem;
    }
}

div[class="md-source__icon md-icon"], div[class="md-source__repository md-source__repository--active"] *:not(.md-source__facts):not(.md-source__fact) {
    display: none;
}

.md-source__fact::before {
    color: var(--md-default-fg-color--light);
}

.md-header__option {
    transition: max-width 0ms,opacity 0ms;
}

.md-header__source {
    text-align: right;
    width: initial;
    margin-right: 1em;
}

[dir="ltr"] .md-source__icon + .md-source__repository {
    padding-left: 0;
}

.md-source__repository {
    max-width: initial;
}

.md-tabs__link--active {
    background:
        radial-gradient(farthest-side, var(--md-primary-fg-color--light) 98%,transparent 100%) bottom right/2px 2px,
        radial-gradient(farthest-side, var(--md-primary-fg-color--light) 98%,transparent 100%) bottom left /2px 2px,
        linear-gradient(var(--md-primary-fg-color--light),var(--md-primary-fg-color--light)) bottom/calc(100% - 2px) 2px;
    background-repeat:no-repeat;
    background-origin: padding-box;
    padding-bottom: 2px;
}

/* Redesigned admonitions */

.md-typeset :is(.admonition, details) {
    background-color: var(--md-primary-fg-color);
}

.md-typeset .recommendation img[align="right"] {
    width: 100px;
}

/* Custom tooltips */
.md-tooltip {
    background-color: var(--md-primary-fg-color);
    border-radius: 6px;
}

path[d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"] {
    d: path('M16.937 3.722a2.363 2.363 0 1 1 3.341 3.341L19.342 8 16 4.658l.937-.936ZM13.467 7 3 17.467V21h3.532L17 10.533 13.465 7h.001Z')
}

/* Cover images */
.cover.center-cropped {
    width: 100%;
    height: 200px;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
    position: relative;
    text-align: center;
    border-radius: 0.5em;
}

/* Set the image to fill its parent and make transparent */
.cover.center-cropped img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.cover ~ h1 {
    margin: 1.25em 0 0;
    text-align: center;
}

/* Social share button */
.social-share-text {
    width: 100%;
    padding: 1em !important;
}

.pg-proconlist {
    list-style-type: disc;
    padding-inline-start: 1em;
}