@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&display=swap');

@font-face
{
    font-family: "AYO";
    src: url("../fonts/are_you_okay.ttf");
}

:root
{
    ---white: whitesmoke;
    --gallery_distance: 0;
    --gallery_distance_multiplier: 0.4px;
}

body
{
    margin: 0;
    padding: 0;
    background-color: black;
    font-family: "Playfair Display", serif;
    overflow-x: hidden;
}

.header
{
    width: 100%;
    height: 110vh;
    position: relative;
    display: flex;
    flex-direction: row;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
}

@keyframes nav_show
{
    from
    {
        transform: translateY(-100px);
        opacity: 0;
    }
    to
    {
        transform: translateY(0);
        opacity: 1;
    }
}

.nav_panel
{
    position: absolute;
    margin-top: 30px;
    margin-left: 40px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 40px;
}

.nav_panel > a, .mobile_nav_panel > a
{
    transition: 0.3s;
    font-size: 25px;
    padding: 4px 10px;
    user-select: none;
    color: var(---white) !important;
    text-decoration: none;
    opacity: 0;
    animation: nav_show 0.5s 0.75s ease-in-out forwards;
    font-family: "Playfair Display", serif;
}

.nav_panel > a:hover
{
    cursor: pointer;
    text-decoration: underline;
}

.nav_panel > a:active
{
    color: dimgray !important;
}

.header > .logo
{
    position: absolute;
    top: 25px;
    left: 40px;
    width: 250px;
    aspect-ratio: 10/4;
    background-image: url("../gfx/logos/inline_logo.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    filter: drop-shadow(0 0 3px black) drop-shadow(0 0 8px black);
    z-index: 10;
    opacity: 0;
    animation: logo_show 1s 0.5s ease-in-out forwards;
}

@keyframes logo_show
{
    to
    {
        opacity: 1
    }
}

.header > .language
{
    position: absolute;
    right: 0;
    top: 0;
    margin: 30px 30px;
    width: 40px;
    aspect-ratio: 3/2;
    font-size: 25px;
    color: var(---white);
    display: grid;
    place-content: center;
}

.language[next_lang = "en"]::after, .language[next_lang = "pl"]:hover::after
{
    content: "🇵🇱";
}

.language[next_lang = "pl"]::after, .language[next_lang = "en"]:hover::after
{
    content: "🇬🇧";
}

.header > .language:hover
{
    cursor: pointer;
}

.scroll_button
{
    font-family: Arial, Helvetica, sans-serif;
    position: absolute;
    bottom: 7.5%;
    left: 50%;
    transform: translateX(-50%);
    width: 65px;
    aspect-ratio: 1/1;
    background-color: var(---white);
    box-shadow: 0 0 10px black;
    border-radius: 15px;
    z-index: 10;
    user-select: none;
    background-image: url("../gfx/arrows.png");
    background-size: 40%;
    background-repeat: no-repeat;
    background-position: center;
    transition: 0.4s;
    opacity: 0;
    animation: button_show 0.5s 0.75s ease-in-out forwards;
}

@keyframes button_show
{
    from
    {
        opacity: 0;
    }
    to
    {
        opacity: 1;
    }
}

.scroll_button:hover
{
    cursor: pointer;
    box-shadow: none;
    background-color: darkgray;
}

.scroll_button:active
{
    box-shadow: none;
    filter: brightness(0.6);
}

.header > .right
{
    width: 40%;
    height: 100%;
    box-sizing: border-box;
    padding-left: 40px;
    position: relative;
}

.header::before
{
    content: "";
    width: 100%;
    height: 80%;
    position: absolute;
    top: 0;
    left: 0;
    background-position: center top;
    background-size: 100% auto;
    background-repeat: repeat-x;
    opacity: 0.15;
    background-image: url("../gfx/textures/paint.jpg");
    mask-image: linear-gradient(to top, transparent 50%, black 100%);
}

.header > .left
{
    width: 60%;
    height: 100%;
    position: relative;
}

.header > .left > div
{
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    position: absolute;
    filter: brightness(0);
    opacity: 0;
    border: 1px solid black;
    box-sizing: border-box;
    animation: header_show 1s ease-in-out forwards;
}

@keyframes header_show
{
    from
    {
        opacity: 1;
        transform: translate(-100%, 0);
        filter: brightness(0);
    }
    60%
    {
        transform: translate(0, 0);
    }
    to
    {
        transform: translate(0, 0);
        filter: brightness(0.8);
        opacity: 1;
    }
}

.header > .left > :nth-child(1)
{
    width: 50%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 3;
}

.header > .left > :nth-child(2)
{
    width: 50%;
    height: 50%;
    top: 0;
    right: 0;
    background-position: center 65%;
    z-index: 2;
    animation-delay: 0.2s;
}

.header > .left > :nth-child(3)
{
    width: 50%;
    height: 50%;
    bottom: 0;
    right: 0;
    background-position: center 60%;
    z-index: 1;
    animation-delay: 0.3s;
}

.header > .right > div
{
    color: var(---white);
}

.header > .right > .empty
{
    height: 40%;
}

.header > .right > .title
{
    font-size: 40px;
    margin-left: 20px;
    width: fit-content;
    position: relative;
    white-space: nowrap;
    font-family: "AYO";
    font-weight: bold;
    opacity: 0;
    animation: title_show 0.6s 0.3s ease-in-out forwards;
}

@keyframes title_show
{
    from
    {
        transform: translateY(-100px);
        opacity: 0;
    }
    to
    {
        transform: translateY(0);
        opacity: 1;
    }
}

.header > .right > .slogan
{
    font-size: 23px;
    margin-left: 20px;
    margin-top: 15px;
    width: fit-content;
    position: relative;
    font-family: "Caveat", cursive;
    white-space: nowrap;
    font-style: italic;
    opacity: 1;
}

.main
{
    width: 100%;
    height: 100%;
    position: absolute;
}

.about
{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    box-sizing: border-box;
    color: var(---white);
    text-align: center;
    font-family: "Caveat", cursive;
}

.about > .title
{
    font-size: 40px;
    text-shadow: 0 0 5px black;
    position: relative;
    width: fit-content;
    text-align: center;
    margin: 0 auto;
    margin-bottom: 30px;
    font-family: "AYO";
    opacity: 0;
}

.main.active > .about > .title
{
    animation: abouttitle_show 0.8s 0.4s ease-in-out forwards;
}

@keyframes abouttitle_show
{
    from
    {
        transform: translateY(-20px);
        opacity: 0;
    }
    to
    {
        transform: translateY(0);
        opacity: 1;
    }
    
}

.about > .text
{
    mask-image: linear-gradient(to top, transparent 0%, transparent 50%, black 80%, black 100%);
    mask-size: 100% 500%;
    mask-position: 0 75%;
    max-width: 900px;
}

.main.active > .about > .text
{
    animation: about_show 2.5s ease-out forwards;
}

@keyframes about_show
{
    to
    {
        mask-position: 0 0%;
    }
}

.about > .text > p
{
    font-size: 28px;
    text-shadow: 0 0 5px black;
}

.about > .text > p
{
    margin: 8px 0;
}

.gallery
{
    position: absolute;
    width: 100%;
    height: 100%;
}

.gallery > .img
{
    position: absolute;
    left: 50%;
    top: 50%;
    aspect-ratio: 1/1;
    background-size: cover;
    background-position: center;
    box-sizing: border-box;
    filter: drop-shadow(0 0 15px black) drop-shadow(0 0 10px rgba(0, 0, 0, 0.6));
    opacity: 0;
    transition: 0.3s;
    z-index: 3;
}

.main.active > .gallery > .img
{
    animation: img_show 1.5s ease-in-out forwards;
}

@keyframes img_show
{
    from
    {
        opacity: 0;
        transform: translate(-50%, -50%);
    }
    50%
    {
        opacity: 0;
    }
    to
    {
        opacity: 1;
    }
}

.gallery > .img:nth-child(1)
{
    transform: translate(calc(-50% - 400px), calc(-50% - 450px));
    width: 180px;
    margin-top: calc(var(--images_scroll) / -6);
}

.gallery > .img:nth-child(2)
{
    transform: translate(calc(-50% - 800px), calc(-50% - 150px));
    width: 240px;
    margin-top: calc(var(--images_scroll) / 4);
}

.gallery > .img:nth-child(3)
{
    transform: translate(calc(-50% - 600px), calc(-50% + 400px));
    width: 200px;
    margin-top: calc(var(--images_scroll) / 2);
}

.gallery > .img:nth-child(4)
{
    transform: translate(calc(-50% + 750px), -50%);
    width: 300px;
    margin-top: calc(var(--images_scroll) / -3);
}

.gallery > .img:nth-child(5)
{
    transform: translate(calc(-50% + 400px), calc(-50% - 480px));
    width: 220px;
    margin-top: calc(var(--images_scroll) / 5);
}

.gallery > .img:nth-child(6)
{
    transform: translate(calc(-50% + 150px), calc(-50% + 500px));
    width: 180px;
    margin-top: calc(var(--images_scroll) / 7);
}

.main > .background_texture
{
    position: absolute;
    width: 15%;
    height: calc(100% + 100px);
    z-index: 0;
    background-image: url("../gfx/textures/wall.jpg");
    background-size: cover;
    filter: grayscale(1);
    opacity: 0.1;
    mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) -50%, rgba(0, 0, 0, 0) 100%), linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 10%, rgba(0, 0, 0, 1) 90%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-composite: intersect;
    mask-composite: intersect;
    mask-repeat: no-repeat;
    mask-size: cover;
    mask-position: center;
}

.main > .background_texture:nth-child(1)
{
    left: 0;
    background-position: center right;
}

.main > .background_texture:nth-child(2)
{
    right: 0;
    transform: scaleX(-1);
    background-position: center left;
}

.footer
{
    width: 100%;
    height: 250px;
    color: var(---white);
    position: absolute;
    top: 210%;
    gap: 25px;
    box-sizing: border-box;
    margin-top: 150px;
}

.footer .title
{
    font-size: 35px;
    margin-left: 125px;
    font-family: "AYO";
    color: var(---white);
    font-weight: bold;
}

.footer .text
{
    margin-top: 20px;
    margin-left: 125px;
    font-family: "Caveat", sans-serif;
    font-size: 28px;
}

.footer a
{
    color: var(---white);
}

.footer .developedby
{
    position: absolute;
    width: 100%;
    height: 50px;
    bottom: 0;
    display: grid;
    place-items: center;
    text-shadow: 0 0 10px black, 0 0 5px black, 0 0 5px black, 0 0 2px black;
    font-size: 16px;
}

.footer .arrow
{
    width: 140px;
    aspect-ratio: 1/1;
    position: absolute;
    left: 490px;
    bottom: 85%;
    background-image: url("../gfx/arrow.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    animation: grow 2s infinite;
}

@keyframes grow
{
    0%
    {
        scale: 1;
    }
    50%
    {
        scale: 1.1;
    }
    100%
    {
        scale: 1;
    }
}

.footer .arrow_text
{
    position: absolute;
    left: 575px;
    bottom: 127.5%;
    font-size: 40px;
    font-family: "Caveat", sans-serif;
    transform: rotate(25deg);
    color: var(---white);
    animation: grow 2s infinite;
}

.footer::before
{
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    background-position: center bottom;
    background-size: 100% auto;
    background-repeat: repeat-x;
    background-image: url("../gfx/textures/paint.jpg");
    opacity: 0.2;
    mask-image: linear-gradient(to bottom, transparent 0%, black 125%);
}

.nav_menu_mobile_button, .mobile_nav_panel, .contact > .mobile_text
{
    display: none;
}

@media (max-width: 900px)
{
    body
    {
        display: flex;
        flex-direction: column;
        min-height: 2250px;
    }

    .main
    {
        width: 100%;
        height: auto;
        position: relative;
        flex: 1;
    }

    .footer
    {
        width: 100%;
        height: 300px;
        position: relative;
    }

    .contact
    {
        position: relative;
    }

    .contact > .title, .contact > .text
    {
        margin-left: 0 !important;
        text-align: center;
    }

    .header
    {
        flex-direction: column;
        mask-image: none;
        height: 100vh;
    }

    .header > .right
    {
        width: 100%;
        height: 25%;
        padding-top: 20px;
        padding-left: 0;
    }

    .header > .right > .title
    {
        display: none;
    }

    .header > .right > .slogan
    {
        font-size: 22px;
        white-space: wrap;
        padding: 0 25px;
        width: 100%;
        box-sizing: border-box;
        text-align: center;
        margin-left: 0;
    }

    .header > .left
    {
        width: 100%;
        height: 75%;
        mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
    }

    .header > .logo
    {
        top: 20px;
        left: 50%;
        transform: translateX(calc(-50% - 40px));
        width: 200px;
        z-index: 101;
    }

    .mobile_nav_panel
    {
        position: fixed;
        z-index: 100;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.8);
        opacity: 0;
        transition: 0.4s;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        pointer-events: none;
        gap: 40px;
        overflow: hidden;
    }

    body:has(.mobile_nav_panel.active)
    {
        overflow-y: hidden;
    }

    .mobile_nav_panel.active
    {
        opacity: 1;
        pointer-events: auto;
    }

    .mobile_nav_panel > a
    {
        animation: none;
        opacity: 1;
        font-size: 40px;
    }

    .mobile_nav_panel > .language
    {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: 5%;
        font-size: 30px;
        width: 80px;
        aspect-ratio: 3/2;
        font-size: 50px;
        color: var(---white);
        display: grid;
        place-content: center;
    }

    .scroll_button, .header > .language, .header > .right > .empty, .nav_panel, .background_texture, .gallery, .contact > .arrow, .contact > .arrow_text, .footer > .developedby
    {
        display: none !important;
    }

    .contact > .mobile_text
    {
        display: block;
        text-align: center;
        font-size: 30px;
        font-family: "AYO", sans-serif;
        color: black;
        padding: 20px;
        padding-right: 35px;
        margin: auto;
        background-color: var(---white);
        margin-bottom: 40px;
        width: fit-content;
        border-radius: 20px;
    }

    .about
    {
        width: 100%;
        box-sizing: border-box;
        padding: 0 40px;
    }

    .about::after
    {
        content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        bottom: 0;
        left: 0;
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
        background-image: url("../gfx/imgs/14.jpg");
        opacity: 0.2;
        mask-image: linear-gradient(to bottom, transparent 0%, black 50%, transparent 100%);
    }

    .about > .text > p
    {
        font-size: 22px;
    }

    .nav_menu_mobile_button
    {
        display: block;
        position: absolute;
        top: 53px;
        right: 40px;
        width: 40px;
        height: calc(5 * 3 + 5 * 2);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        z-index: 101;
        animation: nav_button_show 2s ease-in-out forwards;
    }

    @keyframes nav_button_show
    {
        from
        {
            opacity: 0;
        }
        to
        {
            opacity: 1;
        }
    }

    .nav_menu_mobile_button > div
    {
        width: 100%;
        height: 5px;
        transition: 0.75s;
        background-color: var(---white);
        box-shadow: 0 0 5px black;
    }

    .nav_menu_mobile_button > div:nth-child(1), .nav_menu_mobile_button > div:nth-child(3)
    {
        transform-origin: center right;
    }

    body:has(.mobile_nav_panel.active) .nav_menu_mobile_button > div
    {
        box-shadow: none;
    }

    body:has(.mobile_nav_panel.active) .nav_menu_mobile_button > div:nth-child(2)
    {
        opacity: 0;
    }

    body:has(.mobile_nav_panel.active) .nav_menu_mobile_button > div:nth-child(1)
    {
        transform: translateY(-5px) rotate(-45deg);
    }

    body:has(.mobile_nav_panel.active) .nav_menu_mobile_button > div:nth-child(3)
    {
        transform: translateY(5px) rotate(45deg);
    }
}