
:root {
    --color: #64bea9;

    --text-size1: 19px;
    --text-size2: 25px;
    --text-weight: 650;

    --container-width: 1650px;

    --header-block-min-height: 40px;
    --header-max-height: 320px;

    --border1: solid 2px var(--color);
    --border2: solid 2px rgb(217, 217, 217, 0.25);

    --background-color1: rgb(46, 123, 104, 0.6);
    --background-color2: rgb(63, 174, 147, 0.8);
    --background-color3: rgba(99, 148, 137, 0.7);
    --background-color4: rgba(21, 88, 73, 0.7);
    --background-color5: #191919af;
    --background-color6: rgba(9, 10, 15, 0.2);

    --box-shadow1: 0px 0px 10px 2px rgba(255, 255, 255, 0.5);

    --social-image-size: 48px;

    --page-max-width: 320px;
    --page-min-height: 30px;

    --default-transition1: all 0.4s ease-in-out;
    --default-transition2: all 0.9s ease-in-out;

    --overlay: center / cover no-repeat url("//static.tichq.dev/aosc/images/guardhouse.webp");
    --logo: center / contain no-repeat url("//static.tichq.dev/aosc/images/logo.webp");
}

* {
	user-select: none;

    margin: 0;
    padding: 0;
    border: 0;
}

@keyframes default-showing {
    0% {
        opacity: 0;
        visibility: hidden;
        top: -100%;
    } 100% {
        opacity: 1;
        visibility: visible;
        top: 0%;
    }
}

a {
    color: #f1ebd4;
    text-decoration: none;
}

body .wrapper #header,
body .wrapper #main,
body .wrapper #gallery {
    max-width: var(--container-width);
}

body .wrapper #header .container,
body .wrapper #main .container,
body .wrapper #gallery .container {
    padding: 10px;
}

body .wrapper #header {
    box-sizing: border-box;

    position: relative;
    width: 100%;

    max-height: var(--header-max-height);

    border-left: var(--border1);
    border-top: var(--border1);
    background-color: var(--background-color1);

    animation: default-showing 0.9s ease-in-out;

    z-index: 1;
}

body .wrapper #header .content {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;

    width: 100%;

    padding: 0px !important;

    &.disable {
        display: none;
    }
}

body .wrapper #header .content .top,
body .wrapper #header .content .bottom {
    box-sizing: border-box;

    position: relative;
    width: 100%;

    display: flex;
    align-items: center;

    justify-content: center;

    padding: 10px;

    min-height: var(--header-block-min-height);

    border-right: var(--border1);
    border-bottom: var(--border1);
}

body .wrapper #header .content .top {
    justify-content: unset;
    min-width: 320px;
    flex: 22%;
    gap: 15px;
}

body .wrapper #header .content .bottom {
    flex: 78%;
}

body .wrapper #header .content .top .domain_links {
    flex-direction: column;
}

body .wrapper #header .content .top .domain_links,
body .wrapper #header .content .top .social_links,
body .wrapper #header .content .bottom .panel {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 5px;
}

body .wrapper #header .content .top .domain_links .selfhost,
body .wrapper #header .content .top .language .current {
    font-weight: var(--text-weight);

    color: #f1ebd4;

    transition: var(--default-transition1);

    &:hover {
        color: var(--color);
    }
}

body .wrapper #header .content .top .social_links .selfhost {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: fit-content;


    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    width: var(--social-image-size);
    height: var(--social-image-size);

    transition: var(--default-transition1);

    &:hover {
        transform: scale(1.35);
    }
}

body .wrapper #header .content .top .social_links .selfhost.patreon {
    background-image: url("//static.tichq.dev/aosc/svg/patreon.svg");
}

body .wrapper #header .content .top .social_links .selfhost.boosty {
    background-image: url("//static.tichq.dev/aosc/svg/boosty.svg");
}

body .wrapper #header .content .top .social_links .selfhost.subscribestar {
    background-image: url("//static.tichq.dev/aosc/svg/subscribestar.svg");
}

body .wrapper #header .content .top .social_links .selfhost.discord {
    background-image: url("//static.tichq.dev/aosc/svg/discord.svg");
}

body .wrapper #header .content .top .social_links .selfhost.itch {
    background-image: url("//static.tichq.dev/aosc/svg/itch.svg");
}

body .wrapper #header .content .top .language .array .element {
	cursor: pointer;

    transition: var(--default-transition1);

	font-size: var(--text-size1);
    padding: 8px;

	&:hover {
    	color: var(--color);
	}
}

body .wrapper #header .content .top .language .array {
	position: absolute;

	border: var(--border1);

    border-radius: 0px 0px 8px 8px;

    left: 0;
    right: auto;
    top: 100%;

    transform: scale(0);
	visibility: hidden;
    opacity: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    background-color: var(--background-color2);

    transition: var(--default-transition1);
    transform-origin: top left;

	z-index: 2;

    &.active {
        transform: scale(1);
        visibility: visible;
        opacity: 1;
    }
}

body .wrapper #header .content .bottom .panel {
    width: 100%;
}

body .wrapper #header .content .bottom .panel .selfhost {
    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;
    flex: fit-content;

    min-width: 145px;

    padding: 0px 5px;

    border-radius: 12px;
    border: var(--border1);
    background-color: var(--background-color3);

    font-size: var(--text-size1);
    font-weight: var(--text-weight);
    text-transform: uppercase;

    transition: var(--default-transition1);

    &:hover {
        box-shadow: var(--box-shadow1);

        transform: scale(1.05);
    }

    &.active {
        background-color: var(--background-color4);
    }
}

body .wrapper #main .content .logo {
    width: 100%;
    height: 100%;

    background: var(--logo);
}

body .wrapper #main,
body .wrapper #gallery {
    position: relative;

    width: 0%;
    height: 0%;

    padding: 0;

    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;

    transform: scale(0);
    visibility: hidden;
    opacity: 0;

    transition: var(--default-transition2);

    overflow: hidden;

    &.active {
        width: 100%;
        height: 100%;
        transform: scale(1);
        visibility: visible;
        opacity: 1;
    }
}

body .wrapper #gallery .content .picture {
    cursor: zoom-in;

    max-width: 45%;
    height: auto;;

    border: var(--border1);
    border-radius: 8px;

    transition: var(--default-transition1);

    transform: scale(0.98);

    &:hover {
        border: var(--border2);
        box-shadow: var(--box-shadow1);
        transform: scale(1);
    }

    &.active {
        border: var(--border2);
        transform: scale(1);
    }
}

body .wrapper #main .content,
body .wrapper #gallery .content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

    overflow: auto;
    scrollbar-width: none;

    gap: 20px;

    max-height: 100%;
    width: 100%;

    box-sizing: border-box;

    background-color: var(--background-color6);
    background-attachment: scroll;
    border: var(--border2);
}

body .wrapper #main .content {
    height: 100%;
}

body .wrapper #gallery .content {
    flex-wrap: wrap;
    justify-content: center;
    flex-direction: row;
}

body {
    font-family: "Maven Pro", "sans-serif";

    width: 100dvw;
    height: 100dvh;

    overflow: hidden;

    color: #f1ebd4;
    background: linear-gradient(to right, #142D27, #18725C);
    background-repeat: no-repeat;
    background-position: center center;
    background-attachment: fixed;

    background-size: cover;
}

body .wrapper {
    position: relative;
    width: 100%;
    height: 100%;

    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-direction: column;

    background: var(--overlay);
}

#modal {
    position: absolute;

    width: 100%;
    height: 100%;

    top: 0;

    padding: 0;

    transform: scale(0);
    visibility: hidden;
    opacity: 0;

    transition: var(--default-transition1);
    transform-origin: var(--origin-left, 50%) var(--origin-top, 50%);

    overflow: hidden;

    z-index: -1;

    &.active {
        transform: scale(1);
        visibility: visible;
        opacity: 1;
        z-index: 3;
    }
}

#modal .container.content {
    position: absolute;

    width: 100%;
    height: 100%;

    max-width: 100%;
    max-height: 100%;

    overflow: hidden;

    background-color: #191919bf;
}

#modal .container.content .picture {
    position: absolute;

    width: 100%;
    height: 100%;

    background: center / contain no-repeat var(--picture, none);

    border: solid 1em #fff0;

    margin: auto;

    filter: drop-shadow(0 0 0.75rem var(--color));

    box-sizing: border-box;
}

#modal .container.content .buttons {
    position: absolute;

    display: flex;
    justify-content: center;
    flex-wrap: wrap;

    width: 100%;
    height: 100%;
}

#modal .container.content .buttons .left,
#modal .container.content .buttons .center
#modal .container.content .buttons .right {
    height: 100%;

    max-width: 100%;
    max-height: 100%;

    box-sizing: border-box;
}

#modal .container.content .buttons .left {
    cursor: pointer;

    flex: 10%;

    margin-right: auto;

    transition: var(--default-transition1);

    &:hover {
        background-color: var(--background-color5);
    }
}

#modal .container.content .buttons .center {
    cursor: zoom-out;

    flex: 80%;

    margin-right: auto;
}

#modal .container.content .buttons .right {
    cursor: pointer;

    flex: 10%;

    margin-left: auto;

    transition: var(--default-transition1);

    &:hover {
        background-color: var(--background-color5);
    }
}
