/****************
    VARIABLES
*****************/
:root {
    --primary-color: #00d7b4;
}

/****************
    FONTS
*****************/
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-VariableFont_wght.ttf")
      format("truetype");
    font-weight: 125 950;
    font-stretch: 75% 125%;
    font-style: normal;
}
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Italic-VariableFont_wght.ttf")
      format("truetype");
    font-weight: 125 950;
    font-stretch: 75% 125%;  
    font-style: italic;
}
  
/****************
    GENERAL
*****************/
* {
    border: 0 none;
    border-radius: 0;
    box-sizing: border-box;
    font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
    margin: 0;
    outline: 0 none;
    padding: 0;
}

body {
    background: #111;
    color: #eee;
}
a {
    border-bottom: 1px solid transparent;
    color: #eee;
    text-decoration: none;
    transition: .15s border ease-out;
}
a:hover {
    border-color: rgba(255, 255, 255, .5);
}
#site_title {
    background: #262626;
}
h1 {
    color: #ddd;
    display: block;
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0.08em;
    min-height: 80px;
    text-transform: uppercase;
}
h1 a {
    display: block;
}
h1 a:hover { border-color: transparent; }
h1 a::before {
    background: url(./images/handheld-museum-logo.png) left center no-repeat;
    background-size: 80px;
    content: '';
    display: block;
    float: left;
    height: 80px;
    margin: 5px 1em 0 0;
    width: 80px;
}
h2 {
    margin: 2em 0 1em;
}
p {
    line-height: 1.5;
    margin: 0 0 1em;
}
p a,
article a {
    border-bottom: 1px solid rgba(255, 255, 255, .5);
}

.wrap {
    margin: 0 auto;
    padding: 1em;
}


/****************
    NAV
*****************/
#nav_contain {
    background: #222;
    border-color: #333;
    border-style: solid;
    border-width: 1px 0 1px 0;
    padding: .5em 0;
    position: relative;
    -webkit-overflow-scrolling: touch;
}
#nav_contain::-webkit-scrollbar {
    display: none;
}
#nav_contain .wrap {
    padding: 0 1em;
}
#nav_contain ul {
    display: flex;
    flex-direction: row;
    list-style: none;
}
#nav_contain ul li {
    display: flex;
    margin: 0 0 0 1em;
    position: relative;
}
#nav_contain ul li:first-child { margin: 0; }

#main_nav_toggle { display: none; }

#social_nav {
    display: inline-block;
    margin: 0;
    opacity: 1;
    transition: .15s all ease-out;
    vertical-align: middle;
}
#social_nav ul {}
#social_nav ul li {}
#social_nav ul li a {
    background: #555;
    border-radius: 40px;
    display: inline-block;
    height: 40px;
    /* margin: 0 0 0.5em 0; */
    margin: 0;
    text-align: center;
    width: 40px;
}
#social_nav ul li a svg.icon {
    display: inline-block;
    fill: currentColor;
    height: 16px;
    position: relative;
    top: 12px;
    width: 16px;
    vertical-align: top;
}

.bread {
    font-size: .75rem;
    margin: 0 0 .5em;
}
.bread a {
    display: inline-block;
    margin: 0 1em 0 0;
    vertical-align: middle;
}


/****************
    CONTENT
*****************/
#content {
    background: #222;
}

main {}
main h2.sticky {
    background-color: #222;
    margin: -.5em 0 .5em 0;
    padding: .5em 0;
    position: sticky;
    top: 0;
    z-index: 50;
}
main h3 {
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .9);
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    margin: 2em 0 1em;
    padding: 0 0 .25em 0;
}
main h3 a:hover { border-color: transparent; }
main .card {
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
    background-size: cover, cover;
    height: 16em;
    margin-bottom: 1em;
}
main .card .contain {
    border: 0 none;
    box-shadow: 0 160px 100px rgba(0, 0, 0, .75) inset;
    display: block;
    height: 100%;
    padding: 1em;
}
main .card h2 {
    font-weight: 100;
    margin: 0;
    text-shadow: 0 0 10px rgba(0, 0, 0, .75);
}
main .card h3 {
    border: 0 none;
    font-size: .95rem;
    font-weight: 800;
    letter-spacing: 1px;
    margin: .15em 0 .5em 0;
    padding: 0;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .75);
}
main .card h4 {
    font-family: sans-serif;
    font-weight: 100;
    text-shadow: 0 1px 0 #000;
}

main .card.banner { height: auto; }

main .pic {
    background-size: cover;
    display: block;
    margin-bottom: 1em;
    position: relative;
    width: 100%;
}
main .pic img {
    cursor: pointer;
    display: block;
    height: auto;
    opacity: 1;
    transition: opacity .35s ease-out;
    width: 100%;
}
main .pic img.loading {
    opacity: 0;
}

main ul.list {
    column-count: 2;
    column-gap: 1em;
    list-style-type: none;
    width: 100%;
}
main ul.list li {
    display: inline-block;
    margin: 0 0 1em 0;
    vertical-align: top;
    width: 100%;
}
main ul.list li a {
    background-color: #000;
    display: block;
    padding: 2em 1em;
    text-align: center;
}

main table { border-collapse: collapse; border-spacing: 0; }
main table td {
    padding-bottom: .5em;
}
main table td:first-child {
    font-size: .75rem;
    opacity: .5;
    padding-right: 2em;
}

main iframe {
    height: 51.35vw;
    width: 100%;
}

main .memories .memory {
    margin: 1em 0;
}
main .memories .memory .text {
    background-color: rgba(255, 255, 255, .1);
    font-style: italic;
    line-height: 1.5;
    margin: 0 0 .5em 0;
    padding: 1em;
    position: relative;
    z-index: 10;
}
main .memories .memory .text::before {
    content: '〝';
    font-size: 20rem;
    left: -14rem;
    line-height: 1;
    max-height: 100%;
    opacity: .1;
    overflow: hidden;
    position: absolute;
    top: 0.25rem;
    width: 100%;
    z-index: -1;
}
main .memories .memory .byline,
main .memories .memory .date {
    line-height: 1.5;
    margin: 0 0 0 1em;
    text-align: right;
}
main .memories .memory .byline a { border: 0 none; }
main .memories .memory .date { opacity: .5; }

article ul {
    line-height: 1.5;
    padding-left: 1.5em;
}
article ul li:not(:last-child) {
    margin-bottom: .5em;
}

.grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.grid p {
    width: calc(50% - 1rem);
}
.grid.videos iframe {
    height: auto;
    aspect-ratio: 16/9;
}

form {}
label {}
input[type=text],
input[type=submit],
input[type=email],
input[type=password],
select {
    background: #eee;
    color: #333;
    display: block;
    font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
    font-size: 1rem;
    padding: .5em .5em;
    width: 100%;
}
input[type=submit] {
    appearance: none;
    background: #fc0;
    display: inline-block;
    padding: .5em 1em;
    width: auto;
    -webkit-appearance: none;
}
input[type=file] {
    font-size: 1rem;
    margin: 0 0 1em;
}
input[type=checkbox] {
    background: #eee;
    height: 1.5em;
    width: 1.5em;
}
input[type=checkbox]:checked {}
form .row { display: flex; flex-direction: row; }
form .row input { display: flex; }
form input + input,
form select + input { margin-left: 1em; }

.img_preview { margin: 0 0 1em; }
.img_preview img {
    cursor: pointer;
    height: 100px;
    margin: 0 1em 0 0;
    width: auto;
}
.img_preview input[type=radio] { display: none; }
.img_preview input[type=radio]:checked + label img { outline: 3px solid #fff; }

hr {
    background: rgba(255, 255, 255, .25);
    height: 1px;
    margin: 2em 0;
}


/* IMAGE CAROUSEL */
.carousel {
    display: none;
    position: fixed;
}
.show_carousel .carousel {
    backdrop-filter: blur(5px);
    background-color: rgba(0, 0, 0, .7);
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: 100%;
    left: 0;
    padding: 20px;
    top: 0;
    width: 100%;
    z-index: 150;
}
.carousel .feature {
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    flex: 1;
}
.carousel .thmbs {
    display: flex;
    flex-direction: row;
    gap: 20px;
    justify-content: center;
}
.carousel .thmbs .thmb {
    aspect-ratio: 1;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100px;
    width: auto;
}
.carousel .thmbs .thmb.active {
    outline: 3px solid var(--primary-color);
}
.carousel .close {
    cursor: pointer;
    right: 20px;
    top: 20px;
    position: absolute;
}



.sheet {
    border-collapse: collapse;
    border-spacing: 0;
    display: block;
}
.sheet tbody { display: block; }
.sheet tr {
    clear: both;
    display: block;
    margin: 0 0 1em;
}
.sheet td {
    display: block;
}
.sheet td.actions { display: none; }
.sheet td.preview {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    float: left;
    margin: 0 1em 1em 0;
    width: 65px;
}
.sheet td.preview img {
    display: block;
    height: 55px;
    opacity: 0;
    width: auto;
}
.sheet td.category { font-size: .75rem; }

.num_devices {
    letter-spacing: 1px;
    margin: .75em 0 .5em 0;
    text-align: center;
}


/****************
    FOOTER
*****************/
footer {
    font-size: .75rem;
    padding: 1em;
}
footer nav {
    display: flex;
    gap: .5em 1em;
    flex-wrap: wrap;
}


/****************
    ALTS
*****************/
@media screen and (max-width: 767px) {
    h1 a {
        max-width: 14em;
    }
    #nav_contain {
        text-align: right;
    }
    #main_nav_toggle { display: none; }
    #main_nav_toggle + label {
        float: left;
    }
    #main_nav_toggle + label::after {
        content: 'Menu';
        cursor: pointer;
        display: block;
        padding: .65em 0;
    }
    #main_nav_toggle:checked + label::after {
        background: #000;
        border-radius: 1em;
        box-sizing: border-box;
        content: 'X';
        height: 2em;
        margin: .3em 0 0 0;
        padding: 6px 0 0 0;
        text-align: center;
        width: 2em;
    }
    #main_nav {
        background: #222;
        border-bottom: 1px solid #333;
        box-shadow: 0 60px 60px rgba(0, 0, 0, .25);
        display: none;
        height: 0;
        left: 0;
        margin: 0 1em 0 0;
        opacity: 0;
        overflow: hidden;
        padding: 0;
        position: absolute;
        text-align: left;
        top: 100%;
        transition: .25s opacity ease-out;
        width: 100%;
        z-index: 100;
    }
    #main_nav_toggle:checked + label + #main_nav {
        display: block;
        height: auto;
        left: 0;
        opacity: 1;
        padding: .5em 0 0 1em;
    }
    #main_nav ul {
        display: block;

    }
    #main_nav ul li,
    #main_nav ul li:first-child {
        display: block;
        margin: 0 0 1em 0;
    }
    #main_nav ul li ul {
        /* column-count: 2;
        column-gap: 1em; */
        margin: .5em 0 0 -1em;
        overflow-x: auto;
        padding: 0 0 0 1em;
        white-space: nowrap;
        width: 100%;
    }
    #main_nav ul li ul::-webkit-scrollbar { display: none; }
    #main_nav ul li ul li,
    #main_nav ul li ul li:first-child {
        display: inline-block;
        margin: 0 1em 0 0;
        vertical-align: top;
        width: auto;
    }
    #main_nav ul li ul li a {
        background-color: #000;
        display: block;
        padding: .5em 1em;
        text-align: center;
    }

    .num_devices {
        margin: 2em 0 1.5em 0;
    }

    footer {
        padding: 1em 1em 8em;
    }
}
@media screen and (min-width: 768px) {
    #site_title {
        padding: 1em 0 0 0;
    }
    h1 {
        display: inline-block;
        font-size: 2.25rem;
        vertical-align: middle;
    }
    h1 a::before {
        display: inline-block;
        float: none;
        margin-top: -7px;
        vertical-align: middle;
    }

    .wrap {
        max-width: 1000px;
        padding: 2em 0;
    }

    #nav_contain {
        overflow-x: visible;
        white-space: normal;
    }
    #nav_contain .wrap { padding: .75em 0; }
    #main_nav_toggle + label { display: none; }
    #main_nav {
        display: inline-block;
        opacity: 1;
        vertical-align: middle;
        width: auto;
    }
    #main_nav ul li {
        margin-left: 2em;
    }
    #main_nav ul li ul {
        display: none;
        left: -1em;
        padding: .5em 0 0 0;
        position: absolute;
        top: 100%;
        z-index: 100;
    }
    #main_nav ul li:hover ul {
        display: block;
    }
    #main_nav ul li ul li {
        background: #333;
        display: block;
        margin: 0;
        white-space: nowrap;
    }
    #main_nav ul li ul li a {
        display: block;
        padding: .5em 2em .5em 1em;
        transition: .25s background ease-out;
    }
    #main_nav ul li ul li a:hover {
        background-color: rgba(255, 255, 255, .1);
        border-color: transparent;
    }

    #social_nav {
        float: right;
        margin-top: -9px;
    }

    main .card {
        display: inline-block;
        margin-bottom: 1.5em;
        vertical-align: top;
        width: 49%;
    }
    main .card:nth-child(even) { margin-right: 2%; }
    main .card:first-child .contain {
        padding: 1em 2em;
    }
    main .card:first-child {
        display: block;
        height: 25vw;
        margin-bottom: 2em;
        width: auto;
    }
    main .card:first-child h2 {
        font-size: 2.5rem;
    }
    main .card:first-child h3 {
        font-size: 1.25rem;
    }
    main .card:first-child h4 {
        font-size: 1.25rem;
    }
    main .card.banner:first-child {
        height: auto;
    }

    main .pics {
        column-count: 3;
        column-gap: 1em;
    }
    main .pic {
        display: inline-block;
        height: auto;
        margin: 0 0 1em 0;
        max-width: 100%;
        width: auto;
    }

    main ul.list {
        column-count: 5;
    }

    main iframe {
        height: 44.15vw;
    }

    main .memories {
        column-count: 2;
        column-gap: 4em;
    }
    main .memories .memory {
        display: inline-block;
    }


    form {
        max-width: 50%;
    }

    .sheet {
        border-collapse: collapse;
        border-spacing: 0;
        display: table;
    }
    .sheet tbody { display: table; }
    .sheet tr { display: table-row; }
    .sheet td {
        border-color: rgba(255, 255, 255, .25);
        border-style: solid;
        border-width: 1px 0 1px 0;
        display: table-cell;
        padding: .5em 1em;
    }
    .sheet td.actions {
        display: table-cell;
        font-size: .85rem;
        white-space: nowrap;
        word-spacing: 1em;
    }
    .sheet td.preview {
        float: none;
        height: auto;
    }
    .sheet td.preview a:hover { border-color: transparent; }
    .sheet td.preview img {
        height: 40px;
    }
    .sheet td.category { font-size: 1rem; }
}

@media screen and ( min-width: 67em ) {

}

@media screen and ( min-width: 79em ) {

}

@media screen and ( max-width: 48.875em ) and ( min-width: 48em ) {

}
