* {
    padding: 0;
    margin: 0;
    font-family: "Lora", "Times New Roman", serif;
    box-sizing: border-box;
    user-select: none;
}

._sulfa-particle {
    opacity: 1;
    filter: drop-shadow(0 0 0.2rem white) drop-shadow(0 0 0.5rem white) drop-shadow(0 0 2rem white) drop-shadow(0 0 5rem white) drop-shadow(0 0 25rem white);
}

html {
    font-size: clamp(0.8rem, 2vw, 2rem);
}

body {
    contain: paint;
}

#app, #sunrise {
    min-height: 100vh;
}

#logo {
    height: 2.5em;
    opacity: 0.20;
    align-self: left;
}

#sunrise {
    display: none;
}

#app {
    display: flex;
    align-items: stretch;
    flex-direction: column;
}

#menu {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    background: black;
    color: white;
    padding-block: 4em;
    padding-inline: 2em;
    transition: box-shadow 3s ease-out;
}

#center {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
    gap: 1em;
    width: clamp(30vw, 54rem, 100vw);
    padding: 2rem;
}


#menu-section {
    display: flex;
    flex-direction: column;
    row-gap: 0.5em;
    margin-top: 1rem;
}

.menu-section-title {
    opacity: 0.2;
}

h1 {
    font-style: italic;
    font-size: 3rem;
    text-align: center;
}

#description {
    text-align: center;
    max-width: 28rem;
    align-self: center;
    margin-block-end: 2rem;
}

#times, #stars {
    display: flex;
    gap: 1em;
}

.time {
    padding-block: 0.5em;
    padding-inline: 1em;
    font-style: italic;
    text-align: center;
}

.star {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    row-gap: 0.5em;
    padding-block: 1em;
    padding-inline: 0.5em;
}

.star, .time {
    user-select: none;
    cursor: pointer;
    border: 1px solid #ffffff1a;
    transition: background-color 0.25s;
    flex: 1;
}

.star.selected, .time.selected {
    background: white;
    color: black;
}

.star.selected:hover, .time.selected:hover {
    background: #FFFFFFEE;
}

.star:hover, .time:hover {
    background: #FFFFFF11;
}

.star-icon {
    width: 1em;
    height: 1em;
    border-radius: 9999px;
}

.star-name {
    font-style: italic;
}

#start {
    border: 1px solid white;
    font-style: italic;
    outline: none;
    color: white;
    background: transparent;
    font-size: 1.25em;
    padding-block: 0.5em;
    padding-inline: 2em;
    cursor: pointer;
    transition: 150ms ease-in-out;
    margin-block-start: 2rem;
}

#start:hover {
    background: white;
    color: black;
}

#exit {
    background: transparent;
    outline: none;
    border: none;
    color: #FFFFFF33;
    cursor: pointer;
    padding: 4em;
    font-size: 1rem;
    transition: 275ms ease-in-out;
}

#exit:hover {
    background: #FFFFFF06;
    color: #FFFFFF44;
}

@media screen and (max-width: 880px) {
    #times, #stars {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }

    .time, .star {
        flex: initial;
    }
}

@media screen and (max-width: 640px) {
    #times, #stars {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .time, .star {
        flex: initial;
    }
}

