body {
    margin: 0;
    font-family: 'Rubik', sans-serif;
    background-color: #917468;
    background-image: url('images/bg.svg');
    background-size: 5em;
}

#bday {
    background-color: #ff6699 !important;
}

header {
    background: #FFD170;
    border-bottom: 4px solid hsl(38, 50%, 30%);
    overflow: hidden;
}

footer {
    background: #FFD170;
    padding: 0.2em 0;
    border-top: 4px solid hsl(38, 50%, 30%);
    border-bottom: 4px solid hsl(38, 50%, 30%);
}

.video-container {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

table {
    width: 100%;
    border-collapse: collapse;
    border: 3px solid hsl(0, 63%, 66%);
    text-align: center;
}

td {
    padding: 1ch;
    border: 3px solid hsl(0, 63%, 66%);
}

td:last-child {
    white-space: nowrap;
}

td h4 {
    margin: 0;
}

.video {
    display: block;
    margin: auto;
    width: 100%;
}

.chocolate {
    --mask:
        radial-gradient(32.87px at 50% 44.25px, #000 99%, #0000 101%) calc(50% - 30px) 0/60px 51% repeat-x,
        radial-gradient(32.87px at 50% -29.25px, #0000 99%, #000 101%) 50% 15px/60px calc(51% - 15px) repeat-x,
        radial-gradient(32.87px at 50% calc(100% - 44.25px), #000 99%, #0000 101%) calc(50% - 30px) 100%/60px 51% repeat-x,
        radial-gradient(32.87px at 50% calc(100% + 29.25px), #0000 99%, #000 101%) 50% calc(100% - 15px)/60px calc(51% - 15px) repeat-x;
    -webkit-mask: var(--mask);
    mask: var(--mask);

    background: hsl(25, 60%, 20%);
    padding: 40px 25px;
    color: white;
}

.chocolate.dark {
    background: #710f0c;
}

nav {
    font-family: 'Fredoka';
    font-weight: 700;
    font-size: 2em;
    display: flex;
    gap: 0.8em;
    border-radius: 0.5rem;
}

.title {
    white-space: nowrap;
}

.nav-container {
    z-index: 1;
    margin-left: auto;
    display: flex;
    column-gap: 0.8em;
    flex-wrap: wrap;
}

.sprinkles {
    position: relative;
}

.sprinkle {
    position: absolute;
    content: '';
    border-radius: 2em;
    background: white;
    top: 0;
    left: 0;
}

nav a::after {
    content: attr(data-content);
    -webkit-text-stroke: 0.45em hsl(339, 69%, 48%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

nav a {
    text-align: center;
    position: relative;
    z-index: 1;
    color: white;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 200ms;
}

nav a:hover {
    color: #F5B13C;
}

main {
    max-width: 80ch;
    margin: auto;
    border-top: none;
    border-bottom: none;
    font-size: 1.25em;
    padding: 0 1em;
}

section {
    background: white;
    overflow: hidden;
    border-radius: 1em;
    border: 4px solid hsl(16, 16%, 40%);
    margin: 1em 0;
}

.image-left {
    display: flex;
    text-align: center;
    align-items: stretch;
}

section:nth-child(even) .image-left {
    flex-direction: row-reverse;
}


.side-image {
    display: block;
    min-height: 100%;
    min-width: 100%;
    object-fit: cover;
}

.side-text {
    flex: 1;
    line-height: 2rem;
    display: flex;
    align-items: center;
}

.section-header {
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Fredoka';
    font-weight: 600;
    line-height: 2.6rem;
    margin: 0 0 0.5em 0;
    gap: 0.2em;
}

.section-header::before,
.section-header::after {
    display: block;
    content: '';
    background: url('images/pink-donut.svg');
    background-size: contain;
    height: 1.2em;
    width: 1.2em;
    min-height: 1.2em;
    min-width: 1.2em;
}

.side-text-content {
    padding: 1ch;
    box-sizing: content-box;
    line-height: 1.65em;
}

.side-image-container {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50%;
    overflow: hidden;
}

.one-info {
    padding: 2ch;
    line-height: 1.65em;
    overflow-x: auto;
}

ul {
    text-align: start;
    list-style-image: url('images/bullet-donut.svg');
}

a {
    color: inherit;
    text-decoration: underline;
}

footer {
    text-align: center;
}

.donut-container {
    display: flex;
    justify-content: center;
    margin: auto;
    width: fit-content;
}

.left-donuts {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.donut-container a {
    display: flex;
    padding: 0;
    flex-direction: column;
    align-items: center;
    max-width: min(11em, 32.5vw);
}

.donut-container a:not(:first-child) {
    margin-top: max(-5em, -15vw);
}

.right-donuts {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.donut-container:hover a:not(:hover) {
    opacity: 0.1;
}

.donut {
    height: 10em;
    max-height: 30vw;
}

.centered {
    text-align: center;
}

.primary-button {
    appearance: none;
    border: 2px solid white;
    border-radius: 5px;
    padding: 0.3em 0.6em;
    font: inherit;
    font-size: 1.75em;
    text-decoration: none;
    background: hsl(16, 16%, 30%);
    transition: background 200ms;
    color: white;
    cursor: pointer;
}

.primary-button:hover {
    background: hsl(16, 16%, 25%);
}

.resized-image {
    max-width: 100%;
    display: flex;
    border-radius: 5px;
    margin: auto;
}

@media only screen and (max-width: 100vh) {
    nav {
        flex-wrap: wrap;
        justify-content: center;
    }

    .title {
        font-size: 1.4em;
    }

    .sprinkles {
        flex: 100;
        min-width: 80vw;
        min-height: 1em;
    }

    .nav-container {
        justify-content: center;
        margin-left: 0;
    }

    .image-left {
        flex-direction: column;
    }

    section:nth-child(even) .image-left {
        flex-direction: column;
    }

    .side-image-container {
        width: 100%;
        max-height: 20em;
    }

    .side-image {
        height: auto;
        width: 100%;
    }

    .donut-container {
        --icon-size: 128px;
    }
}

div.event-box {
    margin: 5px;
    padding: 5px;
    border-radius: 10px;
}
div.event-box:nth-child(odd) {
    background-color: #ffe9bc;
}
div.event-box:nth-child(even) {
    background-color: #ffb6cb;
}
div.event-box * {
    margin: 7px;
}