/* Universals */
@import url('https://fonts.googleapis.com/css2?family=Allura&display=swap');

html {
    background-color: rgb(255, 255, 255);
    font-family: 'Montserrat', sans-serif;
    font-size: 62.5%;
    --dark-color: #051964;
    --neutral-color: #244c88;
    --light-color: #aedfec;
    --lighter-color: #d6eff5;
    --accent-color: #B26224;
    --lighter-accent-color: #e7ad83;
    --very-light-accent-color: #eed9c9;
    overflow-x: hidden;
    max-width: 100vw;
}

body {
    max-width: 100vw;
}

a {
    text-decoration: none;
    color: black;
}

.body-border {
    margin-left: 10vw;
    margin-right: 10vw;
}

.text-border {
    margin-left: 0;
    margin-right: 0;
}

p {
    font-size: 2rem;
}

.page-title {
    font-size: 5rem;
    color: var(--dark-color);
    text-align: center;
}

.text-block {
    text-align: justify;
}

section {
    width: 100%;
}

@media screen and (min-width: 1000px) {
    .text-border {
        margin-left: 10%;
        margin-right: 10%;
    }
}

@media screen and (min-width: 1200px) {
    .body-border {
        margin-left: 20%;
        margin-right: 20%;
    }
}

/* Buttons */
.button {
    position: relative;
    display: flex;
    width: 20rem;
    height: 5rem;
    border: none;
    font-size: 2rem;
    margin: auto;
    justify-content: center;
    align-items: center;
}

.button__dark, .button__dark > a {
    background-color: var(--dark-color);
    color: white;
}

.button__dark:hover, .button__dark:hover > a {
    background-color: var(--neutral-color);
    color: white;
}

/* Header */

.navbar {
    width: 100vw;
    height: 7rem;
    background-color: var(--neutral-color);
    border-bottom: solid 1rem var(--accent-color);
    transition: top .5s ease-in-out;
}

.menu {
    display: flex;
    width: 100%;
    justify-content: space-evenly;
    flex-wrap: wrap;
    align-items: center;
    height: 7rem;
}

.menu-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 16.66%;
    align-items: center;
    justify-content: center;
}

.menu-link > a {
    display: block;
    font-size: 2rem;
    color: white;
    width: 100%;
    padding: 1rem 0rem;
    text-align: center;
    transition: all .1s ease-in-out;
    font-weight: 500;
}

.menu-link:hover > a {
    color: var(--light-color);
}

.menu-controller {
    display: none;
}

@media screen and (max-width: 900px) {
    .menu-link > a {
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 600px) {
    .navbar.menu-hidden {
        top: -70rem;
    }

    .menu-icon {
        color: white;
        font-size: 4rem;
    }
    .menu-controller {
        display: flex;
        position: fixed;
        top: 0;
        right: 0;
        z-index: 100;
        border-bottom-left-radius: 7rem;;
        background-color: var(--neutral-color);
        width: 10rem;
        height: 10rem;
        box-shadow: 0 0 .25rem black;
        justify-content: center;
        align-items: center;
    }

    .navbar {
        position: fixed;
        z-index: 90;
        display: block;
        top: 0;
        height: auto;
    }

    .menu {
        justify-content: space-around;
        flex-wrap: wrap;
        flex-direction: column;
        height: 100%;
        gap: 3rem;
    }
    
    .menu > .menu-link {
        padding: 2rem 0rem;
        width: 100%;
    }
}

/* Hero */

.homepage-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100vw;
    height: 56.25vw;
    max-height: 1150px;
    overflow: hidden;
}

.homepage-hero__2 {
    height: 200vw;
}

.hero-photo {
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;

    /* Create the parallax scrolling effect */
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.hero-photo__1 {
    background-image: url("../photos/scratching-head-small.webp");
    background-attachment: scroll;
}

.hero-photo__2 {
    background-position: 50% 20%;
    background-image: url("../photos/on-stairs-cropped-small.webp");
    background-attachment: fixed;
}

.hero-photo__3 {
    background-position: 20% 13%;
    background-image: url("../photos/looking-out-window-small.webp");
    background-attachment: fixed;
}

.about-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100vw;
    height: 100vw;
    max-height: 1150px;
    overflow: hidden;
}

.hero-mask {
    position: absolute;
    bottom: 0rem;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.hero-mask__1 {
    background: linear-gradient(25deg, rgba(0, 0, 0, .9) 30%, rgba(0, 0, 0, 0) 75%);
}

.hero-mask__2 {
    background: var(--dark-color);
    mix-blend-mode: hard-light;
    opacity: .7;
}

.hero-title {
    position: absolute;
    width: 100%;
    z-index: 10;
    font-weight: 600;
    bottom: -6%;
    text-align: center;
    font-size: 4rem;
    color: rgb(255,255,255);
}

.hero-splashtext {
    color: white;
    font-size: 5rem;
    font-family: "allura", serif;
    position: absolute;
    top: 10rem;
    left: 10%;
}

.border-bar {
    background-color: var(--accent-color);
    z-index: 5;
    height: 5rem;
    width: 100%;
    position: absolute;
    bottom: 0;
}

.hero-link {
    color: rgb(255, 255, 255);
    position: absolute;
    font-size: 5rem;
    transition: all .1s ease-in-out;
    display: none;
}

.hero-link:hover {
    color: var(--light-color);
    text-decoration: underline;
}

.hero-link-1 {
    bottom: 60%;
}
.hero-link-2 {
    bottom: 40%;
}
.hero-link-3 {
    bottom: 20%;
}

@media screen and (min-width: 600px) {
    .about-hero {
        height: 52.25vw;
    }
}

@media screen and (min-width: 700px) {
    .hero-title {
        font-size: 5rem;
        bottom: -3%;
    }
}

@media screen and (min-width: 800px) {
    .hero-photo__1 {
        background-image: url("../photos/scratching-head-medium.webp");
    }
    .hero-photo__2 {
        background-image: url("../photos/on-stairs-cropped-medium.webp");
    }
    .hero-photo__3 {
        background-image: url("../photos/looking-out-window-medium.webp");
    }
}

@media screen and (min-width: 1000px) {
    .homepage-hero__2 {
        height: 56.5vw;
    }
    .hero-title {
        font-size: 6rem;
        bottom: -3%;
    }
    .hero-link {
        display: block;
        font-size: 3.25rem;
    }

}

@media screen and (min-width: 1500px) {
    .hero-photo__1 {
        background-attachment: fixed;
    }
    .hero-title {
        font-size: 7rem;
    }
    .hero-link {
        font-size: 4rem;
    }
    .hero-splashtext {
        font-size: 7rem;
        left: 15%;
    }
}

@media screen and (min-width: 1900px) {
    .hero-title {
        font-size: 9rem;
    }
}

@media screen and (min-width: 2000px) {
    .hero-photo__1 {
        background-image: url("../photos/scratching-head-large.webp");
    }
    .hero-photo__12{
        background-image: url("../photos/on-stairs-cropped-large.webp");
    }
    .hero-photo__3 {
        background-image: url("../photos/looking-out-window-large.webp");
    }
}

/* Text Section */
.text-section {
    display: flex;
    position: relative;
    padding: 15rem 0;
    text-align: center;
    min-height: 20vw;
}

.text-section::before {
    content: '';
    position: absolute;
    top: 0;
    opacity: .1;
    height: 100%;
    width: 100vw;
    background-image: url("../photos/background-music.jpg");
    background-repeat: no-repeat;
    background-size: cover;
}

/* Featured Section */

@media screen and (min-width: 1920px) {
    .featured-section__1 {
        background-image: url("../photos/background-sheet.jpg");
    }
}

@media screen and (max-width: 1919px) {
    .featured-section__1 {
        background-image: url("../photos/background-sheet@0.5x.jpg");
    }
}

.featured-section__dark {
    background-color: black;
}

.featured-section {
    position: relative;
    min-height: 750px;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.background-mask {
    background-color: rgba(255,255,255, .5);
    width: 100%;
    height: 100%;
    min-height: 750px;
}

.featured-header {
    position: relative;
    padding-top: 2rem;
    font-size: 3rem;
    z-index: 15;
    margin-bottom: 10rem;
}

.featured-header__dark {
    color: white;
}

.featured-styling {
    display: block;
    position: absolute;
    z-index: -10;
    top: -3rem;
    left: -5rem;
    background-color: var(--lighter-accent-color);
    width: 15rem;
    height: 15rem;
    border-radius: 10rem;
}

.featured-title {
    font-size: 4rem;
    text-align: center;
}

.featured-title__dark {
    color: white;
}

.featured-subtitle {
    font-size: 2rem;
    text-align: center;
}

.featured-subtitle__dark {
    color: white;
}

.featured-audio {
    margin: auto;
    padding: 2rem 15%;
    width: 70%;
}
.featured-video {
    margin: auto;
    padding: 2rem 15%;
    width: 70%;
    height: 50vh;
}

.video {
    margin: 10rem 0rem;
    width: 100%;
    height: 50vw;
    max-height: 900px;
}

@media screen and (max-width: 2000px) {
    .video {
        max-height: 700px;
    }
}

@media screen and (max-width: 1700px) {
    .video {
        margin-top: 7.5rem;
        max-height: 600px;
    }
}

@media screen and (max-width: 1400px) {
    .video {
        
        max-height: 450px;
    }
}

@media screen and (max-width: 1200px) {
    .video {
        margin-top: 5rem;
    }
}

@media screen and (max-width: 800px) {
    .featured-styling {
        width: 10rem;
        height: 10rem;
        border-radius: 10rem;
        top: -1rem;
        left: -3.5rem;
    }
}

/* Upcoming */
.upcoming-section {
    display: block;
    height: auto;
}

.upcoming-header {
    position: relative;
    font-size: 3rem;
    z-index: 15;
    margin-bottom: 10rem;
}

.upcoming-styling {
    display: block;
    position: absolute;
    z-index: -10;
    top: -5rem;
    left: -5rem;
    background-color: var(--lighter-color);
    width: 15rem;
    height: 15rem;
    border-radius: 10rem;
}

.upcoming-item {
    position: relative;
    display: flex;
    margin: 4rem 0rem;
    padding: 1rem;
}

.upcoming-info {
    flex-grow: 1;
}

.upcoming-item > .button {
    color: white;
    font-size: 2rem;
    padding: 2rem 5rem;
    width: 15rem;
    min-width: 15rem;
    text-align: center;
}

.upcoming-item.performing > .button {
    background-color: var(--accent-color);
}

.upcoming-item.composing > .button {
    background-color: var(--dark-color);
}

.item-name {
    font-size: 2rem;
}

.upcoming-item.performing {
    background-color: var(--lighter-accent-color);
}

.upcoming-item.composing {
    background-color: var(--lighter-color);
}

@media screen and (max-width: 900px) {
    .upcoming-item {
        flex-direction: column;
    }
}

@media screen and (max-width: 800px) {
    .upcoming-styling {
        width: 10rem;
        height: 10rem;
        border-radius: 10rem;
        top: -3rem;
        left: -3.5rem;
    } 
    .upcoming-item > .button {
        font-size: 1.75rem;
        padding: 1rem 5rem;
        width: 15rem;
        min-width: 15rem;
    }
}

@media screen and (max-width: 360px) {
    .upcoming-item > .button {
        width: 10rem;
        min-width: 10rem;
    }
}

/* Footer */

.footer {
    display: flex;
    position: relative;
    background-color: var(--neutral-color);
    height: 25vh;
    justify-content: center;
    min-height: 30rem;
}

.footer > .copyright {
    position: absolute;
    bottom: 2rem;
    text-align: center;
    color: white;
}

.social-bar {
    margin-top: 5rem;
    display: flex;
    justify-content:space-evenly;
    width: 100%;
}

.icon-social {
    color: white;
    font-size: 7rem;
    padding: 0rem 3rem;
}

@media screen and (max-width: 650px) {
    .social-bar {
        flex-wrap: wrap;
        gap: 4rem;
    }
    .icon-social {
        margin: 0;
        font-size: 4rem;
        padding: 0 1rem;
    }
}

/* Contact-Section */

.contact-section {
    text-align: center;
    height: 75vh;
    width: 100vw;
}

.contact-section > * > * > h1 {
    font-size: 5rem;
    opacity: 1;
}

.contact-section > * > * > a {
    font-size: 2rem;
    color: #000000;
    display: block;
}

.contact-section > * > * > a:hover {
    color: var(--neutral-color);
}

.contact-hero {
    width: 100%;
}

/* Composer Page */

.composer-bio {
    margin: 10rem 0rem;
}

.composer-bio::before{
    content: '';
    display: block;
    position: absolute;
    opacity: .2;
    width: 100%;
    min-width: 10rem;
    height: 100%;
    min-height: 10rem;
    background-image: url("../photos/background-music.jpg");
    background-repeat: no-repeat;
    z-index: -10;
}

.genre-selector {
    position: relative;
}

#genre-selector-button {
    border: 0;
    margin: auto;
    background-color: var(--lighter-accent-color);
    padding: 2rem 5rem;
    font-size: 2rem;
    width: 100%;
}

.genre-options {
    position: absolute;
    width: 100%;
    margin: auto;
    background-color: var(--very-light-accent-color);
    color: var(--dark-color);
    cursor: pointer;
    z-index: 9;
    max-height: 0px;
    opacity: 0;
    transition: all 1s ease;
    overflow: hidden;
    top: 8rem;
}

.genre-options.genre-options-show {
    opacity: 1;
    max-height: 40rem;

}

.genre-options > p {
    text-align: center;
}

.piece > h3 {
    font-size: 2rem;
}

.piece {
    position: relative;
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    background-color: var(--lighter-color);
    margin: 2rem auto;
    width: 100%;
    overflow: hidden;
}

.piece-selector {
    font-size: 2.5rem;
    position: absolute;
    color: var(--neutral-color);
    top: 50%;
    right: .25rem;
    cursor: pointer;
    transition: all .15s ease-in-out;
    transform: translate(0, -50%);
    padding: 2rem;
}

.piece:hover > .piece-selector {
    right: -.5rem;
    transform: translate(0, -50%) scale(105%);
}

.piece--hidden {
    display: none;
}

@media screen and (min-width: 600px) {
    
    .genre-options {
        margin: 1rem auto;
        display: flex;
        position: static;
        opacity: 1;
        width: 100%;
        height: 5rem;
        background-color: rgba(0, 0, 0, 0);
        flex-direction: row;
        border-radius: 0;
        max-height: 10rem;
        justify-items: center;
    }
    
    .genre-options > p{
        color: var(--dark-color);
        width: 25%;
        height: 4rem;
        margin: .5rem;
        font-size: 1.5rem;
        border-bottom: .5rem solid var(--dark-color);
    }

    .genre-options > p:hover{
        color: var(--accent-color);
        border-bottom: .5rem solid var(--accent-color);
    }

    #genre-selector-button{
        display: none;
    }
}

/* About Page */

.bio-text {
    margin-bottom: 4rem;
    text-align: justify;
    line-height: 120%;
}

/* Pieces Pages */

.piece-page{
    background-color: white;
    transition: background-color .4s ease-in-out;
    color: white;
}

.piece-entry {
    opacity: 0;
    transition: opacity .4s ease-in-out;
    transition-delay: .2s;
}

.page-back {
    color: white;
}

.piece-header {
    text-align: center;
    padding-bottom: 8rem;
}

.piece-title {
    font-size: 4rem;
}

.piece-subtitle {
    font-size: 2rem;
}

.piece-flex {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem;
    margin: auto;
    justify-content: space-between;
    padding-bottom: 20rem;
}

.page-back {
    margin-top: 2rem;
    position: relative;
    top: 1rem;
    font-size: 2rem;
}

.piece-right-column {
    text-align: right;
    flex: 1 1 60%;
}

.piece-left-column {
    flex: 1 1 35%;
}

.recording > iframe {
    width: 100%;
}

.recording-info > p {
    font-size: 1.75rem;
    line-height: .2rem;
}

.piece-left-column > h4 {
    font-size: 2.5rem;
    margin-bottom: 0;
}

.piece-left-column > p {
    margin-top: .25rem;
}

.program-notes {
    text-align: justify;
}

.piece-purchase {
    position: relative;
    top: 5rem;
}

.piece-purchase > a {
    font-size: 2rem;
    color: white;
    border-top: .5rem solid var(--accent-color);
}

@media(max-width: 1100px) {
    .piece-flex {
        flex-direction: column;
    }
}