:root {
    --spacing: 1.25em;

    --fs-default: clamp(1.25rem, 1.071rem + 0.476vw, 1.5rem);
    --fs-nav: 1.3rem;

    font-family: 'Paralucent Text', sans-serif;
}

h1 {
    font-family: 'Cabazon', serif;
}

ul {
    list-style: none;
    display: grid;
    padding: 0;
}

video {
    display: block;
    user-select: none;
    object-fit: contain;
    max-width: 100%;
    height: auto;
}

img {
    user-select: none;
    object-fit: contain;
    max-width: 100%;
}

a {
    color: black;
}

body {
    background-color: #efefef;
}

/* Navbar */

.navbar {
    margin: 1.75em;
    z-index: 99;
    transition: 0.3s;
}

/* Homepage Story */

.gradient-bg {
    background: radial-gradient(circle, #F3CA1C, #C999C600 60%);
    user-select: none;
    pointer-events: none;
}

.pink-bg {
    background-color: #C999C6;
}

/* project */

.project {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1em;
}

hr {
    width: 100%;
    margin-block: calc(2 * var(--spacing));
}

/* Stickers */

.stickers {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, auto);
    justify-content: center;
    margin-block: 0;
    gap: clamp(0.25em, 5vw, 1.5em);
    margin-bottom: 3em;
    overflow-x: hidden;
}

.sticker-wrapper {
    height: clamp(10em, 28vw, 15em);
    display: flex;
    align-items: center;
    aspect-ratio: 1;
}

.sticker {
    display: block;
    height: 100%;
}

/* Story Body */

main {
    display: flex;
    flex-direction: column;
    gap: 5em;
    width: min(64rem, calc(100% - 2 * var(--spacing)));
    margin: 0 auto 10em;
}

.story {
    display: grid;
    align-items: center;
    grid-template-columns: 4fr 5fr;
    gap: 0;

    margin-inline: auto;
}

.story_img-wrapper {
    padding-right: calc(2 * var(--spacing));
}

.story_text {
    font-size: var(--fs-default);
    line-height: 1.4;
    text-align: justify;
    text-indent: 2em;
    margin: 0;
    max-width: 50ch;
}

/* Header */

.head {
    height: calc(100dvh - 2*var(--spacing));

    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, 1fr);
    place-items: center;

    padding: var(--spacing);
}

.head:not(body) {
    margin-bottom: 2em;

}

.header_img-wrapper {
    aspect-ratio: 1;
    position: relative;
    width: 30em;
    
    overflow: clip;
    overflow: hidden;
}

.header_img {
    width: 100%;
    position: absolute;
}

.rotate {
    animation: rotation 30s infinite linear;
}

/* Centered */

.centered {
    text-align: center;
    text-indent: 0;
    margin-inline: auto;
}

/* Footer */

.footer {
    display: grid;
    gap: calc(var(--spacing)/2);
    padding-inline: var(--spacing);
    padding-block-end: var(--spacing);
}

.head .footer {
    padding: 0;
}

.footer>* {
    text-align: center;
}

.title {
    text-decoration: none;
}

.title>* {
    margin: 0;
}

.footer .title>p {
    font-size: 1em;
    text-transform: uppercase;
}

.footer .title h1 {
    font-size: 3em;
}

.head nav {
    align-self: flex-start;
}

.head> :last-child {
    align-self: flex-end;
}

.footer_nav {
    display: flex;
    gap: 3em;
    margin: 2em auto 0;
    justify-content: center;
}

.footer_nav-item {
    text-transform: uppercase;
    font-size: 1.3em;
    margin: 0;
}

/* Gallery */

.gallery {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing);
}

.gallery .story_text {
    margin-block-end: 1em;
}

.gallery_img {
    border-radius: .8em;
}

.gallery_img-flexbox {
    display: flex;
    gap: var(--spacing);
}

/* Contact */

.contact_body {
    background-color: #C999C6;
}

.contact_body main {
    gap: 0;
}

.contact {
    display: grid;
    grid-template-columns: 4fr 6fr;
}

.contact .story_text:not(:first-of-type) {
    margin-block-start: 1em;
}

.contact_links {
    margin-block-start: 2em;
}

.contact_text {
    text-indent: 0;
}

.caption {
    font-size: var(--fs-nav);
    font-style: italic;
    color: rgb(0 0 0/0.75);
}


/* Media Query */
@media (max-width: 768px) {
    main {
        gap: 3em;
    }

    .header_img-wrapper {
        width: 20em;
    }

    .story:not(.head) {
        display: flex;
        flex-direction: column-reverse;
        gap: calc(var(--spacing) * 2);
    }

    .story_img-wrapper {
        padding-inline: var(--spacing);
    }

    .footer_nav {
        display: flex;
        flex-wrap: wrap;
        gap: 2em;

    }

    .gallery_img-flexbox {
        flex-direction: column;
    }

    .gallery_img-flexbox>* {
        flex-basis: minmax(30%, 60%);
    }

    /* Contact */

    .contact {
        grid-template-columns: auto;
        gap: 1em;
        justify-items: center;
    }

    .contact_img-wrapper {
        padding: 0;
    }
}

/* Animation */
@keyframes rotation {
    from {
        rotate: 0deg;
    }

    to {
        rotate: 359deg;
    }
}