/***********************************************/
/* Text animations                             */
/***********************************************/

.sp-container-alt {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    z-index: 10;
    font-family: 'Barlow', sans-serif;

}

.sp-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 100vw;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    font-family: 'Barlow', sans-serif;
}

.sp-content {
    position: fixed;
    width: 100%;
    height: 100%;
    left: 0px;
    top: 0px;
    z-index: 10;
    background: none;
    border: none;
    text-align: center;
    vertical-align: middle;
    transition: border 1.5s ease, background 1.5s ease;
}

.sp-content .default-line, .sp-content .last-line, .sp-content .title {
    display: inline-block;
    line-height: 1em;
    color: #DDDDDD;
    text-shadow: 3px 3px 0 rgb(33, 33, 38), 3px -3px 0 rgb(33, 33, 38), -3px 3px 0 rgb(33, 33, 38), -3px -3px 0 rgb(33, 33, 38), 3px 0px 0 rgb(33, 33, 38), 0px 3px 0 rgb(33, 33, 38), -3px 0px 0 rgb(33, 33, 38), 0px -3px 0 rgb(33, 33, 38), 35px 16px 1px rgba(255,110,68,0), #FFF 0px 0px 5px, #FFF 0px 0px 2px, #FFF 0px 0px 3px, rgb(240, 255, 178) 0px 0px 4px, rgb(240, 255, 178) 0px 0px 6px, rgb(240, 255, 178) 0px 0px 8px, rgb(240, 255, 178) 0px 0px 10px, rgb(240, 255, 178) 0px 0px; 13px;
    position: absolute;
    font-weight: 900;
    width: 100%;
}

.sp-content .default-line, .sp-content .last-line {
    font-size: min(6.4vh, 6.4vw);
    line-height: min(8.6vh, 8.6vw);
}

.sp-content .title {
    width: 86vw;
    font-size: 9vh;
    line-height: min(11vh, 11vw);
    top: calc(50% - 17vh);
    left: 7vw;
}

.sp-content .default-line {
    width: 86vw;
    top: calc(50% - 14.5vh);
    left: 7vw;
    /* border: 1px solid green; */
}

.sp-content .default-line, .sp-content .last-line span, .sp-content .title {
    display: inline-block;
    opacity: 0;
    transform: scale(0);
}

.sp-content .last-line {
    /* display: none; */
    top: calc(50% - 5.5vh);
    left: 0;
}

/***********************************************/
/* footer with GUI elements                    */
/***********************************************/

#footer {
    position: fixed;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: auto;
    z-index: 20;
    text-align: center;
    vertical-align: bottom;
}

/* Buttons for user interaction */
.buttonBox {
    position: absolute;
    font-weight: 200;
    font-size: 4vh;
    text-transform: uppercase;
    bottom: min(2vw, 2vh);
    right: min(2vw, 2vh);;
    text-align: center;
}

.leftButton, .rightButton, .dropup-trigger, .dropup-menu, input, button {
    position: relative;
    display: inline-block;
    width: auto;
    padding: 0.5rem;
    font-size: min(1.8vw, 1.8vh);
    line-height:  min(2vw, 2vh);
    color: #FFFFFF;
    background: rgb(33, 33, 38, 0.3);
    border-color: rgb(118, 118, 118);
    border-radius: 0.8rem;
    border-style: outset;
    border-width: medium;
    color: #DDDDDD;
    text-shadow: 1px 1px 0 rgb(33, 33, 38), 1px -1px 0 rgb(33, 33, 38), -1px 1px 0 rgb(33, 33, 38), -1px -1px 0 rgb(33, 33, 38), 1px 0px 0 rgb(33, 33, 38), 0px 1px 0 rgb(33, 33, 38), -1px 0px 0 rgb(33, 33, 38), 0px -1px 0 rgb(33, 33, 38), 35px 8px 1px rgba(255,110,68,0);
    cursor: pointer;
    z-index: 20;
}

input, textarea {
    border-style: inset;  
}
.rightButton {
    margin-left: min(1.5vw, 1.5vh);
}

.leftButton {
    margin-right: min(1.5vw, 1.5vh);
}

/* Drop up menu */
.dropup-container {
    position: absolute;
    bottom: min(2vw, 2vh);
    left: min(2vw, 2vh);;
    font-weight: 200;
    text-transform: uppercase;
    text-align: center;
}

.dropup-menu {
    display: none;
    position: absolute;
    bottom: min(2vw, 2vh);;
    height: auto;
    border-style: inset;
    border-width: medium;
    left: 0;
    z-index: 21;
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0
}

.dropup-item {
    color: #FFFFFF;
    padding: min(0.6vw, 0.6vh) min(0.3vw, 0.3vh);
    text-decoration: none;
    display: block;
    text-align: center;
    background: none;
    font-size: min(1.6vw, 1.6vh);
    line-height: min(2vw, 2vh);;
    border-radius: 0.8rem;
}

.dropup-item:hover {
    background-color: rgba(255, 255, 255, 0.2); /* Light transparent highlight */
}

/* Email input field */
#emailContainer {
    display: inline-block;
    position: relative;
    bottom: min(2vw, 2vh);;
    font-weight: 100;
    text-align: center;
    padding: 0;
    margin: 0;
    width: auto;
}

.inputWrapper, #slider {
    width: 50vw;
    min-width: 60px;
    max-width: 800px;
}

#slider {
    bottom: min(0.6vw, 0.6vw);
    position: relative;
}

.inputWrapper {
    display: inline-block;
    position: relative
}

#emailInput {
    display: block;
    /*
    width: min(50vw,50vw);
    min-width: 60px;
    max-width: 800px;
    */
    width: calc(100% - 1rem);
    cursor: text;
    font-size: min(1.8vw, 1.8vh);
}

#sendEmail {
    margin-left: 0.6rem;
    font-size: min(1.8vw, 1.8vh);
    width: 6vw;
}

.message {
    position: absolute;
    top: 100%;
    left: 0;
    color: #ff0000;
    font-size: min(1vh, 1vw);
    text-align: left;
    display: none;
    width: 100%;
    padding-left: 0.5rem;
    margin-top: 0.3rem;
}

.slide-up, .slide-down {
    overflow:hidden
}
.slide-up > div {
    margin-top: 0;
    transition: margin-top 0.4s ease-in-out;
}
.slide-down > div {
    margin-top: calc(-1 * min(8vh, 8vw));
    transition: margin-top 0.4s ease-in-out;
} 

#animatedMessage {
    font-size: min(1.8vw, 1.8vh);
    color: #FFFF;
    font-weight: 600;
    margin:0;
    height: min(7vh, 7vw); /* Fixed height as per requirement */
    text-align: center;
    vertical-align: middle;
    background: rgb(33, 33, 38, 0.3);
    border-color: rgb(118, 118, 118);
    border-radius: 0.8rem;
    border-style: outset;
    border-width: medium;
    transition: border 1.5s ease, background 1.5s ease, margin 1.5s ease ;
    opacity: 0.7;
    display: flex;
    justify-content: center;
    align-items: center;

    /* animation: rollIn 1s forwards, stay 4s forwards 1s, rollOut 1s forwards 5s; */
    /* Animation names, duration, fill mode, delay (for stay and rollOut) */
}

#animatedMessage p {
    color: #FFFF;
    text-shadow: 1px 1px 0 rgb(33, 33, 38), 1px -1px 0 rgb(33, 33, 38), -1px 1px 0 rgb(33, 33, 38), -1px -1px 0 rgb(33, 33, 38), 1px 0px 0 rgb(33, 33, 38), 0px 1px 0 rgb(33, 33, 38), -1px 0px 0 rgb(33, 33, 38), 0px -1px 0 rgb(33, 33, 38), 35px 8px 1px rgba(255,110,68,0);
}


.spinner {
    display: inline-block;
    border: 4px solid rgba(0, 0, 0, .1);
    width: min(1.2vw, 1.2vh);
    height: min(1.2vw, 1.2vh);
    border-radius: 50%;
    border-left-color: rgb(118, 118, 118);
    animation: spin 1s ease infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/*
@keyframes rollIn {
    from {
        bottom: -300px;
    }
    to {
        bottom: 100%; 
    }
}

@keyframes stay {
    from { bottom: 100%; }
    to { bottom: 100%; }
}

@keyframes rollOut {
    from {
        bottom: 100%;
    }
    to {
        bottom: 100%;
        transform: translateY(-400px);
    }
}
*/

/***********************************************/
/* Styles for printing complete poem on screen */
/***********************************************/

.print-sp-content, .modal-content {
    position: relative;
    z-index: 10;
    text-align: center;
    vertical-align: middle;
    background: rgb(33, 33, 38, 0.3);
    border-color: rgb(118, 118, 118);
    border-radius: 0.8rem;
    border-style: inset;
    border-width: medium;
    padding: min(3vh, 3vw);
    transition: border 1.5s ease, background 1.5s ease;
} 

.modal-content {
    background: rgb(33, 33, 38, 0.5);
}

.print-sp-content:before {    
    content: "";
    background-image: url('/img/green-candles-diagram-trans-kl.png');
    background-size: cover;
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    mix-blend-mode:hue;
    opacity: 0.7;
}

.print-title, .print-default-line, .print-last-line  {
    text-shadow: 3px 3px 0 rgb(33, 33, 38), 3px -3px 0 rgb(33, 33, 38), -3px 3px 0 rgb(33, 33, 38), -3px -3px 0 rgb(33, 33, 38), 3px 0px 0 rgb(33, 33, 38), 0px 3px 0 rgb(33, 33, 38), -3px 0px 0 rgb(33, 33, 38), 0px -3px 0 rgb(33, 33, 38), 35px 16px 1px rgba(255,110,68,0), #FFF 0px 0px 3px, #FFF 0px 0px 1px, #FFF 0px 0px 2px, rgb(240, 255, 178) 0px 0px 2px, rgb(240, 255, 178) 0px 0px 3px, rgb(240, 255, 178) 0px 0px 4px, rgb(240, 255, 178) 0px 0px 5px, rgb(240, 255, 178) 0px 0px;
}

.print-title {
    position: relative;
    display: block;
    font-size: min(5vh, 5vw); /* Example size, adjust as necessary */
    color: #54ff76; /* Maintaining the color from the original title */
    margin-bottom: min(6vh, 6vw);
    opacity:1;
    margin-top: 4rem;
    transition: opacity 1.5s ease;
}

.print-default-line, .print-last-line {
    position: relative;
    display: block;
    color: #FFF;
    font-size: min(4vh, 4vw);
    line-height: min(6vh, 6vw);
    margin-top: min(2vw, 2vh);
    margin-bottom: min(2vw, 2vh);
    opacity:1;
    transition: opacity 1.5s ease;
}

.print-last-line {
    font-weight: bold; /* Example styling, adjust as necessary */
    margin-bottom: min(6vh, 6vw);
}

.print-concat-line {
    display: inline-block;
    margin-top: 0;
    margin-bottom: min(6vh, 6vw);
}

.full-screen-centered {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    width: 100vw;
    position: fixed;
    top: 0;
    left: 0;
}

/* ONLY FOR PORTRAIT ORIENTATION */

@media only screen and (orientation: portrait) {
    .sp-content .title {
        width: 86vw;
        font-size: 7vh;
        line-height: 8.5vh;
        top: calc(50% - 24vh);   
    }

    .sp-content .default-line, .sp-content .last-line {
        font-size: 6vh;
        line-height: 8.6vh;
    }

    .sp-content .default-line {
        width: 86vw;
        top: calc(50% - 23vh);
        left: 7vw;
    }

    .sp-content .last-line {
        top: calc(50% + 3vh);
        left: 0;
    }

    #footer {
        bottom: 1.5vh;
    }

    #emailContainer {
        bottom: 2vw;
    }
    
    .inputWrapper, #slider {
        width: 80vw;
        min-width: 60px;
        max-width: 800px;
    }
    
    #slider {
        bottom: 0.6vw;
    }
    
    #emailInput {
        width: calc(100% - 1rem);
        font-size: 3.8vw;
        height: 4vw;
    }
    
    #sendEmail {
        margin-left: 1rem;
        font-size: 3.8vw;
        width: 11vw;
        height: 6vw;
    }
    
    .message {
        font-size: 1.5vh;
        padding-left: 0.5rem;
        margin-top: 0.3rem;
    }

    .slide-up > div {
        margin-top: 0;
        transition: margin-top 0.4s ease-in-out;
    }
    .slide-down > div {
        margin-top: -12vh;
        transition: margin-top 0.4s ease-in-out;
    } 
    
    #animatedMessage {
        font-size: 2vh;
        height: 9vh;
        padding: 1.4vw;
    }

    .print-sp-content {
        padding: 2vw;
        width: 92vw;
        top: -4vh;
    }

    .print-sp-content .print-default-line, .print-sp-content .print-last-line {
        font-size: 3vh;
        line-height: 4vh;
        margin-bottom: 3vh;
     }
 
     .print-default-line .concat-line {
        margin-bottom: 0;
     }
 
 
     .print-sp-content .print-title {
        font-size: 4vh;
        line-height: 5vh;
        margin-bottom: 4vh;
     }
}