/* ¦¦ General */

* {
    box-sizing: border-box;
}

a{
    text-decoration: none;
}

::-webkit-scrollbar{
    display: none;
    position: absolute;
    width: 30px;
}

::-webkit-scrollbar-track{
    box-shadow: 0px 0px 10px 5px white;
    height: 100vh;
    background-color: hsl(271, 66%, 29%);;
}

::-webkit-scrollbar-thumb{
    background-color: hsl(241, 100%, 7%);;
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover{
    background-color: hsl(241, 100%, 15%);;
}

::-webkit-scrollbar-button{
    display: none;
}

:root{
    --height-backgroundHeight: 2000px;
}


/* ¦¦ Fonts & Animations */

@font-face {
    font-family: Montserrat;
    src: url(fonts/Montserrat-VariableFont_wght.ttf);
}

@font-face {
    font-family: Lora;
    src: url(fonts/Lora-VariableFont_wght.ttf);
}

@font-face {
    font-family: RockSalt;
    src: url(fonts/RockSalt-Regular.ttf);
}

@font-face {
    font-family: SourceCode;
    src: url(fonts/SourceCodePro-VariableFont_wght.ttf);
}

@keyframes fadein {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

@keyframes slidein {
    0%{
        transform: translateX(-100px);
        opacity: 0;
    }
    80%{
        transform: translateX(10px);
        opacity: 0.8;
    }
    100%{
        transform: translateX(0px);
        opacity: 1;
    }

}



/* ¦¦ Home */

#home{
    margin: 0;
    background-color: hsla(240, 97%, 75%, 0.226);;
    height: 100%;
}

header{
    height: 150px;
    background-color: hsl(234, 55%, 78%);
    display: block;
    transition: height 1s;
}


.title{
    font-family: RockSalt;
    position: absolute;
    display: inline-block;
    font-size: 40px;
    margin-top: 10px;
    margin-bottom: 10px;

}

#homelogo{
    height: 100%;
    position: static;
    margin: 5px;
    display: inline-block;
}

.navpanel{
    height: 50px;
    width: 100%;
    background-color: hsl(240, 100%, 75%);
    margin: 0;
    border: none;
    position: sticky;
    top: 0;
    z-index: 4;
    margin: 0px;
}
.navpanel ul{
    list-style-type: none;
    padding: 0;
    margin: 0;
    overflow: hidden;
}
.navbox{
    height: 40px;
    width: 8%;
    display: block;
    background-color: hsl(240, 100%, 85%);
    text-align: center;
    font-size: 1.5em;
    margin: 5px;
    font-family: Montserrat;
    border-radius: 5px;
    padding: 4px;
    float: left;
    min-width: 110px;
    transition: background 0.25s;
    color: hsl(241, 100%, 17%)
}

.navbox:hover{
    background-color: hsl(240, 100%, 95%);
}


.dcontent a{
    display: block;
    padding: 10px;
    border-radius: 5px;
    transition: background 0.25s;
}

.dcontent{
    position: absolute;
    background-color: hsl(240, 100%, 85%);
    height: auto;
    width: 8%;
    margin-top: 7px;
    display: none;
    transform: translateX(-4px);
    border-radius: 5px;
    box-shadow: 5px 5px 10px;
    min-width: 110px;
    z-index: 4;
}

.navbox a:link{
    color: hsl(241, 100%, 17%)
}

.dcontent a:link{
    color: hsl(241, 100%, 17%)
}

#dropdown:hover .dcontent{
    display: block;
    animation-name: fadein;
    animation-duration: 0.5s;
}

.dcontent a:hover{
    background-color: hsl(240, 100%, 95%);;
}

.dcontent .WIP{
    background-color: hsl(0, 50%, 50%);
}

.dcontent .WIP:hover{
    background-color: hsl(0, 50%, 60%);
}

#searchbox{
    height: 40px;
    width: max-content;
    display: flex;
    background-color:  hsl(240, 100%, 85%);
    font-size: 1em;
    margin: 5px;
    margin-right: 15px;
    font-family: Montserrat;
    border-radius: 10px;
    padding: 4px;
    align-items: center;
    justify-self: flex-end;
}

.searchbar{
    display: flex;
    flex: 1;
    width: 12vw;
    height: 100%;
    border-radius: 12px;
    margin-top: 2px;
    margin-bottom: 2px;
    margin-left: 4px;
    outline: none;
    border: none;
    background: transparent;
    transition: background 0.25s, width 0.5s;
    color:hsla(0, 0%, 0%, 0.5);
    
}


.searchbar:focus-within{
    background: #6dacffd5;
    width: 16vw
}

.searchbar::placeholder{
    color:hsla(0, 0%, 0%, 0.212)
}

#search-icon{
    color:hsla(0, 0%, 0%, 0.5)
}

#intro .heading{
    font-family: Montserrat;
    font-size: max(3.6vw,40px);
    display: block;
    width: 65%;
    color: hsl(241, 100%, 17%);
}

#intro h2{
    font-family: Montserrat;
    font-size: max(1.6vw,20px);
    display:block;
    width: 50%;
    height: fit-content;
    margin-top: 5px; 
}



#intro{
    display: flex;
    background-color: hsl(271, 66%, 49%);
    align-items: left;
    justify-content: flex-start;
    flex-direction: column;
    height: fit-content;
    padding-left: 5vw;
    padding-top: 50px;
    padding-bottom: 150px;
    position: relative;
    z-index: 2;
    margin-top: 0px;
    clip-path: shape(from 0 0,vline to calc(100% - 76.5px),curve to 30% calc(100% - 47px) with 20% calc(100% - 46px),smooth to 50% calc(100% - 26.5px),smooth to 70% calc(100% - 61px),smooth to 100% calc(100% - 76.5px),vline to 0, hline to 0);
}

#part2{
    display: flex;
    background-color: hsl(241, 100%, 17%);
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    height: fit-content;
    padding: 50px;
    padding-bottom: 200px;
    z-index: 1;
    position: relative;
    margin-top: -100px;
    clip-path: shape(from 0 0,vline to calc(100% - 50px),curve to 30% calc(100% - 31px) with 20% calc(100% - 46px),smooth to 50% calc(100% - 53px),smooth to 70% calc(100% - 47px),smooth to 100% calc(100% - 50px),vline to 0, hline to 0);
}

#part2 .heading{
    transform: translateY(100px);
    font-family: Montserrat;
    font-size: max(3.6vw,40px);
    display: block;
    width: 80%;
    color: hsl(241, 100%, 17%);
    color: hsl(271, 66%, 49%);
    font-size: max(3.4vw,36px);
    margin-bottom: 200px;
    text-align: center;
}

#part2 div{
    display: flex;
    background-color: hsl(241, 100%, 17%);
    align-items: center;
    justify-content: space-evenly;
    padding: 0px;
    z-index: 1;
    position: relative;
}

#part2 .tutorial-imgs{
    width: 180%;
    height: 100%;
    display:block;
    object-fit:cover;
    justify-self: center;
    margin: 0;
}

#part2 a{
    position: absolute;
}

#part2 .description{
    text-align: center;
    display: inline-block;
    height: 100%;
    font-family: Montserrat;
    padding: 0;
    font-size: 25px;
    background-color: cornflowerblue;
    width: fit-content;
    z-index: 4;
    position: absolute;
    color: white;
    top: 85%;
    align-self: center;
    padding: 3%;
    padding-left: 10%;
    padding-right: 10%;
    border-radius: 15%;
}

#part2 .description-container {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column-reverse;
    position: relative;
}


#home .gallery-object{
    display: inline-block;
    border-radius: 5%;
    flex-direction: column;
    margin: 20px;
    padding: 0px;
    overflow: hidden;
    background-color: cornflowerblue;
    aspect-ratio: 1/1;
    height: 20vw;
    width: 20vw;
    transition: all 0.4s;
}

#home .gallery-object .g-object-image-container{
    height: 100%;
    width: 100%;
  
}

#home .gallery-object a{
    width: 100%;
    height: 100%;
    color: hsl(241, 100%, 17%);
}

#home .gallery-object:hover{
    outline: 2px solid white;
    margin-top: 10px;
    

}

#home .gallery-object:focus-within{
    outline: 2px solid hsl(241, 100%, 17%);
}

#home footer{
    display: flex;
    background-color: hsl(182, 25%, 50%);
    width: 100%;
    height: fit-content;
    padding: max(60px,6%);
    padding-bottom: max(50px,5%);
    padding-top: max(150px,15%);
    margin-top: -200px;
}

footer{
    display: flex;
    background-color: hsl(182, 25%, 50%);
    width: 100%;
    height: 300px;
    padding: 60px;
    padding-bottom: 30px;
    padding-top: 30px;
    margin-top: 0px;
    position: absolute;
}

#home #f-p1{
    margin-right: 30px;
}

#f-p1{
    margin-right: 30px;
}

#home .website-name{
    font-size: 2.5vw;
    font-family: RockSalt;
}

.website-name{
    font-size: 40px;
    font-family: RockSalt;
}

#home #f-p1 a{
    font-size: 2.5vw;
    color: black;
}

#f-p1 a{
    font-size: 40px;
    color: black;
}

#home #f-p1 a::link{
    color: black;
    display: block;
}

#f-p1 a::link{
    color: black;
    display: block;
}

#home #f-p2 a{
    font-size: 2vw;
    color: black;
    display: block;
    margin-bottom: 5px;
    font-family: Montserrat;
}

#f-p2 a{
    font-size: 30px;
    color: black;
    display: block;
    margin-bottom: 5px;
    font-family: Montserrat;
}

#home #f-p2 a::link{
    color: black;
}

#f-p2 a::link{
    color: black;
}

#home #f-p2{
    padding: 0px;
}

#f-p2{
    padding: 0px;
}

#home #f-p2 h1{
    font-size: 2vw;
    color: black;
    display: block;
    margin-bottom: 5px;
    font-family: Montserrat;
}

#f-p2 h1{
    font-size: 33px;
    color: black;
    display: block;
    margin-bottom: 5px;
    font-family: Montserrat;
}


/* ¦¦ Knots page */

#knots{
    margin: 0;
    height: 100%;
    background-color: hsl(182, 25%, 50%);
    position: relative;
}

#ohk-main-grid-display{
    display: grid;
    width: fit-content;
    height: fit-content;
    grid-template-columns: 300px 300px 300px;
    grid-template-rows: 150px 300px 300px 300px;
    gap: 0px;
    grid-template-areas: 
    "title title title"
    "txt1 txt2 img1"
    "txt1 img2 txt3"
    "txt5 txt4 img3"
    ;
    background-color: hsl(182, 25%, 40%);
    border-radius: 10px;
    position: relative;
    justify-self: center;
    margin-top: 50px;
    animation: slidein 0.5s;
}

#ohk-main-grid-display .box{
    background-color: hsl(240, 46%, 75%);
    border-radius: 10px;
    font-family: Montserrat;
    padding: 8px;
    margin: 8px;
    font-size: 1.7em;
}

#ohk-main-grid-display #title{
    font-size: 3.5em;
    text-align: center;
    align-content: center;

}

#ohk-main-grid-display #box-special{
    background-color: rgb(81, 110, 81);
    color: white;
    font-size: 1.5em;
}

#basic-knots-title{
    font-size: 3.5em;
    text-align: center;
    align-content: center;
    font-family: Montserrat;
    padding: 20px;
    margin: 10px;
    margin-top: 50px;
    border-radius: 10px;
    background-color: hsl(182, 25%, 40%);
    width: 800px;
    justify-self: center;
}

#knots::before{
    background-image: url(images/knots-background.jpg);
    opacity:0.1;
    position: absolute;
    display: block;
    content: '';
    width: 100%;
    height:var(--height-backgroundHeight);
    z-index: -1;
}

#half-knot-main-grid-display{
    display: none;
    width: fit-content;
    height: fit-content;
    grid-template-columns: 300px 300px 300px;
    grid-template-rows: 150px 300px 300px 300px;
    gap: 0px;
    grid-template-areas: 
    "title title title"
    "txt1 txt2 img1"
    "txt1 img2 txt3"
    "txt5 txt4 img3"
    ;
    margin-left:auto;
    margin-right:auto;
    background-color: hsl(182, 25%, 40%);
    border-radius: 10px;
    position: relative;
    justify-self: center;
    margin-top: 50px;
    animation: slidein 0.5s;
}

#half-knot-main-grid-display #title{
    font-size: 3.5em;
    text-align: center;
    align-content: center;

}

#half-knot-main-grid-display #box-special{
    background-color: rgb(81, 110, 81);
    color: white;
    font-size: 1.5em;
}

#half-knot-main-grid-display .box{
    background-color: hsl(240, 46%, 75%);
    border-radius: 10px;
    font-family: Montserrat;
    padding: 8px;
    margin: 8px;
    font-size: 1.7em;
}

#reef-knot-main-grid-display{
    display: none;
    width: fit-content;
    height: fit-content;
    grid-template-columns: 300px 300px 300px;
    grid-template-rows: 150px 300px 300px 300px 300px;
    gap: 0px;
    grid-template-areas: 
    "title title title"
    "txt1 txt2 txt2"
    "txt1 img1 img2"
    "txt4 txt3 txt3"
    "img3 img4 img5"
    ;
    margin-left:auto;
    margin-right:auto;
    background-color: hsl(182, 25%, 40%);
    border-radius: 10px;
    position: relative;
    justify-self: center;
    margin-top: 50px;
    animation: slidein 0.5s;
}

#reef-knot-main-grid-display #title{
    font-size: 3.5em;
    text-align: center;
    align-content: center;

}

#reef-knot-main-grid-display #box-special{
    background-color: rgb(81, 110, 81);
    color: white;
    font-size: 1.5em;
}

#reef-knot-main-grid-display .box{
    background-color: hsl(240, 46%, 75%);
    border-radius: 10px;
    font-family: Montserrat;
    padding: 8px;
    margin: 8px;
    font-size: 1.7em;
}


#sheet-bend-main-grid-display{
    display: none;
    width: fit-content;
    height: fit-content;
    grid-template-columns: 300px 300px 300px;
    grid-template-rows: 150px 300px 300px 300px 300px 300px;
    gap: 0px;
    grid-template-areas: 
    "title title title"
    "txt1 txt2 img1"
    "txt1 txt2 img2"
    "txt3 txt3 img3"
    "txt4 txt4 img4"
    "img5 img6 img7"
    ;
    margin-left:auto;
    margin-right:auto;
    background-color: hsl(182, 25%, 40%);
    border-radius: 10px;
    position: relative;
    justify-self: center;
    margin-top: 50px;
    animation: slidein 0.5s;
}

#sheet-bend-main-grid-display #title{
    font-size: 3.5em;
    text-align: center;
    align-content: center;

}

#sheet-bend-main-grid-display #box-special{
    background-color: rgb(81, 110, 81);
    color: white;
    font-size: 1.5em;
}

#sheet-bend-main-grid-display .box{
    background-color: hsl(240, 46%, 75%);
    border-radius: 10px;
    font-family: Montserrat;
    padding: 8px;
    margin: 8px;
    font-size: 1.7em;
}

#slip-knot-main-grid-display{
    display: none;
    width: fit-content;
    height: fit-content;
    grid-template-columns: 300px 300px 300px;
    grid-template-rows: 150px 300px 300px 300px 300px 300px;
    gap: 0px;
    grid-template-areas: 
    "title title title"
    "txt1 txt2 img1"
    "txt1 txt3 img2"
    "txt1 txt4 img3"
    "txt5 txt5 img4"
    "img5 img6 img7"
    ;
    margin-left:auto;
    margin-right:auto;
    background-color: hsl(182, 25%, 40%);
    border-radius: 10px;
    position: relative;
    justify-self: center;
    margin-top: 50px;
    animation: slidein 0.5s;
}

#slip-knot-main-grid-display #title{
    font-size: 3.5em;
    text-align: center;
    align-content: center;

}

#slip-knot-main-grid-display #box-special{
    background-color: rgb(81, 110, 81);
    color: white;
    font-size: 1.5em;
}

#slip-knot-main-grid-display .box{
    background-color: hsl(240, 46%, 75%);
    border-radius: 10px;
    font-family: Montserrat;
    padding: 8px;
    margin: 8px;
    font-size: 1.7em;
}

#knots-menu{
    position: sticky;
    width: 1000px;
    height: 80px;
    justify-self: center;
    justify-content: space-around;
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    background-color: hsl(250, 66%, 70%);
    align-items: center;
    border-radius: 20px;
    margin-top:30px;
    top: 50px;
    z-index: 3;
    border: 1px solid black;
}

.knots-menu-item{
    position: relative;
    width: 115px;
    height: 55px;
    border-radius: 10px;
    justify-self: center;
    background-color: hsl(182, 80%, 45%);
    transition: all 0.2s ease-in-out;
    outline: none;
    border: none;
    font-family: Montserrat;
    box-shadow: 0px 0px 5px 3px hsl(182, 20%, 10%) ;
    font-size: 20px;
}

.knots-menu-item:hover{
    width: 125px;
    height: 67.5px;
    font-size: 22px;
}

.image-container{
    display: flex;
    overflow: hidden;
    align-items: center;
    justify-items: center;
    border-radius: 10px;
    margin: 8px;
    background-color: #bababa;
    flex-direction: column;
    font: 1.5em Montserrat;
    padding-top: 20px;
    justify-content: space-evenly;
}

.img{
    object-fit: contain;
    height: 100%;
    width: 100%;
    justify-self: center;
    align-self: center;
    margin: 0;
}

#ohk-button{
    background-color: hsl(182, 80%, 38%);
}

#knots footer{
    margin-top: 50px;
    background-color: rgba(96, 157, 159, 0.61);
}

/* ¦¦ Tutorials page */

#tutorials{
    margin: 0;
    background-color: hsla(240, 92%, 75%, 0.534);
    height: 100%;
}

#tutorials .gallery-object {
    height: 500px;
    width: 100%;
    display: flex;
    border-radius: 20px;
    margin-top: 10px;
    margin-bottom: 10px;
    background-color: hsl(182, 80%, 38%);
}

#tutorials .g-object-image-container {
    overflow: hidden;
    width: 400px;
    height: 400px;
    border-radius: 10px;
    align-self: center;
    margin-left: 100px;
}

#tutorials .tutorial-imgs {
    width: 180%;
    height: 100%;
    display:block;
    object-fit:cover;
    justify-self: center;
    margin: 0;
}

#tutorials .description-container {
    overflow: hidden;
    width: 50%;
    height: 400px;
    border-radius: 10px;
    align-self: center;
    margin-left: 50px;
    padding: 10px;
}

#tutorials .description-container > .child:first-child{
    margin: 10px;
}

#tutorials .description-title {
    font: 45px Montserrat;
    color: black;
}

#tutorials .description-body {
    font: 25px Montserrat;
}

#tutorials .WIP-banner {
    width: 100%;
    height: 1020px;
    position: absolute;
    margin-top: -1020px;
    background-color: hsla(0, 100%, 50%, 0.452);
    font-family: SourceCode;
    font-size: 400px;
    text-align: center;
    align-content: center;
    color:hsla(0, 100%, 30%, 0.7);
    justify-content: center;
    text-shadow: 0px 0px 20px hsla(0, 100%, 20%, 0.452);
}

/* ¦¦ About */

#about {
    margin: 0;
    height: 100%;
    background-color: hsl(182, 25%, 50%);
    position: relative;
}

/* ¦¦ Fire Building */

#fire {
    margin: 0;
    height: 100%;
    background-color: hsl(182, 25%, 50%);
    position: relative;
}

#fire .WIP-banner {
    width: 100%;
    height: 1020px;
    position: relative;
    margin-bottom: 100px;
    background-color: hsla(0, 100%, 50%, 0.452);
    font-family: SourceCode;
    font-size: 400px;
    text-align: center;
    align-content: center;
    color:hsla(0, 100%, 30%, 0.7);
    justify-content: center;
    text-shadow: 0px 0px 20px hsla(0, 100%, 20%, 0.452);
}
/* ¦¦ Map Reading */

#maps .WIP-banner {
    width: 100%;
    height: 1020px;
    position: relative;
    margin-bottom: 100px;
    background-color: hsla(0, 100%, 50%, 0.452);
    font-family: SourceCode;
    font-size: 400px;
    text-align: center;
    align-content: center;
    color:hsla(0, 100%, 30%, 0.7);
    justify-content: center;
    text-shadow: 0px 0px 20px hsla(0, 100%, 20%, 0.452);
}

#maps {
    margin: 0;
    height: 100%;
    background-color: hsl(182, 25%, 50%);
    position: relative;
}
































/* ¦¦ RWD */

@media screen and (max-width:900px){
    #intro .heading, #intro h2, #part2 .heading{
        width:100%
    }
    #part2 .gallery-object{
        width: min(400px,80vw);
        transition: width 0.5s;
        height: 400px;
        height: auto;
    }
    #part2 div{
        flex-direction: column;
    }
    #part2 .description{
        font-size: 30px;
    }
}

@media screen and (max-width:1400px){
    #part2 div{
        width: 100%;
        transition: width 0.5s;
    }
}

@media screen and (max-width:600px) {
    .title{
        text-align: center;
        display:block;
        position: relative;
        margin: 0px;
    }
    header{
        height: 25vh;
        margin-top: none;
    }
    #homelogo{
        height: 50%;
        margin-left: auto;
        margin-right: auto;
        margin-top: none;
        margin-bottom: none;
        display: block;
        align-self: center;
        position: relative;
        float:none;
    }
    #searchbox{
        display:none
    }
}