/* Prevent fixed navbar from covering up deep-linked anchors. */
:target
{
    /* Safari < 14.5 needs this non-standard property */
    scroll-snap-margin-top: 4em;
    scroll-margin-top: 4em;
}

.navbar-top
{
    z-index: 101010;
    position: fixed;
    width: 100%;
    max-width: 100vw;
    top: 0;
    right: 0;
    left: 0;
    transition-property: background-color;
    transition-timing-function: ease-in-out;
    transition-duration: 250ms;
    background-color: transparent;
}

body.reduce-motion .navbar-top,
body.reduce-motion .navbar-top:after
{
    transition-property: none;
}

@media screen and (prefers-reduced-motion)
{
    .navbar-top
    {
        transition-property: none;
    }
}

#navbar
{
    background-color: var(--page-bg);
    color: var(--text);
    border-bottom: 0.2rem solid transparent;
}

#navbar.scrolled
{
    border-bottom: 0.2rem solid var(--text);
}

.navbar-top ul
{
    list-style: none;
    display: grid;
    grid-template-columns: auto 1fr auto auto auto auto auto;
    grid-gap: 0;
    margin: 0 auto;
    padding: 0.25em;
    position: relative;
    max-width: 130rem;
    font-size: 0.85em;
}

.navbar-top ul
{
    grid-template-columns: auto 1fr auto;
}

.navbar-top li
{
    margin: 0;
    padding: 0.15em 0.3em 0.25em 0.3em;
    position: relative;
    font-weight: 700;
    letter-spacing: -0.0075em;
    border-radius: .75em;
    color: var(--text);
    display: grid;
    grid-template-columns: auto 1fr;
    grid-gap: 0.2em;
    align-items: center;
    justify-items: start;
}

.navbar-top li a
{
    text-decoration: none;
}

.navbar-top li a::after
{
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.navbar-top li::before,
#nav-search-field-icon
{
    content: '';
    display: inline-block;
    top: 0;
    left: 0;
    width: 1em;
    height: 1em;
    -webkit-mask-size: contain;
    -webkit-mask-position: 0% 50%;
    -webkit-mask-repeat: no-repeat;
    background-color: var(--text);
}


/* Search form in navbar */

#nav-search-container
{
    grid-row: 1;
}
#nav-search-container::before
{
    display: none;
}

#nav-search-container form
{
    align-items: center;
    padding: 0;
    margin: 0;
}

#nav-search-field
{
    display: block;
    cursor: pointer;
    -webkit-appearance: none;
    z-index: 9999;

    background: transparent;
    color: transparent;

    border-width: .1em;
    border-style: solid;
    border-color: transparent;
    border-radius: 2em;

    width: 1.8em;
    padding: .2em .5em .2em .67em;
    margin: 0;

    font-size: .85em;
    caret-color: var(--text);

    transition-property: width, background, border-color, color;
    transition-duration: 300ms;
    transition-timing-function: ease; 
}

#nav-search-field:placeholder-shown
{
    text-overflow: ellipsis;
}
#nav-search-field::placeholder
{
    color: transparent;
}
#nav-search-field.expanded::placeholder,
input#whopper:checked + div.whopper #nav-search-field::placeholder
{
    color: var(--text);
    opacity: .5;
}
#nav-search-field.expanded,
input#whopper:checked + div.whopper #nav-search-field
{
    cursor: auto;
    width: 10em;
    border-color:  var(--text);
    color: var(--text);
}
input#whopper:checked + div.whopper #nav-search-field
{

    font-size: .8em;
}

#nav-search-field-icon
{
    -webkit-mask-image: url("images/search.svg");
    -webkit-mask-position: center;
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
    transition: opacity .3s ease;
}
#nav-search-field.expanded + #nav-search-field-icon,
input#whopper:checked + div.whopper #nav-search-field + #nav-search-field-icon
{
    opacity: 0;
    pointer-events: none;
}

#nav-search-field::-webkit-search-cancel-button
{
    -webkit-appearance: none;
    display: none;
    z-index: 10000;

    width: .75em;
    height: .75em;
    -webkit-mask-size: contain;
    -webkit-mask-position: 50% 50%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-image: url("images/clear.svg");
    background-color: var(--text);
}

#nav-search-field.expanded::-webkit-search-cancel-button,
input#whopper:checked + div.whopper #nav-search-field::-webkit-search-cancel-button
{
    display: block;
}

#nav-search-results
{
    display: none;

    background: var(--card-bg);
    position: absolute;
    top: 2.1em;
    left: 1.1em;
    max-width: 16em;

    font-size: .87em;

    border-radius: 0 .3em .3em .3em;
    border: .1em solid var(--text);
    box-shadow: 0 0 .2em rgba(0,0,0,.3);

    z-index: 10001;
}

#nav-search-results ul
{
    list-style: none;
    display: block;
    margin: 0;
    padding: .25em;
    position: relative;
}
#nav-search-results li
{
    display: block;

    margin: 0;
    width: 15em;
    height: 1.5em;
    max-width: 15em;
    color: var(--text);

    font-weight: 400;
    letter-spacing: 0;
    white-space: nowrap;

    grid-template-columns: auto;
    grid-gap: 0;
    align-items: start;
    justify-items: start;
}

#nav-search-results li a
{
    display: block;
    position: absolute;

    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 0.1em 0.5em 0.35em .5em;

    border-radius: .2em;
    overflow: clip;
    text-overflow: ellipsis;
}
#nav-search-results li a:hover
{
    background-color: var(--link);
    color: var(--card-bg);
}

#nav-search-results li:before
{
    display: none;
}

#nav-search-field.expanded + #nav-search-field-icon + #nav-search-results
{
    /* display: block; */
}

input#whopper:checked + div.whopper #nav-search-results
{
    max-width: 14em;
    font-size: .7em;
    top: 2.35em;
    left: 1.2em;
}
input#whopper:checked + div.whopper #nav-search-results li
{
    max-width: 13em;
}


/* Hamburger Menu Active */

input#whopper
{
    margin: 0;
    padding: 0;
    border: 0;

    position: relative;
    display: block;
    visibility: visible;

    font: inherit;
    font-weight: 700;
    color: var(--text);

    align-items: center;
    justify-items: start;
    grid-column: 6;
    grid-row: 1;

    width: 2em;
    height: 2em;
    cursor: pointer;
    z-index: 111111;
    pointer-events: all;
    -webkit-appearance: none;
    appearance: none;
}

input#whopper::before
{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-mask-size: contain;
    -webkit-mask-position: 0% 50%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-image: url("images/menu.svg");
    background-color: var(--text);
    background-size: contain;
}

label.whopper
{
    display: none;
}

div.whopper
{
    --page-bg: var(--psd-lightest-gray);
    --text: var(--screen-black);

    display: grid;
    position: absolute;
    grid-gap: 0.5em;
    margin-top: -0.5em;
    top: 0;
    right: -100vw;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto;
    padding: .9em 2.5em 0.5em 0.5em;
    background: var(--page-bg);
    color: var(--text);
    border-radius: 0 0 0 0.25em;
    border: 0.2rem solid var(--text);
    border-top: 0;
    border-right: 0;

    transition-duration: 350ms;
    transition-timing-function: ease-in-out;
    transition-property: right, transform;
    
    transform: skew(50deg, 0deg);  
        
    pointer-events: none;
}

input#whopper:checked + div.whopper
{
    right: 0;
    pointer-events: all;
    
    transform: skew(0deg, 0deg);
}

input#whopper:checked::before
{
    background: var(--purple);
}

input#whopper:checked + div.whopper > li:hover
{
    color: var(--purple);
}

input#whopper:checked + div.whopper > li:hover::before
{
    background-color: var(--purple);
}

li#nav-buy
{
    grid-row: 1;
    grid-column: 2 / span 4;
    align-self: center;
    justify-self: end;
    white-space: nowrap;
}

li#nav-admin,
li#nav-games,
li#nav-dev,
li#nav-help,
li#nav-account
{
    grid-column: 1;
}

li#nav-news
{
    grid-row: 2;
}

li#nav-games
{
    grid-row: 3;
}

li#nav-dev
{
    grid-row: 4;
}

li#nav-help
{
    grid-row: 5;
}

li#nav-account
{
    grid-row: 6;
}

li#nav-admin
{
    grid-row: 7;
}


/* Subnav */

/* Nav */

nav.internal-nav
{
    width: 80rem;
    margin: 2rem auto;
}

nav.internal-nav ul
{
    width: 100%;
    max-width: 70rem;
    list-style: none;
    margin: 0 auto;
    padding: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
}

nav.internal-nav li
{
    margin: 0 0.5em;
    font-size: 0.65em;
    font-weight: 600;
}

nav.internal-nav li a
{
    padding: .15em .5em .25em .5em;
    border-radius: .25em;
    white-space: nowrap;

    color: var(--text);
    background: transparent;

    text-decoration: none;
    text-transform: uppercase;
}

nav.internal-nav li.here a
{
    background-color: var(--text);
    color: var(--card-bg);
}

nav.internal-nav li.button a
{
    padding: .35em .7em;
    border-radius: .35em;

    /* border: .2em solid var(--subtle); */
    background-color: var(--card-bg);
}
nav.internal-nav li.button a:hover
{
    color: var(--link);
}

/* END SUBNAV */


@media (min-width: 670px)
{

    /* Hamburger Menu Hidden */
    div.whopper,
    input#whopper:checked + div.whopper
    {
        font-size: 1em;
        display: contents;
        --page-bg: inherit;
        --text: inherit;
        pointer-events: all;
    }

    input#whopper
    {
        pointer-events: none;
        visibility: hidden;
    }

    li#nav-admin,
    li#nav-games,
    li#nav-news,
    li#nav-search-container,
    li#nav-dev,
    li#nav-help,
    li#nav-account,
    li#nav-buy
    {
        grid-row: 1;
    }

    li#nav-search-container
    {
        grid-column: 3;
    }

    li#nav-news
    {
        grid-column: 4;
    }

    li#nav-games
    {
        grid-column: 5;
    }

    li#nav-dev
    {
        grid-column: 6;
    }

    li#nav-help
    {
        grid-column: 7;
    }

    li#nav-account
    {
        grid-column: 8;
    }
    li#nav-admin
    {
        grid-column: 9;

    }
    li#nav-buy
    {
        grid-column: 10;
    }

}

li#nav-home
{
    grid-row: 1;
    grid-column: 1;
    top: 0.125em;
}

li#nav-home::before
{
    -webkit-mask-image: url("images/playdate-logo.svg");
}

li#nav-admin::before
{
    -webkit-mask-image: url("images/panic.svg");
}

li#nav-games::before
{
    -webkit-mask-image: url("images/toolbar-icon-games-3.svg");
    transform: scale(1.1);
}

li#nav-news::before
{
    -webkit-mask-image: url("images/toolbar-icon-news.svg");
}

li#nav-dev::before
{
    -webkit-mask-image: url("images/toolbar-icon-dev.svg");
}

li#nav-help::before
{
    -webkit-mask-image: url("images/toolbar-icon-help.svg");
}

li#nav-account::before
{
    -webkit-mask-image: url("images/toolbar-icon-account.svg");
}

li#nav-buy::before
{
    -webkit-mask-image: url("images/toolbar-icon-shop.svg");
}

li#nav-home
{
    position: relative;
    color: transparent;
}

li#nav-home::before
{
    position: absolute;
    width: 100%;
    height: 100%;
}

li#nav-buy
{
    color: var(--white);
    /* background-color: var(--purple); */
    background-color: var(--aqua);
    padding-left: .4em;
    padding-right: .4em;
}

li#nav-buy::before
{
    background-color: var(--white);
}

.navbar-top[data-color="purple"] li#nav-buy
{
    background: var(--white);
    color: var(--purple);
}

.navbar-top[data-color="purple"] li#nav-buy::before
{
    background-color: var(--purple);
}

#navbar
{
    font-size: 1.8em;
}

body
{
    padding-top: calc(1.8em * 2.125);

}

/* Sitemap */

footer #sitemap
{
    display: grid;
    grid-template-columns: auto auto;
    /* justify-content: space-around; */

    margin-top: 2em;

    font-size: 1.5em;
}

footer #sitemap ul
{
    text-align: left;
    margin-bottom: .5em;
}
footer #sitemap ul li
{
    margin-bottom: 1em;
}

footer #sitemap a
{
    display: inline-block;
    text-decoration: none;
}
footer #sitemap a:hover
{
    color: var(--link);
}

.subtleFooter ul.panic,
.subtleFooter #sitemap
{
    margin-left: 0;
    text-align: left;
}

.subtleFooter #sitemap
{
    max-width: 60rem;
}


@media screen and (min-width: 670px)
{
    #navbar
    {
        font-size: 1.2em;
    }

    body
    {
        padding-top: calc(1.2em * 2.125);
    }

    footer #sitemap
    {
        grid-template-columns: auto auto auto auto;
        margin-top: 1.5em;

        font-size: 1em;
    }

    footer #sitemap ul li
    {
        margin-bottom: .5em;
    }

}

/* Stop scaling */
@media screen and (min-width: 1100px)
{
    #navbar
    {
        font-size: 1em;
    }

    body
    {
        padding-top: calc(1em * 2.125);
    }
}
