@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

@font-face {
  font-family: 'Copperplate';
  src: url('../resource/font/Copperplate-Light.otf') format('opentype');
  font-weight: light;
  font-style: normal;
}
@font-face {
  font-family: 'LOVE';
  src: url('../resource/font/LOVES.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}


:root{
    --theme-color-background_a_ff: #f9f8f1;
    --theme-color-background_a_cd: #f9f8f1cd;
    --theme-color-background_a_c2: #f9f8f1c2;
    --theme-color-background_a_77: #f9f8f177;

    --theme-color-background_b_ff: #7490a5;
    --theme-color-background_b_cd: #7490a5cd;
    --theme-color-background_b_c2: #7490a5c2;
    --theme-color-background_b_6a: #7490a56a;
    --theme-color-background_b_33: #7490a533;

    --theme-color-background_dark_b_ff: #22445e;

    --theme-color-background_c_ff: #dce0e1;
    --theme-color-background_c_c2: #dce0e1c2;
    --theme-color-background_c_6a: #dce0e16a;


    --theme-color-font_a_ff: #004C6F;
    --theme-color-font_a_c2: #004C6Fc2;

    --theme-color-font_b_ff: #f9f8f1;
    --theme-color-font_b_c2: #f9f8f1c2;

    --color-light-blue: #C7E1F1;
    --color-light-blue1: #94c8e8;
    --filter-light-blue: invert(89%) sepia(14%) saturate(373%) hue-rotate(164deg) brightness(98%) contrast(93%);
    --color-blue: #004C6F;
    --filter-blue: invert(19%) sepia(78%) saturate(1734%) hue-rotate(175deg) brightness(91%) contrast(101%);
    --color-dark-blue: #021c2b;
    --filter-dark-blue: invert(8%) sepia(50%) saturate(1274%) hue-rotate(167deg) brightness(98%) contrast(100%);
    --color-cream: #e5DBC7;
    --filter-cream: invert(93%) sepia(16%) saturate(237%) hue-rotate(356deg) brightness(93%) contrast(93%);


    --theme-filter-img_a_ff: var(--filter-blue);
    --theme-filter-img_b_ff: invert(96%) sepia(80%) saturate(212%) hue-rotate(298deg) brightness(105%) contrast(95%);

    --theme-filter-blur: blur(2px);
}

*{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Playfair Display", serif;
    font-optical-sizing: auto;
    font-variation-settings: "wdth" 100;
    color: var(--theme-color-font_a_ff);
    scroll-behavior: smooth;
}

h1, h2, h3, h4{
    font-family: "Copperplate", serif;
    text-align: center;
}

.font-love{
    font-family: "LOVE", serif;
    font-weight: 100;
}

.font-copperplate{
    font-family: "Copperplate", serif;
}

h2{
    font-size: 1.8rem;
}
h3{
    font-size: 1.3rem;
}

a{
    text-decoration: none;
    cursor: pointer;
}

.a_button{
    text-decoration: none;
    width: max-content;
}

body{
    background: var(--theme-color-background_a_ff);
}

button, .a_button{
    background: var(--theme-color-background_a_ff);
    color: var(--theme-color-font_a_ff);
    box-shadow: #2e2e2e53 0px 3px 6px;
    border: none;
    border-radius: 20px;
    padding: .5rem 1rem;
    cursor: pointer;
    display: flex;
    flex-wrap: nowrap;
    gap: .5rem;
    justify-items: center;
    align-items: center;
    font-size: large;
    margin: 0 auto;

    img{
        width: 1.5rem;
        height: 1.5rem;
    }
}

button.color_b, .a_button.color_b{
    background: var(--theme-color-background_b_ff);
    color: var(--theme-color-font_b_ff);

    img{
        filter: var(--theme-filter-img_b_ff);
    }
}

button.stroke, .a_button.stroke{
    background: none;
    border: 3px solid var(--theme-color-background_a_ff);
    color: var(--theme-color-font_b_ff);

    img{
        filter: var(--theme-filter-img_b_ff);
    }
}

button.color_b.stroke, .a_button.color_b.stroke{
    border: 3px solid var(--theme-color-background_b_ff);
    color: var(--theme-color-font_a_ff);
}


.select{
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    border-radius: 8px;
    z-index: 1;

    .selected{
        padding: .5rem 1rem;
        border: none;
        border-radius: 10px;
        position: relative;
        font-size: large;
        transition: background-color .3s ease, border .3s ease;
        box-shadow: #2e2e2e53 0px 3px 6px;
        cursor: pointer;
    }
    .selected::after{
        content: "";
        background: url("../resource/svg/caret-down-solid.svg");
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        height: 15px;
        width: 12px;
        right: 13px;
        top: .8rem;
        transition: all 0.3s ease-in-out;
    }


    .options{
        position: relative;
        background: var(--theme-color-background_a_c2);
        backdrop-filter: blur(7px);
        box-shadow: #2e2e2e53 0px 3px 6px;
        max-height: 0;
        width: 100%;
        opacity: 0;
        transition: all 0.3s;
        border: none;
        border-radius: 10px;
        overflow: hidden;
        margin-top: .1rem;
        overflow-y: auto;

        .option{
            input[type=radio]{
                display: none;
            }
            label{
                margin: 0;
                inset: 0;
                position: relative;
                display: block;
                width: 100%;
                padding: .4rem .8rem;
                transition: background-color .3s ease;
                cursor: pointer;
                font-size: large;
            }
            label:hover{
                background-color: var(--theme-color-background_c_c2);
            }
        }
    }
    .options::-webkit-scrollbar {
        width: 3px;
        height: 3px;
    }
    .options::-webkit-scrollbar-track {
        background: none;
        margin-top: 10px;
        margin-bottom: 10px;
    }
    .options::-webkit-scrollbar-thumb {
        background-color: var(--theme-color-background_b_ff);
        border-radius: 3px;
        width: 1.5px;
    }
}
.select.active{
    .selected{
    }
    .selected::after{
        transform: rotateX(180deg);
        top: .8rem;
    }
    .options{
        max-height: 100px;
        opacity: 1;
    }
}




dialog.modal_a{
    margin: auto;
    opacity: 0;
    scale: 90%;
    translate: 0 10rem;
    transition: opacity .5s ease, scale .5s ease, translate .5s ease, display .5s ease allow-discrete;
}

dialog[open].modal_a{
    opacity: 1;
    scale: 100%;
    translate: 0 0;
    transition: opacity .5s ease, scale .5s ease, translate .5s ease;

    @starting-style{
        opacity: 0;
        scale: 90%;
        translate: 0 10rem;
    }
}

dialog.modal_b{
    margin: auto;
    transition: opacity .5s ease, display .5s ease allow-discrete;
    opacity: 0;

    button.close{
        z-index: 1;
        position: fixed;
        right: 20px;
        top: 20px;
        width: 2.5rem;
        height: 2.5rem;
        padding: .5rem;

        img{
            margin: 0 auto;
            width: 100%;
            height: 100%;
        }
    }

    .title{
        font-size: 1.5rem;
        text-align: center;
    }

    .form{
        display: flex;
        flex-direction: column;
        gap: 1rem;
        padding: 1rem .5rem .5rem .5rem;

        .hide{
            display: none;
        }

        button:last-child{
            margin-bottom: 0;
        }
    }
}

dialog[open].modal_b{
    opacity: 1;
    transition: opacity .5s ease;

    @starting-style{
        opacity: 0;
    }
}

dialog.modal_a::backdrop{
    backdrop-filter: var(--theme-filter-blur);
    background: none;
}

dialog.modal_b::backdrop{
    backdrop-filter: var(--theme-filter-blur);
    background: var(--theme-color-background_b_6a);
}

.loading_screen{
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    height: 100vh;
    display: none;
    align-items: center;
    justify-content: center;
    backdrop-filter: var(--theme-filter-blur);
    background: var(--theme-color-background_b_ff);

    transition: opacity .5s ease, display .5s ease allow-discrete;
    opacity: 0;

    div{
        text-align: center;
        font-size: x-large;
        color: var(--theme-color-font_b_ff);
    }
}

.loading_screen.active{
    display: flex;
    opacity: 1;
    transition: opacity .5s ease-in-out;

    @starting-style{
        opacity: 0;
    }
}

.all_screen{
    width: 100%;
    min-height: 100vh;
    height: 100vh;
}

.center_items{
    display: flex;
    justify-content: center;
    justify-items: center;
    align-items: center;
    align-content: center;
}

.shadow_l{
    box-shadow: #2e2e2e53 0px 4px 9px;
}

.card_l{
    background: var(--theme-color-background_a_ff);
    border: none;
    border-radius: 20px;
    padding: 20px;
}

.music_button{
    background-color: var(--theme-color-background_a_cd);
    position: fixed;
    z-index: 21;
    bottom: .5rem;
    left: .5rem;
    padding: 0;
    width: 3rem;
    height: 3rem;
    transition: transform .3s ease;
    transform: translateY(5rem);
    -webkit-transform: translateY(5rem);
    -moz-transform: translateY(5rem);
    -ms-transform: translateY(5rem);

    img{
        width: 2rem;
        height: 2rem;
    }
}

.music_button.show_up{
    transform: translateY(0);
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
}

.swipe_up{
    -webkit-transform: translateY(-110vh);
    -moz-transform: translateY(-110vh);
    -ms-transform: translateY(-110vh);
    transform: translateY(-110vh);

    .bg-orchid{
        transform: translateY(-50%);
    }
}

.full_img_background{
    top: 0;
    right: 0;
    position: absolute;
    width: 100%;
    height: 100vh;
    object-fit: cover;
}

.fixed_background_container{
    position: relative;        
    -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0);
    clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0);

    .fixed_background{
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100vh;
        object-fit: cover;
        object-position: center;
        display: block;
        unicode-bidi: isolate;
        pointer-events: none;
        transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    }
}


.container{
    padding: 0;

    span, h1, h2, h3, div, a, p{
        text-align: center;
    }
}


.zi2{
    z-index: 2;
}
.zi3{
    z-index: 3;
}
.zi4{
    z-index: 4;
}