* {
    box-sizing: border-box;
    margin: 0; padding: 0;
    font-family: Helvetica;
}

/*

    there are quite a lot of root components
    wanna make sure they're all min-height 💯

*/

/*
    Functional Styles
*/

html, 
body, 
#__next, 
.wrapper, 
.wrapper > main {
    width: 100%;
    overflow-x: hidden;
    min-height: 100%;
    min-height: 100vh;
}

button {
    cursor: pointer;
}

.naked-button {
    background: none;
    outline: none;
    margin: none;
    border: none;
    font-size: inherit;
}

.pad {
    padding: 1em;
}
.pad2 {
    padding: 2em;
}
.pad3 {
    padding: 4em;
}

.margin-top {
    margin-top: 1em;
}

.float-left {
    display: block;
    float: left;
}

.float-right {
    display: block;
    float: right;
}

.float-center {
    margin-left: auto;
    margin-right: auto;
}

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

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

.text-small {
    font-size: 0.66em;
}

.max-width {
    max-width: 360px;
}


.clear-after::after {
    display: block;
    content: "";
    clear: both;
}

.clear-both {
    clear: both;
}

.clear-left {
    clear: left;
}

.clear-right {
    clear: right;
}

.block-paragraph {
    display: block;
}

body {
    background: #333;
    font-family: 'helvetica';
    line-height: 1.6em;
}

button {
    padding: 0.25rem;
}

/*

                                                                                   
 _|      _|                                                                        
 _|_|  _|_|    _|_|      _|_|_|    _|_|_|    _|_|_|    _|_|_|    _|_|      _|_|_|  
 _|  _|  _|  _|_|_|_|  _|_|      _|_|      _|    _|  _|    _|  _|_|_|_|  _|_|      
 _|      _|  _|            _|_|      _|_|  _|    _|  _|    _|  _|            _|_|  
 _|      _|    _|_|_|  _|_|_|    _|_|_|      _|_|_|    _|_|_|    _|_|_|  _|_|_|    
                                                           _|                      
                                                       _|_|                        

*/


.middle-message {
    min-height: 100%;
    min-height: 100vh;
    width:100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    display: flex;
    color: white;
}

.tall-spacer {
    font-size: 2em;
    opacity: 0.75;
    margin: 0.2em;
}


/*

                                                           
   _|_|_|            _|  _|                                
 _|          _|_|_|  _|  _|    _|_|    _|  _|_|  _|    _|  
 _|  _|_|  _|    _|  _|  _|  _|_|_|_|  _|_|      _|    _|  
 _|    _|  _|    _|  _|  _|  _|        _|        _|    _|  
   _|_|_|    _|_|_|  _|  _|    _|_|_|  _|          _|_|_|  
                                                       _|  
                                                   _|_|    

*/

.gallery-header {
    width: 100%;
    text-align: center;
    padding: 1em;
    padding-bottom: 0;
    line-height: 2em;
}

.gallery-header .logo {
    width: 150px;
    height: auto;
}


.main-footer {
    position: fixed;
    bottom: 0;
    text-align: center;
    width: 100%;

    
    /*pointer-events: none;*/
}

.main-footer.navigation-footer {
    height: 0;
    overflow: visible;
    /*will-change: transform;*/
    transform: translate3d(0,0,0);
}

.main-footer > .pagination-container {
    
    transform: translateY(-3em);
    transition: transform 300ms ease-in-out, background 100ms ease-in-out;
    will-change: transform, background;
    color: black;
    padding-bottom: 0.5em;
}

.skew-text {
    transform-origin: left bottom;
    transform: rotatez(-3deg) skew(-3deg) translateY(-2em);
}

.homepage-footer-text a {
    display: inline-block;
    /*transform: rotatez(180deg);*/
}

.pagination-container.expanded {
    transform: translateY(-100%);
    background: rgba(255,255,255, 0.7);
}

.pagination-container nav {
    /*margin-top: 1em;*/
}

.pagination {
    opacity: 0;
    list-style: none;
    margin-top: 1em;
}

.expanded .pagination {
    opacity: 1;
}

.pagination li {
    display: inline-block;
    padding: 0.75em;
}

.pagination li a,
.pagination li a:visited  {
    color: black;
    text-decoration: none;
}


.pagination .current {

    border: 1px solid black;
    border-radius: 3px;

}

.single-image {
    padding: 0 1rem;
}

.image-grid {
    max-width: 1350px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    padding-bottom: 3em;
}

.image-grid > .image {

    flex: 0 1 250px;
    height: 333px;
    margin: 1em;
    position: relative;

    /* 
        this puts the overlay in the right place:
    */
    line-height: 0; 
}

.image-grid .image a,
.image-grid .image video,
.single-image .image .image-wrapper { 
    display: block;
}

.single-image .image .image-wrapper,
.single-image .image-gif {
    position: relative;
    line-height: 0;
}

.image-grid .image a img {
    width: 100%;
    height: auto;
}



.image-grid .image .unburned-overlay,
.single-image .image .unburned-overlay {
    position: absolute;
    bottom: 0;
    margin-bottom: 0;
    left: 0;
    cursor: pointer;
    width: 100%;
    pointer-events: none;
}

.single-image > .image,
.single-image > .video {
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
}


.image video {
    max-width: 100%;
}

.image img {
    width: 100%;
    height: auto;
}

/*a.disabled {
    color: grey;
    pointer-events: none;
    text-decoration: none;
}*/

ul.page-navs {
    border-radius: 3px;
    border: solid 1px rgba(20,20,20,0.2);
    background: rgba(255,255,255,0.75);
    list-style: none;
    display: flex;
    max-width: 350px;
    /*width: 250px;*/
    margin: 0 auto;
}

.expanded ul.page-navs {
    
    border-color: transparent;
    background: none;
}

ul.page-navs li {
    flex: 1 1 50px;
    display: inline-block;
}
ul.page-navs li a,
ul.page-navs li a:hover,
ul.page-navs li a:visited,
ul.page-navs li a:active {
    text-decoration: none;
    color: black;
    display: inline-block;
}

ul.page-navs li a:hover {
    /*TBA*/
    /*color: white;
    background: black;*/
}


/* yeah specificity hack! */
a.disabled.disabled.disabled {
    color: grey;
    pointer-events: none;
    text-decoration: none;
}

/*

                                                               
   _|_|                                    _|    _|            
 _|    _|  _|_|_|      _|_|                _|    _|  _|_|_|    
 _|    _|  _|    _|  _|_|_|_|  _|_|_|_|_|  _|    _|  _|    _|  
 _|    _|  _|    _|  _|                    _|    _|  _|    _|  
   _|_|    _|    _|    _|_|_|                _|_|    _|_|_|    
                                                     _|        
                                                     _|        

*/

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

.single-image > .image-gif {
    margin-left: auto;
    margin-right: auto;
}
.sharing-buttons {
    text-align: right;
}
a.sharer, button.sharer {
    display: inline-block;
    margin: 2px;
    background: transparent;
    outline: none;
    cursor: pointer;
    border: none;
}

.modal {

    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 100%;
    display: flex;
    z-index: 10;
    align-items: center;
    justify-content: center;
    height: 100%;
    max-height: 100%;

}

.modal-inner {
    background: white;
    padding: 1rem;
    border-radius: 3px;
    max-width: 650px;
    margin: 2em;
    max-height: 90%;
    overflow-y: scroll;
}

.modal-inner ol {
    margin: 1rem;
    margin-left: 2rem;
}

.modal-inner ol li {
    margin-bottom: 1rem;
}

.page > main {
    transition: filter 0.3s ease-in-out, opacity 0.3s ease-in-out;
}

.blur-for-modal {
    filter: blur(10px) brightness(250%);
    opacity: 0.5;
}

.gallery-link, .gallery-link:visited, .gallery-link:active, .gallery-link:hover {
    text-decoration: none;
    padding: 0.5em;
    border: 1px solid black;
    display: block;
    color: inherit;
}

.gallery-link {
    transition: transform 0.3s ease-out;
}

.gallery-link:hover {
    /*filter: invert();*/
    transform: translatey(-5px);
}

.a-modal header,
.a-modal p {
    margin-bottom: 1em;
}

.a-modal label,
.a-modal input,
.a-modal button {
    display: block;
}

.a-modal input {
    line-height: 3em;
    padding: 0 1em;
    border-radius: 3px;
    border: 1px solid rgba(125,125,125,0.3);
    width: 100%;
    margin-bottom: 1em;
}

.a-modal .submit-button {
    line-height: 3em;
    margin: 1em 0;
}

.a-modal .invalid-warning {
    display: inline-block;
    float: right;
    color: red;
}


.a-modal hr {
    margin: 1em;
    border-color: #fafafa;
}

.simple-button {

    background: none;
    outline: none;
    border: 1px solid #777;
    border: 1px solid rgba(125,125,125,0.5);
    padding: 0 0.5em;
    line-height: 2em;
    border-radius: 3px;

    transition:background 0.3s ease-out;

    color: inherit;

}

.simple-button:hover {
    background: rgba(125,125,125, 0.5);
}

.simple-button.jumbo {
    min-width: 150px;
    border-color: black;
}

.image-download-group {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
.image-download-group h3 {
    flex: 1 1 90%;
}

.image-download-group a {
    flex: 1 1 30%;
    min-width: 90px;
    max-width: 90px;
    display: block;
    margin: 1rem;
}

.video-container .loading-message {
    display    : block;
    position   : absolute;
    width      : 100%;
    z-index    : 10;
    top        : 45%;
    color      : black;
    border     : 1em solid rgba(255,255,255,0.5);
    text-align : center;
}
.video-container video {
    z-index: 5;
}
