@import url('https://fonts.googleapis.com/css2?family=Shadows+Into+Light&display=swap');

.clearfix::after { /* Dirty little clearfix hack */
    content: "";
    display: table;
    clear: both;
}

body{
    
    /* background: linear-gradient(90deg, blue, rgb(0, 0, 124)); */
    background-color: rgb(0, 148, 128);
    font-family: Georgia;
    font-size: 16px;
    color: rgb(100, 0, 55);


}
header{
    background: linear-gradient(90deg, turquoise, rgb(64, 224, 163));
    height: 80px;
    font-family: 'Shadows Into Light', cursive;
    padding: 10px;
    font-size: min(3.5vw, 40px); /* 1vw = 1% of viewport width */
    line-height: 60px;
    text-align: center;

    box-sizing: border-box;
}

nav{
    background-image: url(../images/NarrowBackground.svg);
    background-image: linear-gradient(90deg, blue, rgb(0, 0, 124));
    padding: 5px;
    box-sizing: border-box;

    height: 65px;
}

nav li{
    display: inline;
    list-style: none;
}

nav a{
    display: inline-block;
    padding: 10px;
    color: magenta;
    border: 5px outset magenta;
    border-radius: 10px;
    background-color: cyan;
    margin: 5px;
    text-decoration: none;
    transition: 0.7s ease;
    transition-property: transform, color, background-color;
}

nav a.current{
    background-color: purple;
    border-style: inset;
    color: cyan;
}

nav a:hover{
    background-color: purple;
    color: cyan;
    border-color: cyan;
    transform: scale(1.35);
    border-style: inset;
    text-shadow: 0 0 5px blue;
    border-width: 5px;
}
nav a:focus{
    background-color: purple;
    color: cyan;
    border-color: cyan;
    transform: scale(1.35);
    border-style: outset;
    text-shadow: 0 0 5px blue;
}

a{
    color: magenta;
    transition: all 0.6s ease;
    border-radius: 5px;
    padding: 3px;
    margin: -6px;
    box-sizing: border-box;

    border: 3px inset transparent;
}
a:hover{
    color: purple;
    text-shadow: 0 0 1px blue;
    background-color: cyan;
    border: 3px inset cyan;
}
a:focus{
    color: purple;
    text-shadow: 0 0 1px blue;
    background-color: cyan;
    border: 3px outset cyan;
}

h1{
    color: darkorchid;
    font-size: 160%;
    font-weight: bold;
    margin-bottom: 20px;
}
h2{
    color: darkorchid;
    font-size: 140%;
    font-weight: bold;
    margin: 10px;
}
h3{
    margin: 10px;
}

p{
    line-height: 16px;
    margin-bottom: 12px;
}

.big-image{
    width: 80%;
    margin: 5px;
    box-sizing: border-box;
    border: 5px groove magenta;
    border-radius: 10px;
}

main{
    float: left;
    width: 70%;
    padding: 20px;
    box-sizing: border-box;
}

main.full-width{
    width: 100%
}

aside{
    width: 30%;
    background-image: linear-gradient(90deg, rgb(74, 137, 177), rgb(25, 89, 129));
    padding: 20px;
    box-sizing: border-box;

    /* Makes the element fill the whole height of it's container */
    position: absolute;
    bottom: 0;
    right: 0;
    top: 0;

    /* margin: 2%;
    border: 5px solid mediumaquamarine;
    border-radius: 15px; */
}
footer{
    background: linear-gradient(90deg, blue, rgb(0, 0, 124));
    font-size: 85%;
    padding: 10px;
    height: 30px;

    box-sizing: border-box;
}

#content{
    position: relative;

    background-image: url(../images/BubbleBackground.png);
    background-repeat: repeat;
    background-size: 100%;

    /* display: flex; */
    
    /* background: linear-gradient(lightblue, lightskyblue); */

    min-height: calc(100vh - 80px - 65px - 30px); /* Window height - header height - nav height - footer height */
}

ul{
    list-style: disc;
}

.titlebox{
    background: radial-gradient(rgb(0, 255, 191), rgb(7, 189, 255));
    border: 10px ridge;
    padding: 10px;
    width: fit-content;
    box-sizing: border-box;
}

.contrast{
    color: darkmagenta;
}

button{
    background-color: black;
    padding: 5px;

    background-image: linear-gradient(black, blue);
    font-size: 100%;
    border: 3px groove;
    border-radius: 10px;

    color: magenta;

    transition: 0.7s ease;
    transition-property: scale, color;

    margin: 10px;
}

button:hover{
    scale: 1.25;
    border-color: cyan;
    color: cyan;
}

input[type=submit]{
    background-color: black;
    padding: 5px;

    background-image: linear-gradient(black, blue);
    font-size: 130%;
    border: 5px groove;
    border-radius: 10px;

    color: magenta;

    transition: 0.7s ease;
    transition-property: scale, color;
}

input[type=submit]:hover{
    scale: 1.25;
    border-color: cyan;
    color: cyan;
}

pre{
    background-image: linear-gradient(black, rgb(10, 69, 0));
    color: white;
    padding: 10px;
    margin: 10px;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 10px;
    filter: drop-shadow(0 0 3px greenyellow);

    overflow: scroll;
}

pre .code-comment{
    color: gray;
}

#email-confirmation{
    font-size: 200%;
    background-image: linear-gradient(cyan, lime);
    border: 3px outset cyan;
    border-radius: 10px;
}

.example-box{
    border: 5px groove blue;
    border-radius: 10px;
    min-height: 80px;
}

.half-width{
    float: left;
    width: 45%;
    margin: 10px;
    box-sizing: border-box;
}

/* ###################################
    Image Gallery
   ###################################*/

#image-gallery{
  width:380px;
}

#image-gallery #mainImg{
  width:100%;
  border: 2px solid blue;
  border-radius: 15px;
}

/* #gallery-nav{
    background-color: yellow;
} */

label{
    font-size: 120%;
    color: darkorchid;
    margin-left: 10px;
}

input[type=form] input[type=text]{
    margin: 20px;
}

input[type=text]{
    background-image: linear-gradient(90deg, white, rgb(230, 134, 230));
    border-radius: 7px;
}

textarea{
    margin: 10px;
    background-image: linear-gradient(90deg, white, rgb(230, 134, 230));
    border-radius: 7px;
}

/* #####################
    Small Screen Stuff 
   ##################### */

#mobile-nav-button{
    position: absolute;
    top: 0px;
    right: 0px;
    width: 44px;
    height: 44px;
    font-weight: bold;
    line-height: 44px;
    text-align: center;
    cursor: pointer;
    display: none;

    border-bottom-left-radius: 20px;
    background-color: cyan;
    border-left: 5px outset magenta;
    border-bottom: 5px outset magenta;

    transition: all 0.7s ease;
    transform-origin: top right;
}

#mobile-nav-button:hover{
    transform: scale(1.1);
}

#mobile-nav-button.active{
    background-color: goldenrod; 
    transform: scale(1.3);
    border-style: inset;
    border-color: red;
}

#mobile-nav-button.active:hover{
    transform: scale(1.5);
}

/* ###############################
    Hamburgerization Threshold 
   ###############################*/
@media all and (max-width: 800px){
    main, aside{
        float: none;
        width: 100%;
        margin: 0;
        position: static;
    }

    #content{
        min-height: calc(100vh - 80px - 30px); /* Window height - header height - footer height */
    }

    header{
        padding-right: 44px;
    }

    #mobile-nav-button{
        display: block;
    }

    #main-nav{
        position: absolute;
        top: 40px;
        padding: 0; /* If the padding is still here it keeps the width above 0 even with border-box */
        height: 100%;
        width: 0px;
        transition: width .5s;
        z-index: 100;
        box-sizing: border-box;
        overflow: hidden;
        border-top-right-radius: 20px;
        border-bottom-right-radius: 20px;
    }

    #main-nav li{
        /* overflow: hidden; */
        position: relative;
        padding: 10px;
        padding-left: 12px;
        left:-150px;
        transition: left 0.25s ease;
    }
    #main-nav.show{
        width: 250px;
    }
    #main-nav ul li{
        display: block;
    }

    #main-nav li.show{
        left:0;
    }

    .half-width{
        float: none;
        width: 100%;
    }
}

@media all and (max-width: 290px){
    header{
        line-height: 24px;
    }
}

/* #content{
    display: flex;
    width: 100%;
} */
